.NET Framework este un mediu pentru dezvoltarea şi execuţia de aplicaţii. Acesta se ocupă cu alocarea memoriei necesare stocării instrucţiunilor şi datelor necesare unei aplicaţii, cu permisiuni (legate de securitate), iniţiază şi conduce execuţia aplicaţiei, precum şi realocă memoria ocupată de resurse care nu mai sunt necesare.
Temelia pe care este construit mediul .Net Framework este Common Language Runtime (CLR). Common Language Runtime reprezintă un mediu care coordonează execuţia codului. Asigură servicii cum ar fi: compilarea, alocarea memoriei, managementul firelor de executie, garbage collection. Limajul comun de execuţie (CLR) este comparabil cu Java Virtual Machine(JVM), sau Visual Basic 6 runtime. La fel cu acestea, .Net Framework va trebui instalat pe orice maşină se vor rula programele .Net, dar spre deosebire de acestea CLR a fost conceput special pentru a suporta coduri scrise în diferite limbaje. E drept că mai multe limbaje au fost concepute pentru JVM, dar un support interlimbaj nu a fost una dintre consideraţiile primare în conceptul JVM. În cazul CLR, acest lucru a fost una dintre cele mai importante consideraţii.
În Figura 1.1, este prezentată arhitectura .Net pentru aplicaţii
Figura 2.1 - Arhitectura .Net pentru aplicaţii
Figura 2.2 - Arhitectura .Net pentru programatori
Nivelul de deasupra CLR este setul de clase de bază ale mediului. Libraria de clase .NET, una dintre cele mai mari librării din istorie, este o colecţie de tipuri şi interfeţe orientate obiect care asigură o mulţime de modele pentru obiectele şi serviciile care vor fi folosite în aplicaţii. Librăria este organizată în namespaces (spaţii de nume), şi furnizează un API orientat obiect pentru toate funcţionalităţile pe care le încapsulează platforma .NET.
Deasupra acestui nivel se află un set de clase care extind clasele de bază pentru a suporta gestionarea datelor şi manipularea XML. Aceste clase conţin şi clasele SQL (Structured Query Language) - Limbaj Structurat pe Interogari - care permit manipularea resurselor de date printr-o interfaţă standard SQL. Adiţional, un set de clase cunoscute sub numele de ADO.NET permit gestionarea datelor.
Formurile Web şi Formurile Windows permit aplicarea tehnicilor de dezvoltare rapidă a aplicaţiilor. Printr-o simplă comandă drag and drop se pot aduce controalele pe formuri, şi scrie codul asociat evenimentului.
.NET Framework a fost creat pentru compatibilitatea interlimbaje. Astfel, când o aplicaţie este compilată, codul (scris într-unul dintre limbajele .NET, printre care şi C#) este transformat în Microsoft Intermidiate Language (MSIL) - Limbaj Intermediar Microsoft. Acesta este un limbaj de nivel jos, care poate fi interpretat de catre Common Language Runtime.
Acest lucru înseamnă că, indiferent de limbajul original al codului sursă, executabilele .Net şi DLL-urile sunt desfăşurate în limbajul intermediar, aşa că nu există diferenţe între componentele scrise original în C# şi cele scrise în VB, C, C++. Toate acestea duc la inter-operabilitaea inter-limbaj (adică, posibilitatea de a deriva o clasă scrisă într-un limbaj din oricare dintre limbajele .Net). De asemenea permite utilizarea aplicaţiilor pe orice platformă suportată (Windows 9x/ME, Windows NT4, Windows 2000, sau Windows XP).
Nu mai e nevoie să se scrie cod pentru a permite obiectelor să interacţioneze. .Net Framework are support complet pentru clase, moşteniri, metode, proprietăţi, evenimente, polimorfism, şi alţi constructori orientaţi pe obiect.
Specificaţiile de limbaj comun (CLS) definesc standarde comune la care trebuie să adere limbajele şi programatorii care vor ca şi componentele şi aplicaţiile lor să poată fi utilizate de alte limbaje .Net.