Mono (szoftver)

Monó egyszerűsített építészet Információ
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 .

Bemutatás

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:

Összehasonlítás a Java platformmal

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 komponensei

A Mono négy komponenscsoportból áll:

  1. a fő alkatrészek;
  2. a Mono / Linux / GNOME fejlesztői réteg;
  3. a Microsoft kompatibilitási réteg;
  4. az eszközök.

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 projekt felépítése és összehasonlítás a Microsoft .NET-rel

Engedély

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.

Mono és Microsoft szabadalmak

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.

Megállapodás a Novell és a Microsoft között

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.

Projektek a Mono használatával

Megjegyzések és hivatkozások

  1. "  https://github.com/mono/mono/releases/tag/mono-6.12.0.90  " (Hozzáférés : 2020. november 6. )
  2. (in) Mono C # fordító MIT X11 licenc alatt , Novell Inc., 2008. április 8.
  3. (in) Stallman, Richard, átirata Richard Stallman a szabad szoftver mozgalom , a Free Software Foundation , március 9, 2006
  4. (in) a Microsoft és a Novell bejelentése széles körű együttműködés a Windows és Linux együttes és támogatás SUSE a Novell Inc., november 2, 2006
  5. (in) Nyilatkozat a blog Mono projekt vezető Miguel de Icaza tekintetében oltalmat Mono , november 4, 2006
  6. (in) A Free Software Definition
  7. (in) "A Microsoft és a Novell együttműködés nyomon" , magyarázatok Miguel de Icaza .
  8. (in) cikk: David Sugar (Free Software Magazine): "A szabadságtól a rabszolgaságig; két disztró hét" .

Lásd is

Kapcsolódó cikkek

Külső linkek