Bue | ||
---|---|---|
Generell informasjon | ||
programtype | Programmeringsspråk | |
Forfatter | Miguel de Icaza Amozorrutia | |
utvikler | Xamarin | |
Første utgivelse | 30. juni 2004 | |
Tillatelse | GPL , LGPL og MIT | |
Teknisk informasjon | ||
Planlagt inn | ||
Versjoner | ||
Siste stabile versjon | 6.8.0 (15. januar 2020 (2 år, 9 måneder og 2 dager)) | |
Siste versjon i tester | 6.12.0.1844. august 2022 | |
Lenker | ||
Offesiell nettside kodelager feilsporing | ||
Mono er navnet på et åpen kildekode-prosjekt startet av Ximian støttet av Microsoft og for tiden drevet av Novell (etter Ximians oppkjøp) for å lage en gruppe gratis, GNU/Linux- baserte, .NET - kompatible verktøy som spesifisert av ECMA .
Mono har viktige komponenter som er nyttige for utvikling av programvare :
Det er et lignende prosjekt, kalt Portable.NET , som er en del av dotGNU- prosjektet .
Så snart Microsoft publiserte dokumentene som spesifiserte .NET -arkitekturen i desember 2000, ble Miguel de Icaza (medgründer av Ximian-selskapet og GNOME Foundation ) interessert i dem.
GNOME hadde alltid forsøkt å gjøre programmereren enkel, og en av de mest kjente funksjonene er at det er mange bindinger for å kunne bruke hvilket som helst programmeringsspråk for å utvikle applikasjoner. Men utarbeidelsen av disse bindingene var enormt arbeidskrevende, og hver gang det ble gjort en endring i det originale grensesnittet, var det nødvendig å endre hver og en av bindingene.
For å prøve å forbedre og lette gjenbruk av kode, ble det laget en komponentimplementering, kalt Bonobo , ved bruk av CORBA . Men det har heller ikke vært vellykket, siden det var nødvendig for all programvare å bruke den funksjonen, og det var ikke tilfelle. Derfor åpnes en ny dør med .NET for å gjøre GNOME til et bedre og mer attraktivt skrivebord for både brukere og utviklere i fremtiden. Med denne teknologien oppnås endelig det GNOME -prosjektet alltid hadde søkt: språkuavhengighet for programmering på skrivebordet.
Miguel de Icaza , etter å ha analysert byte - kodetolken , advarer om at det ikke er noen spesifikasjoner. I februar 2001 begynte han å søke etter slik informasjon på .NET -e- postlistene og samtidig begynte han å jobbe med en C# -kompilator i samarbeid med Rhys Weatherley og Jay Freeman, det samme ble programmert i C# som en øvelse for å demonstrere kraften hans . .
I april 2001 publiserer ECMA det manglende filformatet og på GUADEC (6.-8. april 2001) demonstrerer Icaza kompilatorens evner. Etter en grundig analyse, hvor det tydelig konkluderes med at det er mulig å bygge denne teknologien, tildeler Ximian menneskelige ressurser fra andre prosjekter og oppretter Mono-teamet. [ 2 ] I håp om å ha et verktøy som ville være en fullstendig erstatning for .NET -teknologi , dannet de The Mono Open Source Project , som ble annonsert i juli 2001 på O'Reilly-konferansen.
Det tok 3 år før 30. juni 2004 Mono 1.0 endelig ble utgitt.
Klassebiblioteker tilbyr et sett med fasiliteter som hjelper applikasjonsutvikling. De er primært skrevet i C# , men takket være Common Language Specification ( CLS ), kan de påberopes på et hvilket som helst annet .NET -språk . Klassebiblioteker er strukturert i navnerom (navnerom) og settes i produksjon i delte biblioteker kalt assemblies eller assemblies . Når vi snakker om .NET -rammeverket , refererer vi først og fremst til klassebibliotekene.[JAC]
Navnerom er en mekanisme som gjør at lignende klasser kan grupperes logisk i en hierarkisk struktur, og dermed unngå navnekonflikter. Strukturen er implementert ved hjelp av ord atskilt med prikker. For eksempel System.IO eller System.Net gruppeklasser for henholdsvis filtilgang og nettverkskommunikasjon.
Forsamlinger er den fysiske pakken av klassebiblioteker. De er filer med filtypen .dll, som Windows-biblioteker. Eksempler på biblioteker er mscorlib.dll, System.dll, System.Data.dll.
Navneområder består vanligvis av mange sammenstillinger , og en sammenstilling kan bestå av flere filer.
Common Infrastructure Language eller mer ofte kalt Common Language Runtime ( CLR ) implementeres av Mono-kjørbaren. Kjøretiden brukes til å kjøre applikasjoner kompilert i .NET . Dette vanlige infrastrukturspråket er definert i ECMA- og ECMA-335- standardene . For å kjøre en applikasjon, må kjøretiden startes med de riktige parameterne.
Den er spesifisert i ECMA-335- standarden og definerer grensesnittet med CLR . For eksempel konvensjoner om datatypen som skal brukes til å implementere opptellinger. Mono-kompilatoren genererer et bilde som er i samsvar med CLS , dette bildet er kodet i det såkalte Common Intermediate Language ( CIL ) eller Common Intermediate Language . Mono runtime tar bildet og kjører det .
Monos implementering av de .NET-komponentene som ikke er sendt inn til ECMA for standardisering, har reist noen bekymringer om mulig brudd på programvarepatenter i løpet av prosjektets levetid. Spesielt utviklet diskusjonen seg om hvorvidt Microsoft kunne ødelegge monoprosjektet gjennom søksmål om krenkede patenter.
Det er for tiden en livlig debatt om (u)rådeligheten av å akseptere og bruke Mono i GNU/Linux- utviklerfellesskapet . Hovedargumentene mot Mono er:
På den annen side utvikler Gnome-prosjektet et alternativt språk, Vala , laget spesielt for å utvikle applikasjoner for Gnome, men fri for potensielle Microsoft-trusler.