> MENU
ipv6_logo.gif

IPv6, una breve overview (1/4)

ist2_348840_cd_dvd.jpg

La nostra Ubuntu personalizzata con Remastersys

14 dicembre 2007 Visualizzazioni: 28 Focus

Corso su Mono: Hello World

Ogni corso di programmazione che si rispetti inizia con il classico “Hello World”. Anche noi, allora, ci accingiamo a non turbare questa tradizione tramandata da programmatore in programmatore.


Come anticipato nella lezione introduttiva del corso, diamo per scontato che Mono sia installato sul sistema, non verrà utilizzato un IDE (Integrated Development Environment) per i primi esempi in modo da non perdere dettagli che possono essere essenziali per comprendere appieno la filosofia del sistema. Prima di iniziare verifichiamo che l’ambiente sia correttamente installato.

devlab:~# mono --version
Mono JIT compiler version 1.2.2.1, (C) 2002-2006 Novell, Inc and Contributors. www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Disabled: none

Il comando mono rappresenta il runtime dell’ambiente, con il parametro -version ci vengono fornite le classiche indicazioni relative alla versione e altre relative alle componenti del sistema. In particolare TLS indica il sistema incaricato della gestione dello storage dei thread (Thread Local Storage), GC fornisce indicazioni sul tipo di Garbage Collector usato e SIGSEGV indica il metodo di gestione dell’omonimo segnale che si scatena nei sistemi Unix a fronte di problemi di accesso a locazioni di memoria non valide.

Delle informazioni fornite le due più interessanti sono la versione, nel nostro caso 1.2.2.1, e il tipo di Garbage Collector utilizzato. Il Boehm è un sistema relativamente semplice e dalle performance non eccezionali ma il fatto che sia modulare permette a Mono di essere aperto verso forme più efficienti.

Verificata la presenza del runtime di Mono occorre verificare che sia presente il compilatore C#, senza questo infatti non saremmo in grado di compilare il programmi da noi realizzati.

devlab:~# mcs --version
Mono C# compiler version 1.2.2.1

Come nel caso del runtime, il parametro -version fornisce indicazioni relative alla versione del compilatore presente sulla Linux Box che stiamo utilizzando. Compilatore e runtime non sono gli unici due elementi di Mono necessari per avere un sistema funzionante ma diamo per scontato che verificata la presenza di questi, le altre dipendenze siano di conseguenza soddisfatte.

Siamo pronti quindi per scrivere, compilare ed eseguire il nostro primo micro programma. Utilizzando l’editor preferito creeremo un file chiamato hello.cs contentente il seguente codice:

using Systemnamespace TuxJournal
{
   class App
   {
      public static void Main()
      {
         System.Console.WriteLine("Hello World!");
      }
   }
}

Salvato il file di cui sopra dalla riga di comando scriveremo:

devlab:~# mcs hello.cs

Se non sono stati commessi errori di digitazione non verrà fornito alcun output e nella stessa directory dove era presente il file hello.cs troveremo un file hello.exe (l’estensione è quella tipica dei progammi di Windows). Il file con estensione exe è il risultato dei nostri sforzi. Eseguendo a questo punto:

devlab:~# mono hello.exe
Hello World!

otterremo il risultato atteso.

Nella prossima lezione analizzeremo riga per riga il nostro primo programma iniziando a comprendere “l’anatomia” di un’applicazione Mono.

LEZIONI PRECEDENTI:
10 Dicembre 2007: Introduzione

di Fabrizio Guglielmino - TuxJournal.net

twittergoogle_pluslinkedinmail
  • Yama

    Manca un invio :

    using System(INVIO)namespace TuxJournal

  • Fabrizio Guglielmino

    Si, in realtà ho utilizzato il tag per tentare di formattare il codice in modo “decoroso” ma nel tentativo ho “magiato” qualche carattere e introdotto degli interlinea di troppo….
    sorry…

  • Yama

    e prima dell’invio il ;

  • http://www.laas02.org LAAS

    Salve,
    premetto che sono un aperto sostenitore di Mono, ma a mio avviso un corso di questo tipo è, impostato così, pressochè inutile. Cos’è Mono ? Mono è l’implementazione “free” del framework .NET; se voglio sapere come funziona il .NET ci sono in giro migliaia di tutorial (in tutte le lingue) ed i migliori li trovo nell’orbita di mamma Microsoft.
    A mio avviso un corso su Mono (e sottolineo “su Mono”) deve dare per scontato almeno tre cose: la conoscenza del paradigma della programmazione ad oggetti, la conoscenza di un linguaggio di programmazione tra C/C++/Java (preferibilmente quest’ultimo) e la struttura del framework .NET. Un corso su Mono dovrebbe essere oriantato da subito a come sfruttare le [tante] potenzialità del framework su Linux, e quindi si dovrebbe parlare dell’integrazione con Gtk e di tutte quelle cose che differenziano Mono da .NET.
    Non voglio certo criticare l’autore (anche se non è bello fare due errori nel primo listato, specie se si tratta di “Hello world”) ma quando ho visto il titolo dell’articolo su ZioBudda speravo di trovare qualcosa in più.
    A mio avviso sarebbe meglio rinominare la serie di articoli in “Corso base di C# su Linux”.

    Alla prossima,
    Ciao

  • mk8

    Salve,

    sono molto contento di questa iniziativa anche perche’ l’ambiente Mono trova molte resistenze proprio nell’alveo degli utilizzatori e sviluppatori per Linux.
    Nonostante questa premessa concordo con Laas, forse è piò opportuno chiamarlo “Corso base C# su Linux”.

    Al prossimo tutorial,
    Ciao.

  • / gian

    @ LAAS:
    “[…] se voglio sapere come funziona il .NET ci sono in giro migliaia di tutorial (in tutte le lingue) ed i migliori li trovo nell’orbita di mamma Microsoft […]”.
    Saprai sicuramente che per scrivere delle buone lezioni su di un determinato linguaggio, non si può prescindere da un’introduzione.

    “[…] A mio avviso un corso su Mono (e sottolineo “su Mono”) deve dare per scontato almeno tre cose: la conoscenza del paradigma della programmazione ad oggetti, la conoscenza di un linguaggio di programmazione tra C/C++/Java (preferibilmente quest’ultimo) e la struttura del framework .NET. […]”
    Considera che le lezioni devono essere accessibili a tutti - e sottolineo “tutti” e non “per chi ne capisce” -, altrimenti diventa un corso per pochi e non per chiunque.
    Sta poi all’utente andare ad approfondire il discorse se è interessato.
    L’obiettivo di queste lezioni servono ad avvicinare l’utente a questo framework e spiegarne la sintassi.

    “[…] Un corso su Mono dovrebbe essere oriantato da subito a come sfruttare […]”
    Mi pare presto per giudicare l’operato di una guida che è alla sua prima lezione.
    Rischi di rendere sterile e fine a sè stessa la tua critica.
    Non credi?

  • http://www.laas02.org LAAS

    Cari tutti,
    non volevo certo esprimere un giudizio negativo sull’iniziativa. Anzi. L’importante è che si parli di Mono.
    La mia osservazione era legata al fatto che chiamare questa serie di articoli “Corso su Mono” mi sembra un po’ eccessivo. Mi sembra di trovarmi di fronte a quelle riviste per Linux (che si spacciano di riviste da PROfessionisti) che in copertina scrivono “Diventa amministratore Linux” e poi nell’articolo parlano di “adduser”, di “strong” password ed altre cose che più o meno tutti conoscono; oppure altri articoli in cui il titolo è “Realizza DVD con Linux” e poi metà dell’articolo serve a descrivere le procedure di installazione dei software “Se avete rpm, fate così… se deb….se da sorgenti configure/manke/make install”…… e basta !!!!
    Iniziamo a dare per scontato che gli utenti Linux non siano dei deficienti.

    Ok, forse sto uscendo dal seminato criticando le riviste su Linux. Ma ripeto: il Web è strapieno di corsi su C#, .NET e così via.

    Ok, forse devo aspettare ancora qualche lezione per vedere qualcosa su Mono.

    Mah!

    Buona Domenica

  • davide

    ciao, a quando la prossima lezione? :-)