Nel tempo, Il mondo dell’informatica ha visto una crescente attenzione verso le soluzioni open e anche i linguaggi e gli ambienti di programmazione non si sono sottratti a questa tendenza. Tutti coloro che seguono le vicissitudini legate al mondo di Linux, e più in generale all’Open Source, sanno cosa si nasconde dietro nomi come Perl, PHP, Python, Ruby che nel tempo si sono affiancati con pari dignità a nomi più blasonati quali C, C++ o Java.
Spesso i linguaggi di questo tipo nascono dall’impegno e la buona volontà di membri del vasto mondo open source ma in certi casi non è così. Mono è un progetto nato nel 2001, ma il primo rilascio stabile risale al 2004, che ha come scopo quello di creare una piattaforma open basata sul Framework .Net di Microsoft, ovvero un insieme di tecnologie e linguaggi destinati a coprire la gran parte delle moderne esigenze di sviluppo software. La bella notizia è che tutto questo insieme di tecnologie è stato rilasciato con standard aperti, condizione fondamentale per l’esistenza stessa di Mono.
Con il nome di Microsoft .Net Framework si identificano tre entità distinte:
- Un ambiente di esecuzione definito CLR (Common Language Runtime)
- Una libreria di classi
- I compilatori per i principali linguaggi supportati dall’ambiente
Volendo essere molto sintetici possiamo pensare al CLR come un equivalente della JVM di Java, anche in questo caso si tratta di un’astrazione (o macchina virtuale) in grado di interpretare un suo linguaggio nativo definito IL (Intermediate Language). La libreria di classi .Net è un’insieme assai vasto progettato per gestire le più disparate esigenze dello sviluppatore, si va da classi per la gestione dei tipi (String, Int, etc.) fino ad elementi molto complessi per interagire ad esempio con le comunicazioni di rete. Infine ci sono i compilatori; in particolare ci soffermeremo su C#, linguaggio principe dell’ambiente .Net.
Viste a grandi linee quelle che sono le componenti del Framework .Net, e di conseguenza di Mono, il passo successivo consiste nell’avvicinarsi al linguaggio C# per poter sviluppare applicazioni che potranno essere eseguite indifferentemente su Linux, Windows, FreeBSD o Mac OS X senza necessità di essere ricompilate.
Non ci soffermeremo sulle fasi necessarie ad installare Mono su Linux perché nella maggioranza dei casi sono disponibili i pacchetti pronti in funzione della distribuzione che si utilizza e l’operazione diventa estremamente semplice. Le varie lezioni del corso si svilupperanno in modo da fornire una panoramica con un approccio “bottom-up”, ovvero partendo dalle operazioni basilari sul linguaggio fino a costruire semplici applicazioni che sfruttino alcune delle peculiarità dell’ambiente.
Che dire, continuate a seguirci!
di Fabrizio Guglielmino - TuxJournal.net