Luoja | Miguel de Icaza |
---|---|
Kehittäjä | Xamarin , Ximian ja Novell |
Ensimmäinen versio | 30. kesäkuuta 2004 |
Viimeinen versio | 6.12.0 (30. heinäkuuta 2020) |
Tallettaa | github.com/mono/mono |
Kirjoitettu | C , C # ja laajennettava merkintäkieli |
Käyttöjärjestelmä | Linux , Microsoft Windows ja macOS |
Tyyppi |
Framework IT platform |
Lisenssi | GNU General Public License Version 2 , GNU Lesser General Public License ja X11 License ( d ) |
Verkkosivusto | www.mono-project.com |
Mono on avoimen lähdekoodin toteutus (lisensoitu tuotteista GNU GPL , GNU LGPL tai X11 tuotteesta riippuen) Microsoft .NET CLI -pohjaiseen kehitysympäristöön .
Monon aloitti Miguel de Icaza Ximian- yrityksessään, jonka Novell osti vuonna 2003 . Sen jälkeen, kun Attachmate osti Novellin vuonna 2011, Mono siirtyi tilaisuuteen perustetulle yritykselle: Xamarin .
Mono on täydellinen kehitysalusta perustuu toteuttamisesta .NET koodin suorittamisen ympäristö ja ytimen API määritellään ECMA (myös ISO standardit ). Mono tukee tällä hetkellä Microsoftin .NET-kehyksen versiota 4.0.
Mono tarjoaa muun muassa:
Usein Java- alustaan verrattuna tällä alustalla on monia teknisiä näkökohtia, kuten välikielen käyttö (IL for Intermediate Language , vastaa Java- tavukoodia ), verkkosovellustuki , siirrettävyys ja laajennettu API.
Mono erottuu kuitenkin Oraclen ratkaisusta :
Alusta on suunniteltu käännetyille ja olio-orientoiduille kielille. IronPythonin toteutus on kuitenkin osoittanut, että samanlainen suorituskyky on mahdollista saavuttaa historiallisesti tulkitulla kielellä. Alusta voidaan myös liittää muihin perinteisellä tavalla koottuihin kieliin, kuten C-kieleen.
Mono koostuu neljästä komponenttiryhmästä:
Pääkomponentit ovat C # kääntäjä, virtuaalikoneen, ja perustaa luokan kirjastoja. Nämä komponentit on rakennettu Ecma-334- ja Ecma-335-standardien mukaisesti, jolloin Mono voi tarjota standardien mukaisen, ilmaisen ja avoimen komentorivin virtuaalikoneen.
Mono / Linux / GNOME yhteensopivuuskerros tarjoaa työkalut sovellusten kehittämiseen täydentämällä nykyisiä GNOME ja muut vapaa kirjastot . Tämä kerros sisältää: Gtk # varten graafisen käyttöliittymän kehittämiseen , kirjastot vuorovaikutuksessa Mozillan Gecko , Unix integraatio kirjastot, tietokantayhteyden kirjastot, turvallisuus kerros ja RelaxNG XML: skeema . Gtk # antaa Mono-sovellusten integroitua luonnollisesti GNOME-työpöytäympäristöön. Tietokantayhteyskirjastot mahdollistavat vuorovaikutuksen MySQL: n , SQLiten , PostgreSQL: n , Firebirdin , Open Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle , db4o ja monien muiden kanssa. Mono-projekti seuraa tietokantayhteyksien komponenttien kehitystä verkkosivuillaan.
Microsoft yhteensopivuuskerros tarjoaa tavan helposti porttiin Windows .NET sovelluksia GNU / Linux. Tähän ryhmään komponentteja kuuluvat muun muassa ADO.NET , ASP.NET ja Windows.Forms . Koska nämä komponentit eivät kuulu ECMA-standardien piiriin, niihin sovelletaan edelleen Microsoftin hallussa olevia patentteja ja lisenssejä.
Työkalut koota tarvittavat työkalut kehittämiseen NET-sovellukset käyttävät muuta kuin Windows. Tämä sisältää MonoDevelop IDE : n sekä sen komponentit, kuten virheenkorjauksen .
Seuraavassa kaaviossa esitetään yhteenveto tilanteesta hankkeen suhteen .NET Framework sekä erottamiset eri osien ja niiden saatavuus tärkeimmistä käyttöjärjestelmissä :
Monoa jaetaan Novellin kaksoislisenssillä , kuten muita tuotteita, kuten Mozilla Suite . Monon C #-kääntäjä ja työkalut jaetaan GNU GPL -lisenssillä (vain v2; alkaen Mono-versiosta 2.0 C-kääntäjän lähdekoodi on saatavana myös MIT X11 -lisenssillä ). Ajonaikaiset kirjastot julkaistaan GNU LGPL -lisenssillä (vain v2) ja luokan kirjastot MIT-lisenssillä . Kaikki nämä lisenssit ovat ilmaisia ja avoimen lähdekoodin, mikä tekee Mono-projektista ilmaisen ja avoimen lähdekoodin projektin.
.NET- komponenttien siirtäminen Monoon, joita ei ole toimitettu ECMA : lle standardoimiseksi, oli alusta alkaen huolenaihe ohjelmistopatenttirikkomuksista. Erityisesti on keskusteltu mahdollisuudesta, että Microsoft voisi tuhota Project Monon patenttirikkomusoikeudenkäynneillä.
ECMA: lle toimitetut Monon taustalla olevat tekniikat eivät ole ongelmallisia. Tähän sisältyy myös Mono / Linux / GNOME-yhteensopivuuskerros, joka ei käytä tekniikoita, jotka saattavat olla Microsoftin patenttien kattamia. Joten nämä huolenaiheet eivät vaikuta GNU-projektin C #: ään , kirjastoihin ja muihin ohjelmistokerroksiin.
Se on kuitenkin erilainen Microsoftin yhteensopivuuskerroksessa, joka koskee .NET- kehyksen muodostavia tekniikoita . Näitä ovat muun muassa ASP.NET, ADO.NET, .NET 3.0 -kehyksen (Windows Communication Foundation) ja Windows.Forms-viestintäkerros. Näitä tekniikoita ei ole vielä täysin toteutettu Monossa; Richard Stallman sanoi, että Monon käyttö voi olla "vaarallista", koska Microsoft voi rikkoa patentteja. Mono-sovellusten ohjelmoinnissa ei kuitenkaan vaadita mahdollisesti ongelmallisten komponenttien käyttöä.
Microsoft ja Novell ilmoittivat 2. marraskuuta 2006sopimuksen allekirjoittaminen, jossa Microsoft sitoutuu olemaan haastamatta Novellia tai heidän asiakkaitaan ohjelmistopatenttien loukkauksista. Monon kehitysjohtaja Miguel de Icazan mukaan tämä sopimus vaikuttaa Mono-projektiin, mutta vain Novell-kehittäjille ja heidän asiakkailleen. Vapaiden ohjelmistojen liikkeessä monet ovat kritisoineet tätä, koska se rikkoo vapaiden ohjelmistojen määrittelemän tietyn ohjelman kaikkien käyttäjien välisten yhtäläisten oikeuksien periaatteita.