Libro "VB 2010 spiegato a mia nonna" (27)

Architettura del Framework .NET

L’architettura del Framework .NET è stratificata, cioè è organizzata in più livelli.

Questo tipo di architettura è abbastanza comune nell’informatica: ricordiamo, per esempio, nell’ambito delle reti il modello ISO/OSI strutturato in sette livelli, oppure nel classico modello client/server a tre o più livelli, dove le varie componenti del sistema sono indipendenti ma interconnesse tra loro (livello di logica applicativa, livello dati e livello presentazione) o, ancora, l’architettura di un sistema operativo.

Nota – Immaginiamo questi vari livelli come gli strati di una torta: perché il livello più alto (le candeline) faccia la sua funzione è necessario che ci sia uno strato superficiale della torta (per esempio, la crema), in grado di sorreggerle. Sotto a questo strato si scende di livello in livello fino alla base della torta.

Infine c’è lo strato hardware (un disco di cartone rigido o un vassoio) che sorregge il tutto.

A ogni livello corrisponde una specializzazione ben precisa nel sistema complessivo, che ha anche il compito di interfacciare il livello soprastante con quello sottostante.

In questo senso, un livello qualsiasi può essere considerato client del livello immediatamente inferiore, che fornisce un servizio e che quindi può essere valutato server.

Specularmente, possiamo stimare come “server” un livello, rispetto alla richiesta di servizio proveniente dal livello immediatamente superiore. La Figura 2.2 è una rappresentazione molto semplificata di un sistema operativo.

image

Figura 2.2 – Rappresentazione semplificata
dell’architettura di un sistema operativo.

 

Con una rappresentazione diversa, ma concettualmente non molto dissimile dall’esempio precedente, possiamo vedere nella Figura 2.3 l’architettura del Framework .NET (fonte: MSDN, all’indirizzo

http://bit.ly/9Gr8PY).

image

Figura 2.3 – Architettura del Framework .NET.

Nello strato più interno o, precisamente, nel nucleo del sistema, quindi più a basso livello nell’architettura complessiva, troviamo il sistema operativo (a sua volta stratificato e con un suo nucleo detto kernel) e l’hardware.

Sopra il nucleo si trova uno strato che fornisce:

  • i servizi di IIS (Internet Information Services);
  • le applicazioni non gestite, cioè “unmanaged”: tutte le applicazioni non basate sul Framework .NET;
  • il livello di Runtime, cioè una delle due componenti principali del Framework .NET: il CLR (Common Language Runtime), sul quale ci soffermeremo in seguito.

Brevemente, il CLR è una componente che si occupa di molte funzionalità di base. Tra le più importanti: il multithreading, la gestione della memoria e quindi il Garbage Collector, responsabile dell’eliminazione dalla memoria degli oggetti non più utilizzati. Il CLR è presente anche sul lato web, cioè come livello superiore al livello in cui sono presenti i servizi IIS.

Un’altra rappresentazione interessante dei vari livelli è quella della Figura 2.4 (fonte: MSDN, all’indirizzo

http://bit.ly/dxizbO) che si riferisce al Micro Framework .NET, specifico per i dispositivi mobili.

image

Figura 2.4 – Architettura del Micro Framework .NET.

L’architettura del Micro Framework .NET non è troppo dissimile dal fratello maggiore, poiché anche qui si notano chiaramente delle parti comuni, come il CLR e la tecnologia WPF (Windows Presentation Foundation) introdotta per la prima volta con il Framework .NET 3.0 e pienamente supportata da Visual Basic 2010 e da Visual Studio 2010. Inoltre, anche in questo caso ci troviamo di fronte, come del resto ci aspettavamo, a un’architettura a strati.

Naturalmente il Framework .NET non è in grado di gestire direttamente il sistema operativo così come non è in grado di interfacciarsi direttamente con l’hardware. Per manipolare il sistema a un livello più basso, infatti, dovremmo utilizzare il linguaggio C++ in modalità unmanaged, cioè in modo nativo, senza il supporto del Framework .NET. Il Framework .NET è però in grado di eseguire chiamate ai servizi del sistema operativo quali, per esempio: servizi di sincronizzazione, gestione di code di messaggi, transazioni, sicurezza e molto altro.

Con l’uscita dei sistemi operativi Windows Vista e, ancora di più, con Windows 7, possiamo constatare come il Framework .NET sia molto più integrato con il sistema operativo, rispetto al passato. Questa tendenza ci indica che in futuro potremo assistere a una maggiore integrazione del Framework .NET con i servizi di sistema, forse anche per la gestione diretta dell’hardware. Si otterranno una migliore gestione delle risorse e quindi un netto miglioramento delle prestazioni, oltre a una gestione della sicurezza, ancora più efficace.

Al livello superiore, rispetto al livello di Runtime, troviamo la Base Class Library (BCL). Brevemente, possiamo definire la Base Class Library come l’altra parte fondamentale del Framework .NET che definisce tutti i tipi di dato, le matrici, le collezioni, la classe base System.Object e tutte le altre classi di base del Framework come, per esempio, le classi per l’input/output, per la sicurezza, per il multithreading, per la serializzazione, per la gestione delle stringhe di caratteri, per l’uso di funzioni matematiche e altro. Tratteremo la Base Class Library (BCL) più approfonditamente in seguito.

Allo stesso livello della Base Class Library e anche al livello superiore a questo, possiamo implementare un insieme di classi aggiuntive o installare classi di terze parti che si integrano perfettamente nel sistema come se fossero parte integrante del Framework .NET (nella Fig. 2.2 sono indicate con la definizione di “custom object libraries”).

Infine, l’ultimo strato comprende il livello delle applicazioni gestite, sia per Windows sia per il web. Questo strato è quello di più alto livello e quindi più vicino al programmatore. Qui troviamo tutti i linguaggi .NET come VB.NE T, C#, ma anche molti altri linguaggi meno recenti per i quali è stata implementata una versione .NET: Pascal, Eiffel, COBOL , SmallTalk, Pyton, Forth, Fortran, J#, Prolog, Delphi, Perl, APL e RPG.

In Visual Studio 2010, inoltre, è presente un nuovo linguaggio: F#. È un linguaggio multi paradigma orientato al calcolo ma anche ad applicazioni di carattere generale.

A questo livello sono stati implementati anche i servizi di “presentazione” come l’interfaccia utente (Web Forms e Windows Forms) e i Web Services. Principalmente questo strato ci permette di creare interfacce utente sia per Web Forms sia per Windows Forms senza grandi differenze e rendendo quindi la programmazione di Web
Forms molto più semplice.

Vedremo comunque, nel corso del libro, come Windows Presentation Foundation (WPF) stia rapidamente soppiantando la storica e, ormai, obsoleta programmazione di interfacce utente realizzata tramite Windows Forms e Web Forms.

(…segue…)

Fonte: Cap. 3 – libro “Visual Basic 2010 spiegato a mia nonna”, Edizioni FAG Milano, Autore Mario De Ghetto, 2011, http://bit.ly/NRO6Cn

Pubblicato il 9 agosto 2012, in Programmazione, VB2010SAMN, VS 2010 con tag , , , , . Aggiungi il permalink ai segnalibri. Lascia un commento.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 843 follower

%d blogger cliccano Mi Piace per questo: