Teremtő | Miguel de Icaza |
---|---|
Fejlesztette | Xamarin , Ximian és Novell |
Az első verzió | 2004. június 30 |
Utolsó verzió | 6.12.0 (2020. július 30) |
Letét | github.com/mono/mono |
Beírva | C , C # és kiterjeszthető jelölési nyelv |
Operációs rendszer | Linux , Microsoft Windows és macOS |
típus |
Keret informatikai platform |
Engedély | GNU General Public License 2. verzió , GNU Lesser General Public License és X11 License ( d ) |
Weboldal | www.mono-project.com |
Mono egy nyílt forráskódú megvalósítása (licenc alatt a GNU GPL , GNU LGPL, vagy X11 tételtől függően) a Microsoft .NET CLI- alapú fejlesztési platform .
Mono kezdeményezte Miguel de Icaza belül a Ximiant cég amely megszerezte a Novell a 2003 . Miután az Attachmate 2011-ben megvásárolta a Novellet , a Mono-t átvette az erre az alkalomra létrehozott vállalat: a Xamarin .
A Mono egy teljes fejlesztési platform, amely a .NET kódfuttatási környezet és az ECMA által meghatározott alapvető API-k (szintén ISO szabványok ) megvalósításán alapul. A Mono jelenleg támogatja a Microsoft .NET-keretrendszerének 4.0-s verzióját.
A Mono többek között a következőket kínálja:
Gyakran a Java platformhoz képest ez a platform számos technikai szempontot megoszt, például egy köztes nyelv használatát (IL for Intermediate Language , egyenértékű a Java byte-kóddal ), a webalkalmazások támogatását , a hordozhatóságot és a kiterjesztett API-t.
Mono azonban kiemelkedik az Oracle megoldásából :
A platform fordított és objektumorientált nyelvek számára készült. Az IronPython megvalósítása azonban megmutatta, hogy történelmileg értelmezett nyelvvel hasonló teljesítmény érhető el. Ezenkívül a platform összekapcsolható más, hagyományos módon összeállított nyelvekkel, például a C nyelvvel.
A Mono négy komponenscsoportból áll:
A fő összetevők közé tartozik a C # fordító, a virtuális gép és az alaposztály könyvtárai. Ezek az alkatrészek az Ecma-334 és az Ecma-335 szabványoknak megfelelően épülnek fel, lehetővé téve a Mono számára, hogy szabványoknak megfelelő, ingyenes és nyitott parancssori virtuális gépet biztosítson.
A Mono / Linux / GNOME kompatibilitási réteg az alkalmazásfejlesztéshez nyújt eszközöket a meglévő GNOME és más ingyenes könyvtárak kiegészítésével . Ez a réteg a következőket tartalmazza: Gtk # a grafikus felhasználói felület fejlesztéséhez , könyvtárak a Mozilla Gecko renderelő motorjával való interakcióhoz , Unix integrációs könyvtárak, adatbázis kapcsolati könyvtárak, egy biztonsági réteg és a RelaxNG XML nyelvi séma . A Gtk # lehetővé teszi a Mono alkalmazások számára, hogy természetesen integrálódjanak a GNOME asztali környezetbe. Az adatbázis-kapcsolati könyvtárak lehetővé teszik a MySQL , az SQLite , a PostgreSQL , a Firebird , az Open Database Connectivity (ODBC), a Microsoft SQL Server (MSSQL), az Oracle , a db4o és még sok mással való interakciót . A Mono projekt nyomon követi az adatbázis-kapcsolat összetevőinek fejlődését a weboldalán.
A Microsoft kompatibilitási réteg lehetőséget nyújt a Windows .NET-alkalmazások GNU / Linux-ra történő egyszerű hordozására. Az összetevők ezen csoportja többek között az ADO.NET , az ASP.NET és a Windows.Forms formátumokat tartalmazza . Mivel ezekre az alkatrészekre nem vonatkoznak az ECMA szabványai, továbbra is a Microsoft birtokában lévő szabadalmak és licencek vonatkoznak rájuk.
Az eszközök összefogják azokat az eszközöket, amelyek szükségesek a .NET alkalmazások fejlesztéséhez a Windows rendszeren kívüli más platformokon. Ez magában foglalja a MonoDevelop IDE-t , valamint annak összetevőit, például a hibakeresőt .
Az alábbi ábra összefoglalja a projekt helyzetét a .NET-keretrendszerrel, valamint a különböző összetevők közötti elválasztással és azok elérhetőségével a fő operációs rendszereken :
A Mono-t a Novell kettős licenc alapján terjeszti , hasonlóan más termékekhez, például a Mozilla csomaghoz . A Mono C # fordítóját és eszközeit a GNU GPL licenc alatt terjesztik (csak v2; a Mono 2.0 verziótól kezdve a C # fordító forráskódja MIT X11 licenc alatt is elérhető lesz ). A futásidejű könyvtárak a GNU LGPL licenc alatt (csak v2), az osztályos könyvtárak pedig az MIT licenc alatt kerülnek kiadásra . Mindezek a licencek ingyenesek és nyílt forráskódúak, így a Mono projekt ingyenes és nyílt forráskódú projektté válik.
Az ECMA- hoz szabványosítás céljából be nem nyújtott .NET- összetevők Mono-ba történő átvitele kezdettől fogva aggodalomra ad okot a szoftver szabadalmi megsértése miatt. Különösen arról volt szó, hogy a Microsoft szabadalombitorlási perek révén megsemmisítheti a Project Mono projektet.
Az ECMA-hoz benyújtott, Mono alapjául szolgáló technológiák nem okoznak problémát. Ide tartozik a Mono / Linux / GNOME kompatibilitási réteg is, amely nem használ olyan technológiákat, amelyekre a Microsoft szabadalmai vonatkozhatnak. Tehát a CN-t , a könyvtárakat és a GNU Project egyéb szoftverrétegeit nem érintik ezek az aggályok.
Ez azonban eltér a Microsoft kompatibilitási rétegétől, amely a .NET keretrendszert alkotó technológiákat érinti . Ide tartoznak többek között az ASP.NET, az ADO.NET, a .NET 3.0 keretrendszer kommunikációs rétege (Windows Communication Foundation) és a Windows.Forms. Ezeket a technológiákat Monóban még nem hajtják végre teljes mértékben; Richard Stallman szerint a Mono használata "veszélyes" lehet a Microsoft szabadalmi megsértésének lehetősége miatt. A Mono alkalmazások programozásához azonban nincs szükség potenciálisan problémás összetevők használatára.
A Microsoft és a Novell bejelentette 2006. november 2egy olyan megállapodás aláírása, amelyben a Microsoft vállalja, hogy nem pereli a Novellt vagy ügyfeleit a szoftver szabadalmak megsértése miatt. Miguel de Icaza, a Mono fejlesztési vezetője szerint a Mono projektet ez a megállapodás érinti, de csak a Novell fejlesztői és ügyfelei számára. Ezt sokan kritizálták a szabad szoftver mozgalomban, mivel ez sérti az adott program minden felhasználója közötti egyenlő jogok szabad szoftverre meghatározott elvét.