מונו (תוכנה)

מתוך המכלול, האנציקלופדיה היהודית
קפיצה לניווט קפיצה לחיפוש
Gnome-edit-clear.svg
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים.
אתם מוזמנים לסייע ולערוך את הערך. אם לדעתכם אין צורך בעריכת הערך, ניתן להסיר את התבנית.
יש לערוך ערך זה. ייתכן שהערך סובל מבעיות ניסוח, סגנון טעון שיפור או צורך בהגהה, או שיש לעצב אותו, או מפגמים טכניים כגון מיעוט קישורים פנימיים.
אתם מוזמנים לסייע ולערוך את הערך. אם לדעתכם אין צורך בעריכת הערך, ניתן להסיר את התבנית.

מונואנגלית: Mono) הוא פרויקט קוד פתוח שמובילה חברת נובל, ומטרתו ליצור סביבת כלי פיתוח לסביבת .NET, כפי שהיא הוגדרה בתקן של ECMA. בין היתר מפותחים במסגרת הפרויקט מהדר לשפת #C ומכונה וירטואלית CLR. שלא כסביבת הפיתוח של מיקרוסופט, הפועלת במערכת Windows בלבד, סביבת הפיתוח של מונו פועלת על פלטפורמות רבות, ובהן Linux, Windows, Mac OS X, UNIX, FreeBSD. מונו דומה במטרותיו לפרויקט הקוד הפתוח DotGNU Portable .NET.

רוב המשתמשים בסביבת מונו הם מפתחי קוד פתוח המבקשים לפתח בכלי RAD‏ (Rapid Application Development), כפי שמאפשרת סביבת .NET, אך מבלי להגביל את הפיתוח למערכת Windows בלבד.

קוד הפרויקט מופץ תחת תנאי הרישיונות GPL, LGPL ו-MIT.

היסטוריה

מונו התחיל כפרויקט של מיגל דה-לקאסה ולבסוף כאשר החברה שלו, Ximian, חיפשה דרך לשפר את הפרודקטיביות של תהליך כתיבת התוכניות הם החליטו להשקיע בכתיבת כלים לכתיבת C# ב-Linux ובגלל מחסור בכח אדם הכריזו ביולי 2001 על פרויקט הקוד-פתוח מונו. כשלוש שנים אחרי כן ב 2004 הוכרזה גרסה 1.0 של מונו (שבספרדית משמעותו קוף).

הסבר טכני

בבסיס מונו עומד המהדר של C#, המכונה הווירטואלית וספריות הבסיס (וכל אלו עומדים בתקני ECMA). מעל זאת יש את כל הפיתוח שבסיסם נועדו לסביבת הGNOME ו-GTK הכוללים בין היתר ספריות ממשק משתמש גרפי, אינטגרציה עם מערכת ההפעלה, תמיכה ב-XML, תמיכה במסדי נתונים ועוד. לבסוף יש את רכיבי התאימות מול הרחבות של מיקרוסופט לשפה (שאינם חלק מתקן ECMA) וכוללים בין היתר תמיכה ב ADO.NET, ASP.NET, Windows.FORMS ועוד.

זכויות יוצרים

בגלל אי-בהירות בסוגיית זכויות היוצרים עבור חלק מרכיבי .NET של מיקרוסופט, ישנם מפתחים המעדיפים להשתמש בהרחבות החופשיות שיש למנגונים כמו GTK# במקום ל Windows.FORMS למשל (דבר שאינו מהווה בעיה לעבודה מכיוון שיש מימושים של ספריות אלו למרבית מערכות ההפעלה, אך ייתכן וייצורו בעיות תאימות כאשר ישתמשו בקוד שנכתב ספציפית רק למוצרי מיקרוסופט כמו Visual C#).

פיתוחים עתידיים

עם השקת Windows Vista הושקה .NET Framework 3, המכילה שיפורים ושינויים רבים ומשמעותיים לעומת .NET Framework 2. מפתחים רבים חוששים שפרויקט מונו, שעדיין לא התאים את עצמו לגרסה 2 של .NET לא יצליח לעמוד בקצב הפיתוח של מיקרוסופט ולהתאים את עצמו לגרסה 3.

ביקורות

כיום, יש מספר דברים שמונעים, מהבחינה הטכנולוגית, את התקדמות פרויקט מונו, ומרתיעים מפתחים מאימוץ מלא של הפרויקט.

  • פרויקט מונו, נמצא כרגע בתאימות רבה יחסית ל .NET Framework 1.1. למרות שהתאימות לגרסה 1.1 טובה, עדיין היא לא בשלה להרצת אפליקציות מורכבות ותדרוש התאמה רבה.
  • עקב ריבוי סביבות העבודה בלינוקס, קשה לפתח משהו שיעבוד בכל הסביבות בצורה נוחה, כזאת שתאפשר כתיבה ושימוש רגיל לחלוטין במחלקות ובכלים לתכנות חלונאי של .NET Framework עצמו.
מפתחים לא יכולים להשתמש ביכולות עצמן של System.Windows.Forms (מרחב השמות בו נמצאים רוב הדברים הקשורים לפיתוח חלונאי ב .NEt) בצורה טבעית, ולדעת בוודאות שהקוד שלהם יעבוד בלינוקס בכל סביבות העבודה האפשריות, מאחר שפרויקט מונו לא תומך בזה בצורה מספיק מקיפה, ודורש במקרים רבים שימוש בספריית חלונות שונה, כדוגמת Gtk#.
  • NET Framework 2 ו ASP.NET 2.0 לא נתמכים כראוי בפרויקט מונו.
היות שהשינויים בגרסה זאת רבים וחשובים, מפתחים רבים החלו להשתמש בה, אולם, פרויקט מונו לא מותאם עדיין כדי לאפשר הרצת האפליקציות שפותחו ב .NET Framework 2.0 על לינוקס.