Mono (software)

Mono forenklet arkitektur Information
Skaberen Miguel de Icaza
Udviklet af Xamarin , Ximian og Novell
Første version 30. juni 2004
Sidste version 6.12.0 (30. juli 2020)
Depositum github.com/mono/mono
Skrevet i C , C # og Extensible Markup Language
Operativ system Linux , Microsoft Windows og macOS
Type Framework IT-platform
Licens GNU General Public License Version 2 , GNU Lesser General Public License og X11 License ( d )
Internet side www.mono-project.com

Mono er en open source- implementering (licenseret under GNU GPL , GNU LGPL eller X11 afhængigt af varen) på Microsoft .NET CLI- baseret udviklingsplatform .

Mono blev initieret af Miguel de Icaza inden for sit Ximian- firma, som blev købt af Novell i 2003 . Efter overtagelsen af ​​Novell af Attachmate i 2011 blev Mono overtaget af et selskab oprettet til lejligheden: Xamarin .

Præsentation

Mono er en komplet udviklingsplatform baseret på en implementering af .NET -kodeudførelsesmiljøet og centrale API'er defineret i ECMA (også ISO- standarder ). Mono understøtter i øjeblikket version 4.0 af Microsofts .NET framework.

Mono tilbyder blandt andet:

Sammenligning med Java-platformen

Ofte sammenlignet med Java- platformen deler denne platform mange tekniske aspekter, såsom brugen af ​​et mellemliggende sprog (IL for Intermediate Language , svarende til Java bytecode ), understøttelse af webapplikationer , bærbarhed og en udvidet API.

Mono skiller sig ud fra Oracles løsning, dog  :

Platformen er designet til kompilerede og objektorienterede sprog. Implementeringen af IronPython har imidlertid vist, at det er muligt at opnå lignende præstationer med et historisk fortolket sprog. Desuden kan platformen være grænseflade med andre sprog, der er sammensat på en traditionel måde, såsom C-sproget.

Komponenterne i Mono

Mono består af fire grupper af komponenter:

  1. de vigtigste komponenter
  2. Mono / Linux / GNOME-udviklingslaget;
  3. Microsoft Compatibility Layer;
  4. værktøjerne.

De vigtigste komponenter omfatter C # compiler, den virtuelle maskine, og basen klasse biblioteker. Disse komponenter er bygget til Ecma-334 og Ecma-335 standarderne, så Mono kan levere en standard-kompatibel, gratis og åben virtuel kommandolinjemaskine.

Den Mono / Linux / GNOME Kompatibilitet Layer giver værktøjer til applikationsudvikling ved at supplere eksisterende GNOME og andre gratis biblioteker . Dette lag inkluderer: Gtk # til udvikling af grafisk brugergrænseflade , biblioteker til interaktion med Mozillas Gecko-gengivelsesmotor , Unix-integrationsbiblioteker, databaseforbindelsesbiblioteker, et sikkerhedslag og RelaxNG XML- sprogskemaet . Gtk # tillader mono-applikationer at integreres naturligt i GNOME-skrivebordsmiljøet. Databaseforbindelsesbiblioteker tillader interaktion med MySQL , SQLite , PostgreSQL , Firebird , Open Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle , db4o og mange andre. Mono-projektet sporer udviklingen af ​​komponenter til databaseforbindelser på sit websted.

Den Microsoft Compatibility Layer giver en let måde at port Windows NET applikationer til GNU / Linux. Denne gruppe af komponenter inkluderer blandt andet ADO.NET , ASP.NET og Windows.Forms . Da disse komponenter ikke er omfattet af ECMA-standarderne, er de fortsat underlagt bekymring for patenter og licenser, som Microsoft besidder.

De værktøjer samle de nødvendige redskaber til udvikling af .NET applikationer på andre end Windows-platforme. Dette inkluderer MonoDevelop IDE samt dets komponenter, såsom dets fejlfindingsprogram .

Følgende diagram opsummerer projektets situation med hensyn til .NET Framework samt adskillelserne mellem de forskellige komponenter og deres tilgængelighed på de vigtigste operativsystemer  :

Mono-projektets struktur og sammenligning med Microsoft .NET

Licens

Mono distribueres under en dobbelt licens fra Novell , ligesom andre produkter såsom Mozilla-pakken . Mono's C # -compiler og -værktøjer distribueres under GNU GPL- licensen (kun v2; startende med Mono version 2.0, kildekoden til C # -compileren vil også være tilgængelig under MIT X11-licensen ). Kørselsbiblioteker frigives under GNU LGPL- licensen (kun v2), og klassebiblioteker frigives under MIT-licensen . Alle disse licenser er gratis og open source, hvilket gør Mono-projektet til et gratis og open source-projekt.

Mono- og Microsoft-patenter

Overførslen til Mono af .NET- komponenter, der ikke blev sendt til ECMA til standardisering, var fra starten en kilde til bekymring over softwareovertrædelser. Især har der været diskussioner om en mulighed for, at Microsoft kunne ødelægge Project Mono gennem patentovertrædelsessager.

De teknologier, der ligger til grund for Mono, indsendt til ECMA, er ikke problematiske. Dette inkluderer også kompatibilitetslaget Mono / Linux / GNOME, som ikke bruger teknologier, der muligvis er dækket af patenter fra Microsoft. Så C # , biblioteker og andre softwarelag i GNU-projektet påvirkes ikke af disse bekymringer.

Det er dog anderledes for Microsofts kompatibilitetslag, der vedrører de teknologier, der udgør .NET framework . Disse inkluderer blandt andet ASP.NET, ADO.NET, kommunikationslaget i .NET 3.0 framework (Windows Communication Foundation) og Windows.Forms. Disse teknologier er endnu ikke implementeret fuldt ud i Mono; Richard Stallman sagde, at det kan være "farligt" at bruge Mono på grund af muligheden for Microsofts patentovertrædelser. Brug af potentielt problematiske komponenter er dog ikke påkrævet for at programmere Mono-applikationer.

Aftale mellem Novell og Microsoft

Microsoft og Novell annoncerede November 2 , 2006undertegnelsen af ​​en aftale, hvor Microsoft accepterer ikke at sagsøge Novell eller deres kunder for overtrædelse af softwarepatenter. Ifølge Miguel de Icaza, Monos udviklingschef, påvirkes Mono-projektet af denne aftale, men kun for Novell-udviklere og deres kunder. Dette er blevet kritiseret af mange inden for fri software-bevægelse, da det krænker principperne om lige rettigheder mellem alle brugere af et bestemt program defineret til fri software.

Projekter, der bruger Mono

Noter og referencer

  1. "  https://github.com/mono/mono/releases/tag/mono-6.12.0.90  " (Adgang til 6. november 2020 )
  2. (i) Mono C # Compiler under MIT X11-licens , Novell Inc., den 8. april 2008.
  3. (i) Stallman, Richard, Udskrift af Richard Stallman om fri software-bevægelsen , Free Software Foundation 9 marts, 2006
  4. (i) Microsoft og Novell Announce bredt samarbejde på Windows og Linux interoperabilitet og support SUSE , Novell Inc., November 2, 2006
  5. (in) Erklæring på bloggen fra Mono-projektleder Miguel de Icaza vedrørende patentbeskyttelse for Mono , 4. november 2006
  6. (i) Definitionen af ​​fri software
  7. (in) "Microsoft og Novell samarbejde, følg" , forklaringer af Miguel de Icaza .
  8. (in) artikel af David Sugar (Free Software Magazine): "Fra frihed til slaveri; en uge med to distributioner" .

Se også

Relaterede artikler

eksterne links