Mono (software)

Mono arhitectură simplificată informație
Creator Miguel de Icaza
Dezvoltat de Xamarin , Ximian și Novell
Prima versiune 30 iunie 2004
Ultima versiune 6.12.0 (30 iulie 2020)
Depozit github.com/mono/mono
Scris in C , C # și limbaj de marcare extensibil
Sistem de operare Linux , Microsoft Windows și macOS
Tip Platformă IT
cadru
Licență GNU General Public License Versiunea 2 , GNU Lesser General Public License și X11 License ( d )
Site-ul web www.mono-project.com

Mono este o implementare open source (licențiată sub GNU GPL , GNU LGPL sau X11 în funcție de articol) a platformei de dezvoltare Microsoft .NET bazată pe CLI .

Mono a fost inițiat de Miguel de Icaza în cadrul companiei sale Ximian , care a fost achiziționată de Novell în 2003 . În urma achiziției Novell de către Attachmate în 2011, Mono a fost preluată de o companie creată pentru ocazie: Xamarin .

Prezentare

Mono este o platformă completă de dezvoltare bazată pe o implementare a mediului de execuție a codului .NET și API-uri de bază definite la ECMA (de asemenea, standarde ISO ). Mono acceptă în prezent versiunea 4.0 a cadrului .NET al Microsoft.

Mono oferă printre altele:

Comparație cu platforma Java

Adesea, comparată cu platforma Java , această platformă împărtășește multe aspecte tehnice, cum ar fi utilizarea unui limbaj intermediar (IL pentru limbaj intermediar , echivalent cu codul secundar Java), suport pentru aplicații web , portabilitate și un API extins. Furnizat ca standard.

Cu toate acestea, Mono iese în evidență din soluția Oracle  :

Platforma este concepută pentru limbaje compilate și orientate pe obiecte. Cu toate acestea, implementarea IronPython a arătat că este posibil să se obțină performanțe similare cu un limbaj interpretat istoric. De asemenea, platforma poate fi interfațată cu alte limbi compilate într-un mod tradițional, cum ar fi limbajul C.

Componentele Mono

Mono este format din patru grupe de componente:

  1. componentele principale;
  2. stratul de dezvoltare Mono / Linux / GNOME;
  3. stratul de compatibilitate Microsoft;
  4. uneltele.

Componentele principale includ compilatorul C #, mașina virtuală și bibliotecile de clase de bază. Aceste componente sunt construite conform standardelor Ecma-334 și Ecma-335, permițând Mono să furnizeze o mașină virtuală de linie de comandă, gratuită și deschisă, conformă cu standardele.

Mono / Linux / GNOME Compatibilitate Layer oferă instrumente pentru dezvoltarea de aplicații prin completarea existente GNOME și alte libere biblioteci . Acest strat include: Gtk # pentru dezvoltarea interfeței grafice a utilizatorului , biblioteci pentru interacțiunea cu motorul de redare Gecko Mozilla, biblioteci de integrare Unix, biblioteci de conexiuni la baze de date, un strat de securitate și schema de limbaj RelaxNG XML . Gtk # permite aplicațiilor Mono să se integreze în mod natural în mediul desktop GNOME. Bibliotecile de conectare la baze de date permit interacțiunea cu MySQL , SQLite , PostgreSQL , Firebird , Open Database Connectivity (ODBC), Microsoft SQL Server (MSSQL), Oracle , db4o și multe altele. Proiectul Mono urmărește dezvoltarea componentelor conexiunii la baza de date pe site-ul său web.

Stratul de compatibilitate Microsoft oferă o modalitate de a purta cu ușurință aplicațiile Windows .NET pe GNU / Linux. Acest grup de componente include, printre altele, ADO.NET , ASP.NET și Windows.Forms . Deoarece aceste componente nu sunt acoperite de standardele ECMA, ele rămân supuse preocupării brevetelor și licențelor deținute de Microsoft.

De Instrumentele reunesc instrumentele necesare pentru dezvoltarea aplicațiilor .NET pe alte platforme decât Windows. Aceasta include IDE MonoDevelop , precum și componentele sale, cum ar fi depanatorul său .

Următoarea diagramă rezumă situația proiectului în ceea ce privește .NET Framework, precum și separările dintre diferitele componente și disponibilitatea acestora pe principalele sisteme de operare  :

Structura proiectului Mono și comparație cu Microsoft .NET

Licență

Mono este distribuit sub o licență dublă de la Novell , la fel ca alte produse, cum ar fi suita Mozilla . Compilatorul și instrumentele C # ale Mono sunt distribuite sub licența GNU GPL (numai v2; începând cu versiunea Mono 2.0, codul sursă pentru compilatorul C # va fi, de asemenea, disponibil sub licența MIT X11 ). Bibliotecile Runtime sunt eliberate sub licența GNU LGPL (numai v2), iar bibliotecile de clase sunt eliberate sub licența MIT . Toate aceste licențe sunt gratuite și open-source, făcând proiectul Mono un proiect gratuit și open-source.

Brevete Mono și Microsoft

Portarea către Mono a componentelor .NET care nu au fost transmise către ECMA pentru standardizare a fost, de la început, o sursă de îngrijorare cu privire la încălcarea brevetelor de software. În special, s-au discutat despre posibilitatea ca Microsoft să distrugă Project Mono prin procese de încălcare a brevetelor.

Tehnologiile care stau la baza Mono, transmise către ECMA, nu sunt problematice. Aceasta include, de asemenea, stratul de compatibilitate Mono / Linux / GNOME, care nu utilizează tehnologii care pot fi acoperite de brevete de la Microsoft. Deci C # , bibliotecile și alte straturi software ale proiectului GNU nu sunt afectate de aceste preocupări.

Cu toate acestea, este diferit pentru stratul de compatibilitate Microsoft, care se referă la tehnologiile care alcătuiesc .NET cadru . Acestea includ, printre altele, ASP.NET, ADO.NET, stratul de comunicare al cadrului .NET 3.0 (Windows Communication Foundation) și Windows.Forms. Aceste tehnologii nu sunt încă pe deplin implementate în Mono; Richard Stallman a spus că poate fi „periculos” să folosești Mono din cauza posibilității încălcării brevetelor Microsoft. Cu toate acestea, utilizarea componentelor potențial problematice nu este necesară pentru programarea aplicațiilor Mono.

Acord între Novell și Microsoft

Microsoft și Novell au anunțat 2 noiembrie 2006semnarea unui acord prin care Microsoft este de acord să nu dea în judecată Novell sau clienții acestora pentru încălcarea brevetelor de software. Potrivit lui Miguel de Icaza, șeful de dezvoltare al Mono, proiectul Mono este afectat de acest acord, dar numai pentru dezvoltatorii Novell și clienții acestora. Acest lucru a fost criticat de mulți în mișcarea software-ului liber, deoarece încalcă principiile drepturilor egale între toți utilizatorii unui anumit program definit pentru software-ul liber.

Proiecte folosind Mono

Note și referințe

  1. „  https://github.com/mono/mono/releases/tag/mono-6.12.0.90  ” (Accesat la 6 noiembrie 2020 )
  2. (în) Compilator Mono C # sub licență MIT X11 , Novell Inc., 8 aprilie 2008.
  3. (în) Stallman, Richard, Transcrierea lui Richard Stallman despre mișcarea software-ului liber , Free Software Foundation , 9 martie 2006
  4. (în) Microsoft și Novell anunță o colaborare extinsă pentru interoperabilitate și asistență Windows și Linux SUSE , Novell Inc., 2 noiembrie 2006
  5. (în) Declarație pe blogul liderului proiectului Mono, Miguel de Icaza, privind protecția brevetului pentru Mono , 4 noiembrie 2006
  6. (în) Definiția software-ului liber
  7. (în) „Colaborare Microsoft și Novell, urmați” , explicații despre Miguel de Icaza .
  8. (în) Articol de David Sugar (Free Software Magazine): "De la libertate la sclavie; o săptămână de două distrosuri" .

Vezi și tu

Articole similare

linkuri externe