Mono (progetto)

Da Wikipedia, l'enciclopedia libera.
Mono
Autore Xamarin
Data di origine 17 novembre 2015
Ultima versione 5.0.0
Utilizzo linguaggio general-purpose
Paradigmi programmazione a oggetti
Tipizzazione forte
Estensioni comuni .exe
Influenzato da .NET
Implementazione di riferimento
Implementazione linguaggio interpretato
Sistema operativo multipiattaforma
Licenza GNU GPL v2, GNU Lesser General Public License e X11 license
Sito web e

Mono è un progetto open source coordinato da .NET Foundation[1] (precedentemente da Xamarin, Novell e in origine da Ximian) per creare un insieme di strumenti compatibili con il Framework .NET, secondo gli standard ECMA (Ecma-334 e Ecma-335).

I più importanti di questi strumenti sono il compilatore C# e il Common Language Runtime.
Mono è compatibile con i seguenti sistemi operativi[2]:

Mentre Microsoft ha reso disponibile una versione di .NET per FreeBSD chiamata la Shared source CLI, la licenza di Microsoft non è di software libero e può essere insufficiente per i bisogni degli utenti (in particolare, proibisce esplicitamente l'utilizzo commerciale). Per questo ed anche per limitare la diffusione di C# e le relative librerie Mono nell'ambiente Linux è stato creato il linguaggio Vala.

La macchina virtuale di Mono contiene un motore JIT per vari processori: x86, SPARC, PowerPC, ARM, s390 (in modalità a 32 bit) e x86-64 e SPARC a 64 bit. La VM può eseguire una compilazione just-in-time o può pre-compilare il codice in codice nativo. Per altre architetture hardware esiste solo un interprete.

Un progetto simile è DotGNU Portable.NET.

Storia[modifica | modifica wikitesto]

Nel 2000 la società Ximian, fondata e diretta da Miguel de Icaza, specializzata in software open source, aveva intenzione di costruire strumenti di sviluppo software che accrescessero la produttività di sviluppo del software multipiattaforma. Appena la Microsoft presentò il Framework .NET, la Ximian se ne interessò, e il 19 luglio 2001 annunciò il progetto open source Mono alla conferenza O'Reilly.

Quasi tre anni dopo, il 30 giugno 2004 fu rilasciata la versione 1.0.

Al LinuxWorld 2006, a Boston, Mono ha vinto il premio come miglior piattaforma di sviluppo.

Mono e i brevetti della Microsoft[modifica | modifica wikitesto]

Conseguentemente alla nascita del progetto Mono ebbero luogo molte discussioni riguardo al fatto che Microsoft potesse comprometterne il proseguimento tramite brevetti. Il team Mono riconobbe questo rischio e mise in atto strategie al fine di evitarlo, come si legge dalle loro FAQ:

"Il Framework .NET si divide in due parti: le tecnologie coperte dall'ECMA/ISO e le altre tecnologie sviluppate sopra di esse come ADO.NET, ASP.NET e Windows.Forms. Mono implementa le parti ECMA/ISO, essendo questo un progetto che permette l'implementazione di blocchi a livelli più alti come ASP.NET, ADO.NET e Windows.Forms"
Gli elementi controversi sono i sottoinsiemi ADO.NET, ASP.NET e Windows.Forms. Questi sono convenienti per quanti necessitano piena compatibilità con la piattaforma Windows, ma non sono richiesti per la piattaforma open source Mono, così come l'integrazione con l'attuale ottimo supporto per Linux. La strategia di Mono riguardo a queste tecnologie è la seguente: (1) aggirare i brevetti usando tecniche di implementazione differente che mantengono la API, ma cambiano i meccanismi. Se ciò non è possibile, vorremmo (2) rimuovere le parti di codice coperte da brevetti, oltre che (3) trovare dei precedenti che possano rendere inutilizzabili i brevetti stessi"[3]

Microsoft comunque annunciò che non avrebbe perseguitato legalmente le implementazioni open source del .NET Framework, tra le quali appunto Mono[4]. Le intenzioni di Microsoft hanno successivamente trovato riscontro nel fatto che la stessa è diventata sponsor del progetto Mono[5].

Progetti correlati[modifica | modifica wikitesto]

Numerosi progetti sono stati creati per permettere agli sviluppatori di utilizzare Mono nel proprio ambiente di sviluppo:

  • Gtk# sono binding per utilizzare il framework Mono all'interno delle librerie GTK+.
  • gecko# sono binding per inserire nelle applicazione il layout engine usato in Mozilla (Gecko).
  • Tao, una collezione di binding per la grafica ed i giochi

Software sviluppato con Mono[modifica | modifica wikitesto]

I seguenti programmi utilizzano le API Mono e C#:

Versioni[modifica | modifica wikitesto]

Di seguito sono indicate la prima e l'ultima versione stabile per ogni release che si sono succedute nel corso del tempo[6]:

Versione Data rilascio
Mono 5.X
5.0.1 23 maggio 2017
5.0.0 10 maggio 2017
Mono 4.X
4.8.1 11 aprile 2017
4.0.0 29 aprile 2015
Mono 3.X
3.12.1 7 marzo 2015
3.0.0 19 ottobre 2012
Mono 2.X
2.10.9 7 febbraio 2012
2.0.0 1 ottobre 2008
Mono 1.X
1.9.1 15 aprile 2008
1.0.0 30 giugno 2004

Note[modifica | modifica wikitesto]

  1. ^ (EN) .NET Foundation MONO, dotnetfoundation.org. URL consultato il 18 giugno 2017.
  2. ^ (EN) MONO Supported platforms, mono-project.com. URL consultato il 18 giugno 2017.
  3. ^ FAQ http://www.mono-project.com/FAQ:_Licensing#Patents FAQ.
  4. ^ PI: Microsoft non farà guerra a Linux
  5. ^ (EN) Mono Project - Home
  6. ^ (EN) MONO Release, mono-project.com. URL consultato il 18 giugno 2017.

Voci correlate[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]