Il C# è un nuovo linguaggio di programmazione orientato agli oggetti e questa è la definizione ufficiale di Microsoft (da MSDN Library):

"C# (pronunciato "C sharp") è un linguaggio di programmazione semplice, moderno, orientato ad oggetti e type-safe, che risulterà immediatamente comprensibile ai programmatori di C++ e Java.
Il linguaggio C# combina l'elevata produttività dei linguaggi per lo sviluppo rapido di applicazioni (Rapid Application Development, RAD) con le potenzialità del linguaggio C++."

A parte qualche termine, la cui spiegazione è adesso prematura, aggiungerei che il C# è un linguaggio adatto anche ai principianti che si affacciano solo ora nel mondo della programmazione. E’ vero anche che chi ha già avuto esperienze con altri linguaggi, troverà facile comprendere i costrutti del C#.

Il C# è un linguaggio che non opera direttamente nell’ambiente standard in cui i programmi sono compilati in codice macchina, ma, come il Java, ha bisogno di un ambiente di esecuzione virtuale. Nel caso di Java, c’è bisogno della famosa Java Virtual Machine che consente ai programmi (che hanno estensione .class) di poter girare. Il C# ha invece bisogno dell’istallazione del cosiddetto

.NET FRAMEWORK

scaricabile dal sito della Microsoft.

Questa è la sua definizione tecnica:

.NET Framework è una nuova piattaforma per computer che semplifica lo sviluppo delle applicazioni nell'ambiente altamente distribuito di Internet. .NET Framework è progettata per ottenere gli obiettivi indicati di seguito:

  • Fornire un ambiente di programmazione orientato agli oggetti coerente, sia che il codice degli oggetti sia memorizzato ed eseguito localmente, eseguito localmente ma distribuito su Internet oppure eseguito in modalità remota.
  • Fornire un ambiente di esecuzione del codice che minimizzi la distribuzione del software e i conflitti di versioni.
  • Fornire un ambiente di esecuzione del codice che garantisca un'esecuzione sicura anche dei codici creati da produttori sconosciuti o semi-trusted.
  • Fornire un ambiente di esecuzione del codice che elimini i problemi di prestazioni degli ambienti basati su script o interpretati.
  • Rendere coerente l'esperienza dello sviluppatore attraverso tipi molto vari di applicazioni, quali applicazioni basate su Windows e applicazioni basate sul Web.
  • Generare tutte le comunicazioni in base agli standard industriali per assicurare che il codice basato su .NET Framework possa integrarsi con qualsiasi altro codice.

.NET Framework presenta due componenti principali: Common Language Runtime e la libreria di classi .NET Framework. Common Language Runtime rappresenta la base di .NET Framework e può essere considerato come un agente che gestisce il codice in fase di esecuzione, fornendo servizi di base quali gestione della memoria, gestione di thread e servizi remoti, attivando al contempo una rigida indipendenza dei tipi e altre forme di accuratezza del codice che assicurano protezione ed efficienza. Il concetto di gestione del codice è infatti un principio fondamentale di runtime. Il codice destinato al runtime è definito codice gestito, mentre quello non destinato al runtime è definito codice non gestito. La libreria di classi, l'altro componente principale di .NET Framework, è un insieme completo orientato agli oggetti di tipi riutilizzabili che possono essere impiegati nello sviluppo delle applicazioni, da quelle tradizionali della riga di comando o con interfaccia utente grafica (GUI, Graphical User Interface) a quelle basate sulle più recenti innovazioni fornite da ASP.NET, quali Web Form e servizi Web XLM.

Di questa definizione apprezzeremo meglio il significato quando parleremo di argomenti che sono alla base del linguaggio. Per ora potete anche non dargli peso.

I programmi C# compilati hanno estensione .exe che però non sottintende un programma eseguibile come siamo stati abituati ma esso rappresenta il risultato di una codifica in un linguaggio intermedio

IL
Intermediate Language

oppure

MSIL
MicroSoft Intermediate Language

Esso non è codice macchina (del processore in dotazione) ma una serie di particolari istruzioni descrittive che consentono la traduzione esatta in codice eseguibile da parte del framework.

Quando si lancia un programma C#, entra in gioco il cosi detto

CLR
COMMON LANGUAGE RUNTIME

esso è l’ambiente virtuale in cui vengono eseguiti i linguaggi appartenenti al .NET (VB.NET, C++.NET, J#.NET e C#.NET).

Definizione:

Il Common Language Runtime rappresenta un motore di esecuzione ad elevate prestazioni. il codice cui il runtime si riferisce e la cui esecuzione è gestita da esso viene detto codice gestito (managed code). La responsabilità per attività quali la creazione di oggetti, l’esecuzione di chiamate a metodi e così via, è demandata al Common Language Runtime che consente di fornire servizi aggiuntivi al codice in esecuzione.

Pagina successiva