Skip to content

1. Introduzione

Il PDF di questo documento è disponibile in inglese |QUI|.

Gli esempi contenuti in questo documento sono disponibili |QUI|.

C# è un linguaggio recente. È stato disponibile in successive versioni beta dal 2000, prima di essere rilasciato ufficialmente nel febbraio 2002 contemporaneamente alla piattaforma .NET 1.0 di Microsoft, alla quale è collegato. C# può funzionare solo in questo ambiente di esecuzione. Fornisce ai programmi che vi girano una vasta gamma di classi. Come prima approssimazione, si può dire che la piattaforma .NET sia un ambiente di esecuzione analogo a una macchina virtuale Java. Tuttavia, ci sono due differenze:

  • Java è in esecuzione su vari sistemi operativi (Windows, Unix, Macintosh) sin dal suo inizio. Nel 2002, la piattaforma .NET funzionava solo su macchine Windows. Negli ultimi anni, il progetto Mono [http://www.mono-project.com] ha reso possibile l'esecuzione della piattaforma .NET su macchine con sistemi operativi come Unix e Linux. L'attuale versione di Mono (febbraio 2008) supporta .NET 1.1 ed elementi di .NET 2.0.
  • La piattaforma .NET può eseguire programmi scritti in diversi linguaggi. Tutto ciò che serve è che il compilatore sia in grado di produrre codice IL (Intermediate Language), che viene poi eseguito dalla macchina virtuale .NET. Tutte le classi .NET sono disponibili per i linguaggi .NET compatibili, il che tende a cancellare le differenze tra i linguaggi, poiché i programmi fanno ampio uso di queste classi. La scelta di un linguaggio .NET diventa una questione di gusto piuttosto 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. Quando si imparava il linguaggio, era possibile passare da un ambiente C# a un ambiente Java senza sentirsi fuori posto. Esistevano persino strumenti per convertire il codice sorgente da un linguaggio all'altro. Da allora, le cose si sono evolute. Ogni linguaggio e piattaforma di sviluppo ha ora le proprie specificità. Non è più così facile trasferire le competenze da un ambito all'altro.

C# 3.0 e il framework .NET 3.5 introducono molte nuove funzionalità. Probabilmente la più importante è LINQ (Language INtegrated Query), che consente di interrogare sequenze di oggetti in modo uniforme, in modo simile al linguaggio SQL, da strutture in memoria come array e liste, database (per ora solo SQL Server - febbraio 2008) o file XML.

Questo documento non è un corso esaustivo. Ad esempio, LINQ non è trattato. È destinato a persone che conoscono già la programmazione e vogliono 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 del 2002:

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

All'epoca, pensavo che entrambi i libri fossero eccellenti. Da allora Gérard Leblanc ha pubblicato versioni aggiornate, tra cui le seguenti:

  • 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, un copia/incolla del mio corso su Java, conteneva sia errori tipografici che errori più gravi, come ad esempio affermare che i tipi primitivi come System.Int32 fossero classi, mentre si tratta di strutture. Mea culpa...
  • la documentazione MSDN di Visual Studio Express 2008
  • il libro C# 3.0 in a Nutshell di Joseph e Ben Albahari, pubblicato da O'Reilly, uno dei migliori libri di programmazione che abbia mai letto.

I codici sorgente degli esempi presenti in questo documento sono disponibili all'indirizzo [http://tahe.developpez.com/dotnet/csharp/].

Serge Tahé, maggio 2008

Dal maggio 2008, C# si è ovviamente evoluto. Tuttavia, questo documento è ancora utile per l'apprendimento di questo linguaggio. Oltre a questo corso, troverete una presentazione dell'ORM (Object Relational Mapper) Entity Framework nell'articolo "Introduzione all'ORM Entity Framework 5 Code First" all'URL [https://stahe.github.io/it-ef5cf-oct-2012/].

Serge Tahé, ottobre 2013