Skip to content

1. Introduzione

Il codice PDF di questo documento è disponibile |QUI|.

Gli esempi di questo documento sono disponibili |QUI|.

C# è un linguaggio recente. È stato disponibile in successive versioni beta a partire dal 2000, prima di essere ufficialmente rilasciato nel febbraio 2002, contemporaneamente alla piattaforma .NET 1.0 di Microsoft a cui è legato. C# può funzionare solo con questo ambiente di esecuzione. Quest’ultimo mette a disposizione dei programmi che vi vengono eseguiti un insieme molto ampio di classi. In prima approssimazione, si può dire che la piattaforma .NET sia un ambiente di esecuzione analogo a una macchina virtuale Java. Si possono tuttavia notare due differenze:

  • Java viene eseguito su diversi sistemi operativi (Windows, Unix, Macintosh) sin dai suoi esordi. Nel 2002, la piattaforma .NET funzionava solo su macchine Windows. Da alcuni anni il progetto Mono [http://www.mono-project.com] consente di utilizzare la piattaforma .NET su sistemi come Unix e Linux. L’attuale versione di Mono (febbraio 2008) supporta .NET 1.1 e alcune funzionalità di .NET 2.0.
  • La piattaforma .NET consente l’esecuzione di programmi scritti in diversi linguaggi. È sufficiente che il compilatore di tali linguaggi sia in grado di generare codice IL (Intermediate Language), codice eseguito dalla macchina virtuale .NET. Tutte le classi di .NET sono disponibili per i linguaggi compatibili con .NET, il che tende ad appianare le differenze tra i linguaggi nella misura in cui i programmi utilizzano ampiamente tali classi. La scelta di un linguaggio .NET diventa una questione di gusto più che di prestazioni.

Nel 2002, C# utilizzava la piattaforma .NET 1.0. All’epoca, C# era in gran parte una «copia» di Java e .NET una libreria di classi molto simile a quella della piattaforma di sviluppo Java. Nell’ambito dell’apprendimento del linguaggio, si passava da un ambiente C# a uno Java senza sentirsi davvero spaesati. Esistevano persino strumenti per la conversione del codice sorgente da un linguaggio all’altro. Da allora, le cose sono cambiate. Ogni linguaggio e ogni piattaforma di sviluppo ha ormai le proprie specificità. Non è più così immediato trasferire le proprie competenze da un ambito all’altro.

C# 3.0 e il framework .NET 3.5 introducono molte novità. La più importante è probabilmente LINQ (Language INtegrated Query), che consente di eseguire query in modo uniforme, in modo simile a quello del linguaggio SQL, sequenze di oggetti provenienti da strutture in memoria quali array e liste, da database (SQL Server, al momento solo per febbraio 2008) o da file XML.

Questo documento non è un corso esaustivo. Ad esempio, LINQ non viene trattato. È destinato a persone che hanno già conoscenze di programmazione e che desiderano scoprire le basi di C#. Si tratta di una revisione del documento originale pubblicato nel 2002.

Diversi libri mi hanno aiutato a scrivere questo corso:

Per la versione 2002:

  • Professional C# programming, Edizioni Wrox
  • C# e .NET, Gérard Leblanc, Edizioni Eyrolles

All’epoca avevo trovato eccellenti questi due libri. Da allora Gérard Leblanc ha pubblicato delle versioni aggiornate, tra cui la seguente:

  • C# e .NET 2005, Gérard Leblanc, Edizioni Eyrolles

Per la revisione del 2008 ho utilizzato le seguenti fonti:

  • il documento originale del 2002. Questo documento, ottenuto copiando e incollando dal mio corso su Java, conteneva sia errori tipografici sia errori più gravi, come ad esempio affermare che i tipi primitivi come System.Int32 fossero classi, mentre in realtà sono strutture. Mea culpa...
  • la documentazione di Visual Studio Express 2008
  • il libro «C# 3.0 in a Nutshell» di Joseph e Ben Albahari, edito da O'Reilly, uno dei migliori libri di programmazione che mi sia mai capitato di leggere.

Serge Tahé, maggio 2008

Da maggio 2008, C# si è ovviamente evoluto. Questo documento rimane tuttavia sempre attuale per l’apprendimento di questo linguaggio. A completamento di questo corso, è disponibile una presentazione dell’ORM (Object Relational Mapper) Entity Framework nell’articolo «Introduzione a ORM Entity Framework 5 Code First» all’indirizzo URL [Introduzione al framework ASP.NET MVC attraverso esempi (2013)].

Serge Tahé, ottobre 2013