Mono (programvare)

Mono forenklet arkitektur Informasjon
Skaper Miguel de Icaza
Utviklet av Xamarin , Ximian og Novell
Første versjon 30. juni 2004
Siste versjon 6.12.0 (30. juli 2020)
Innskudd github.com/mono/mono
Skrevet i C , C # og Extensible Markup Language
Operativsystem Linux , Microsoft Windows og macOS
Type Framework IT-plattform
Tillatelse GNU General Public License Versjon 2 , GNU Lesser General Public License og X11 License ( d )
Nettsted www.mono-project.com

Mono er en åpen kildekode- implementering (lisensiert under GNU GPL , GNU LGPL, eller X11 avhengig av elementet) av Microsoft .NET CLI- basert utviklingsplattform .

Mono ble initiert av Miguel de Icaza i sitt Ximian- selskap som ble kjøpt opp av Novell i 2003 . Etter oppkjøpet av Novell av Attachmate i 2011 ble Mono overtatt av et selskap opprettet for anledningen: Xamarin .

Presentasjon

Mono er en komplett utviklingsplattform basert på implementering av .NET -kodekjøringsmiljøet og kjerne- API-er definert i ECMA (også ISO- standarder ). Mono støtter for øyeblikket versjon 4.0 av Microsofts .NET-rammeverk.

Mono tilbyr blant annet:

Sammenligning med Java-plattformen

Ofte sammenlignet med Java- plattformen , deler denne plattformen mange tekniske aspekter, for eksempel bruk av et mellomspråk (IL for Intermediate Language , tilsvarende Java bytecode ), støtte for webapplikasjon , bærbarhet og et utvidet API. Leveres som standard.

Mono skiller seg ut fra Oracles løsning, men  :

Plattformen er designet for kompilerte og objektorienterte språk. Implementeringen av IronPython har imidlertid vist at det er mulig å oppnå lignende ytelse med et historisk tolket språk. Plattformen kan også ha grensesnitt med andre språk som er samlet på en tradisjonell måte, for eksempel C-språket.

Komponentene til Mono

Mono består av fire grupper av komponenter:

  1. hovedkomponentene;
  2. Mono / Linux / GNOME-utviklingslaget;
  3. Microsoft Compatibility Layer;
  4. verktøyene.

De hovedkomponenter omfatter den C # kompilatoren, den virtuelle maskin, og de basisklassebibliotek. Disse komponentene er bygget i henhold til Ecma-334 og Ecma-335 standardene, slik at Mono kan tilby en standard-kompatibel, gratis og åpen kommandolinjemaskin.

Den Mono / Linux / GNOME kompatibilitet Layer tilbyr verktøy for programutvikling ved å supplere eksisterende GNOME og andre gratis bibliotekene . Dette laget inkluderer: Gtk # for grafisk utvikling av brukergrensesnitt , biblioteker for samhandling med Mozillas Gecko-gjengivelsesmotor , Unix-integrasjonsbiblioteker, databaseforbindelsesbiblioteker, et sikkerhetslag og RelaxNG XML-språkskjemaet . Gtk # lar mono-applikasjoner integreres naturlig i skrivebordsmiljøet GNOME. Databaseforbindelsesbiblioteker tillater interaksjon med MySQL , SQLite , PostgreSQL , Firebird , Open Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle , db4o og mange andre. Mono-prosjektet sporer utviklingen av databasekoblingskomponenter på nettstedet.

Den Microsoft Compatibility Layer gir en enkel måte å port Windows .NET applikasjoner til GNU / Linux. Denne gruppen av komponenter inkluderer blant annet ADO.NET , ASP.NET og Windows.Forms . Siden disse komponentene ikke dekkes av ECMA-standardene, er de fortsatt underlagt bekymring fra patenter og lisenser som Microsoft eier.

De verktøyene bringe sammen de nødvendige verktøy for utvikling av .NET applikasjoner på andre enn Windows-plattformer. Dette inkluderer MonoDevelop IDE samt dets komponenter, for eksempel feilsøkingsprogrammet .

Diagrammet nedenfor oppsummerer situasjonen for prosjekt med hensyn til Framework så vel som separasjonene mellom de forskjellige komponentene og deres tilgjengelighet på hoved operativsystemer  :

Struktur av Mono-prosjektet og sammenligning med Microsoft .NET

Tillatelse

Mono distribueres under en dobbel lisens fra Novell , som andre produkter som Mozilla-pakken . Monos C # -kompilator og verktøy distribueres under GNU GPL- lisensen (kun v2; fra og med Mono versjon 2.0 vil kildekoden for C # -kompilatoren også være tilgjengelig under MIT X11-lisensen ). Runtime-biblioteker frigjøres under GNU LGPL- lisens (kun v2) og klassebiblioteker frigjøres under MIT-lisensen . Alle disse lisensene er gratis og åpen kildekode, noe som gjør Mono-prosjektet til et gratis og åpen kildekode-prosjekt.

Mono- og Microsoft-patenter

Overføringen til Mono av .NET- komponenter som ikke ble sendt til ECMA for standardisering var fra begynnelsen en kilde til bekymring for programkrenkelser. Spesielt har det vært diskusjoner om en mulighet for at Microsoft kan ødelegge Project Mono gjennom søksmål om patentbrudd.

Teknologiene som ligger til grunn for Mono, sendt til ECMA, er ikke problematiske. Dette inkluderer også kompatibilitetslaget Mono / Linux / GNOME, som ikke bruker teknologier som kan være dekket av patenter fra Microsoft. Så C # , biblioteker og andre programvarelag i GNU Project blir ikke berørt av disse bekymringene.

Imidlertid er det annerledes for Microsofts kompatibilitetslag, som gjelder teknologiene som utgjør .NET- rammeverket . Disse inkluderer blant annet ASP.NET, ADO.NET, kommunikasjonslaget til .NET 3.0 framework (Windows Communication Foundation) og Windows.Forms. Disse teknologiene er ennå ikke fullt ut implementert i Mono; Richard Stallman sa at det kan være "farlig" å bruke Mono på grunn av muligheten for Microsofts patentbrudd. Imidlertid er bruk av potensielt problematiske komponenter ikke nødvendig for å programmere Mono-applikasjoner.

Avtale mellom Novell og Microsoft

Microsoft og Novell kunngjorde 2. november 2006signering av en avtale der Microsoft godtar å ikke saksøke Novell eller deres kunder for brudd på programvarepatenter. I følge Miguel de Icaza, Monos utviklingssjef, påvirkes Mono-prosjektet av denne avtalen, men bare for Novell-utviklere og deres kunder. Dette har blitt kritisert av mange i bevegelsen av fri programvare, da det bryter med prinsippene om like rettigheter mellom alle brukere av et bestemt program definert for fri programvare.

Prosjekter som bruker Mono

Merknader og referanser

  1. "  https://github.com/mono/mono/releases/tag/mono-6.12.0.90  " (Skrevet 6. november 2020 )
  2. (in) Mono C # Compiler Under MIT X11 License , Novell Inc., 8. april 2008.
  3. (in) Stallman, Richard, utskrift av Richard Stallman om Free Software-bevegelsen , Free Software Foundation , 9. mars 2006
  4. (in) Microsoft og Novell kunngjør bredt samarbeid om Windows og Linux interoperabilitet og støtte SUSE , Novell Inc., 2. november 2006
  5. (in) Uttalelse på bloggen til Mono-prosjektleder Miguel de Icaza angående patentbeskyttelse for Mono , 4. november 2006
  6. (in) Definisjonen av fri programvare
  7. (i) "Microsoft og Novell samarbeid, følg" , forklaringer av Miguel de Icaza .
  8. (in) Artikkel av David Sugar (Free Software Magazine): "Fra frihet til slaveri; en uke med to distroer" .

Se også

Relaterte artikler

Eksterne linker