מונו (תוכנה)

מונו (באנגלית: Mono) הוא מיזם קוד פתוח שמובילה חברת נובל, ומטרתו ליצור סביבת כלי פיתוח לסביבת .NET כפי שהוגדרה בתקן ECMA. 

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

מונו דומה במטרותיו לפרויקט הקוד הפתוח DotGNU Portable .NET.

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

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

היסטוריה 
מונו התחיל כפרויקט של מיגל דה איקזה . כאשר החברה שלו Ximian חיפשה דרך לשפר את הפרודקטיביות של תהליך כתיבת התוכניות הם החליטו להשקיע בכתיבת כלים לכתיבת סי שארפ בלינוקס, ובשל מחסור בכח אדם, הכריזו ביולי 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 על לינוקס.

קישורים חיצוניים
 

כלי תכנות
תוכנה חופשית