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. 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:
.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 oppure MSIL 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 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. |