מיקרוסופט שיחררה מערכת ניהול תוכן בקוד פתוח – Oxite
מיקרוסופט שיחררה את Oxite, מערכת לבלוגים (או לניהול תוכן בכלל) בקוד פתוח תחת רישיון Ms-Pl (שזה Microsoft Public License).
Oxite כוללת מספר אפשרויות ומאפיינים שמקובלות במערכות הבלוגים הפופולריות, כגון טראקבקים, פינגבקים, תגובות אנונימות ועוד, אך מפתחי המערכת אומרים כי זו פלטפורמה שמתאימה לא רק לבלוגים אלא גם לאתרים גדולים ומורכבים.
מדוע מיקרוסופט מייצרת פלטפורמה לבלוגים? לטענת המפתחים Oxite נוצרה עבור האתר Mix Online, אתר שמיועד למעצבים והם רצו להדגים בו את השימוש ב ASP.NET MVC (שנועד לאפשר למפתחי ASP.NET לבנות אפליקציות באמצעות ארכיטקטורה הנקראת model-view-controller – ואין לי מושג מה כתבתי כאן. טפו ASP.NET).
לי אין יכולת להתרשם מהמערכת כי צריך להתקין אותה על שרת Windows. (טפו שרת Windows) וגם לא מצאתי Demo, אבל כאמור האתר Mix Online מבוסס עליה (שזו התרשמות מסוימת) וכאן כתוב על השימוש ב-Oxtie בו.
וכעת, להנאתכם – תמונות מסך:
תודה לדותן מזור שהעביר את המידע.
מממ… נעשה מהם מטעמים בכנס מערכות ניהול התוכן 2009…
נראה לי שמצאנו לנו ספונסור!
model view controller איננה שיטה דוט נטית:
model: שכבה המדברת עם הדטה-בייס בה יש ייצוג אובייקטלי לכל טבלה בדטה בייס.
controller: שכבת הביזנס לוג'יק (שכבת לוגיקה שמטפלת בשאילתות מהשרת ומתרגמת אותן לשאליתות לדטה בייס, לוקחת את המידע, מסדרת אותו יפה יפה ומעבירה אותו חזרה לשכבת ה-view). השכבה שמנהלת את העניינים.
view: שכבת ה-UI.
בסך הכל זו שיטה גרועה לאתרים גדולים שיש להם הרבה לוגיקה. אז נוצר מצב שמתכנתים מוסיפים לשכבת ה-controller שאילתות SQL בכל פעם שצריך לפנות לדטה בייסים עם משהו שהוא קצת יותר רציני משליפה (כמו join), ואין להם אובייקט מתאים במודל. כדי לפתור את זה צריך לנפח את המודל כל הזמן, כי מוסיפים אובייקטים לייצוג של חלקי טבלאות, או טבלאות שהן תוצר מספר של טבלאות אחרות וכו'. זה אומר שמתכנתים שלא היו אמורים לגעת בתשתיות כותבים תשתיות כל הזמן, או שהם מוסיפים שאילתות SQL בשכבות בתוכנה שלא היו אמורות לגעת בדטה בייס.
מקווה שזה עזר.
רונה,
MVC הוא design pattern מצוין, במיוחד לאתרים גדולים עם הרבה לוגיקה.
להגיד ש-MVC היא "בסך הכל שיטה גרועה לאתרים גדולים" זה בערך כמו להגיד ש-PHP היא שפה גרועה לאתרים גדולים.
99% מה-web frameworks הקיימים (לפחות ב-PHP וב-Python) בנויים על MVC.
לגבי הבעיה שציינת –
א. לא הבנתי מה הבעיה בניפוח המודל? אם האפליקציה זקוקה לעבודת database אינטנסיבית, זה חייב להימצא איפה שהוא, ועדיף שזה יהיה במקום המתאים.
ב. אפשר לעבוד עם ORM טוב, ואז חוץ מבמקרים נדירים של שאילתה מסובכת מאד, אין צורך להוסיף כלום למודל וגם לא לכתוב sql.
עמיר,
זה לא לעניין להוסיף שאילתות sql בשכבה שלא מיועדת לכך ועוד יותר לא לעניין להוסיף אובייקטים עד לאינסוף על כל קומפוזיציה של שליפה ממספר טבלאות. לטעמי, תמיד יש מקום לשכבה מקבילה לשכבת המודל שגם עוטפת את המודל, והיא אחראית על אובייקטים מורכבים, ניתן לייצר בה אובייקטים שמייצגים joinים או אובייקטים רגילים שפונים לשכבת המודל – הכל לפי צרכי האתר, ואם עושים את זה מספיק טוב, כל מה שמתכנת הביזנז לוג'יק צריך לדעת הוא רק איך לאתחל את האובייקטים הגנריים שנמצאים בתשתית – אפילו בלי לדעת לאיזו שכבה הוא באמת פונה עם בקשות.
נראה לי שאנחנו מתחילים לשעמם את קוראי הבלוג שלא מכירים if ו- class…
מסכים איתך לגבי "לא לעניין" הראשון והשני.
הנקודה הוא שב-MVC framework מודרני אין צורך באף אחד מהם.
דוגמה מ – cakephp
דוגמה מ – web2py (פייתון)
עמיר, אל תזלזל בקוראי הבלוג, הם היו משועמים עוד קודם לכן. אני עצמי דווקא מרגיש מאד מגורה בעקבות הדיון הזה.
מייקרוסופט? קוד פתוח? בלבלת אותי…
פבל, יש חיה בזאת (לא לבלבל עם רשיון אחר שלהם, SHARED SOURCE)
http://www.opensource.org/licenses/ms-pl.html
http://en.wikipedia.org/wiki/Shared_source