Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Mono: programmare in C# su Linux

Sebbene si tratti di tecnologie definite da Microsoft, C# ed il framework .NET sono in realtà indipendenti dal sistema operativo. Ecco come utilizzarle su Linux tramite Mono, implementazione open source e cross platform di .NET.
Sebbene si tratti di tecnologie definite da Microsoft, C# ed il framework .NET sono in realtà indipendenti dal sistema operativo. Ecco come utilizzarle su Linux tramite Mono, implementazione open source e cross platform di .NET.
Link copiato negli appunti

È probabile che molti sviluppatori .NET, con esperienza nello sviluppo di tool e tecnologie tipiche di Microsoft, rimarrano stupiti nello scoprire che il framework .NET è indipendente dalla piattaforma. Ciò significa che ogni applicazione .NET può essere compilata ed eseguita non soltanto sul sistema operativo Microsoft Windows, ma anche in qualsiasi altro sistema che utilizzi un'opportuna implementazione di .NET. Esistono diverse soluzioni di questo tipo; una di esse è Mono, che gode anche della caratteristica di essere open source.

Come il sito ufficiale sottolinea, "Mono è una piattaforma software progettata per consentire agli sviluppatori di creare facilmente applicazioni cross-platform". La natura open source di questo framework, infatti, ci consente di utilizzarlo anche su altri sistemi operativi, tra i quali c'è anche Linux.

In questo articolo vedremo proprio come utilizzare Mono ed i relativi tool di sviluppo per riuscire a programmare applicazioni di varia natura anche sul sistema operativo del pinguino.

Mono: meglio o peggio di Microsoft .NET?

Prima di utilizzare un framework alternativo a .NET, e non garantito da un colosso come Microsoft, è bene chiedersi se esso rappresenti effettivamente una scelta conveniente o meno. Nello sviluppo di un software di alto livello, infatti, è importante che le basi dell'applicazione e gli strumenti di sviluppo siano solidi e duraturi. Di conseguenza, bisogna chiedersi: quanto durerà Mono? Può continuare ad essere un'alternativa a Microsoft, oppure quest'ultima può opporre resistenza alla sua crescita, ed avvalersi di brevetti e licenze per annichilire l'intero progetto open source?

Le risposte a queste domande si trovano sulle F.A.Q. del sito ufficiale di Mono, ma possiamo riassumerle dicendo che Mono è un'implementazione legale di .NET, che non viola cioè alcun termine di licenza. Tutto ciò che è brevettato da Microsoft può essere invece sostituito da librerie alternative, consentendo l'utilizzo di C# anche fuori da contesti legati a software proprietari. Il fatto che applicazioni com Banshee, F-Spot o Tomboy (molto diffuse sui principali sistemi desktop Linux) sfruttino Mono è indice di come le sue potenzialità possano essere sfruttate senza temere imprevisti.

A questo punto non resta che capire come installare Mono su Linux, ed imparare ad usufruire delle sue potenzialità.

Installare Mono su Linux

Mono è disponibile per diverse distribuzioni Linux, ma il processo di installazione varia leggermente in base alla distribuzione che vogliamo utilizzare. Indipendentemente da essa, però, la prima cosa da fare è scaricare la chiave GPG necessaria per l'accesso ai repository di Mono da parte del package manager che utilizziamo. Possiamo scaricarla a questo link, e utilizzarla opportunamente come spiegato di seguito.

Installazione su Debian, Ubuntu e derivate

Per prima cosa, aggiungiamo la chiave GPG tramite apt. Per farlo, digitiamo da terminale (con i permessi di root) il comando seguente:

[code]apt-key add /path/di/salvataggio/della/chiave/xamarin.gpg[/code]

Adesso dobbiamo aggiungere i repository che contengono i pacchetti di Mono, apportando qualche semplice modifica al file /etc/apt/sources.list. Su Debian e Ubuntu utilizziamo il comando seguente:

[code]echo "deb http://download.mono-project.com/repo/debian wheezy main" > /etc/apt/sources.list.d/mono-xamarin.list[/code]

A questo punto, se utilizziamo le versioni di Ubuntu 12.04 o 12.10, aggiungiamo un ulteriore repository con quest'altro comando:

[code]echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" >> /etc/apt/sources.list.d/mono-xamarin.list[/code]

Se, invece, la versione di Ubuntu è la 13.10 o seguente, oppure utilizziamo Debian 8.0 o una versione successiva a quest'ultima, il comando da eseguire è:

[code]echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" >> /etc/apt/sources.list.d/mono-xamarin.list[/code]

Dopo avere aggiunto i riferimenti ai repository necessari, non resta che aggiornare apt ed installare Mono:

[code]sudo apt-get update
sudo apt-get install mono-complete[/code]

Installazione su CentOS, Fedora, e derivate

Anche in questo caso, la prima cosa da fare è aggiungere la chiave GPG, necessaria al package manager per l'ottenimento dei pacchetti. In questo caso, il comando da eseguire è il seguente:

[code]rpm --import xamarin.gpg[/code]

Quindi, aggiungiamo il repository ed aggiorniamo la cache dei package come segue:

[code]yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
yum makecache[/code]

A questo punto, non resta che installare Mono:

[code]yum install mono-complete[/code]

Su CentOS e RHEL può essere altresì necessario aggiungere i repository EPEL. Rimandiamo la soluzione di questo problema ad un'apposita guida.

Per ogni necessità legata ad altre distribuzioni Linux, la pagina di download del sito ufficiale di Mono è un ottimo riferimento.

Compilare un progetto C# con Mono

Una volta completata l'installazione del framework vero e proprio, abbiamo a disposizione tutti gli strumenti per compilare il nostro progetto C# anche su Linux. Abbiamo infatti installato, tra le altre cose, anche un compilatore che possiamo utilizzare come descritto di seguito. Iniziamo, ad esempio, col creare un file che chiameremo HelloMono.cs. Il suo contenuto sarà il seguente:

using System;
namespace printHello
{
class printHello
{
public static void Main (string[] args)
{
Console.WriteLine ("Hello this is csharp");
}
}
}

Salviamo questo file su una directory di comodo, e compiliamolo con il comando gcms, che corrisponde esattamente al compilatore C# installato con Mono:

[code]gcms HelloMono.cs[/code]

Il prodotto di questo comando sarà un file con estensione .exe e con lo stesso nome del sorgente originario, che potremo eseguire con il comando:

[code]mono HelloMono.exe[/code]

producendo l'output che ci aspettiamo:

[code]Hello this is csharp[/code]

Come si vede, il processo di compilazione di un file C# non è molto differente da quello relativo a C o Java. Tuttavia, per progetto complessi, non possiamo accontentarci del compilatore a riga di comando. Se su Windows abbiamo la possibilità di sfruttare una IDE potente e completa come Visual Studio, su Linux una delle migliori alternative per sviluppare in C# con Mono è MonoDevelop.

MonoDevelop: installazione e panoramica

MonoDevelop è una IDE cross-platform progettata principalmente per C# e per gli altri linguaggi del framework .NET. Esso consente di scrivere applicazioni desktop e web con ASP.NET sotto i principali sistemi operativi (Linux, OSX e Windows), e facilita la possibilità di effettuare porting di software scritti su Visual Studio per Windows, anche su Linux e OSX. Inoltre, un progetto creato con MonoDevelop può essere aperto, modificato e ricompilato anche tramite Visual Studio, rendendolo uno strumento molto indicato per lo sviluppo cross-platform.

Per utilizzare al meglio Mono su Linux, quindi, non ci resta che installare MonoDevelop. Possiamo farlo scaricando i pacchetti di installazione direttamente dalla pagina di download del sito ufficiale, che contiene tutte le versioni di questo software, in funzione del sistema operativo o della distribuzione Linux sul quale esso dovrà essere installato. Il processo di installazione non richiede particolari commenti; è sufficiente installare i pacchetti (sempre che non siano già presenti sui repository ufficiali, il che semplifica ulteriormente il processo), ed avremo subito a disposizione questa indispensabile IDE.

L'interfaccia di MonoDevelop (fonte: monodevelop.com)

L'interfaccia di MonoDevelop

Utilizzare MonoDevelop, soprattutto per chi proviene da Visual Studio, è abbastanza semplice. Inoltre, la documentazione di questo software include moltissimi tutorial, semplici ed efficaci, che vanno dalla creazione di una soluzione generica fino all'utilizzo delle librerie GTK# (che consentono di creare interfacce grafiche con GTK ma utilizzando C#) o allo sviluppo di web application.

Il video seguente (in inglese) mostra proprio come iniziare ad utilizzare MonoDevelop su Linux.

Ti consigliamo anche