Ce este .NET Framework?

.NET Framework este o platforma pentru dezvoltatori alcatuita din instrumente, limbaje de programare si biblioteci pentru construirea multor tipuri diferite de aplicatii.

Exista diverse implementari ale .NET. Fiecare implementare permite executarea codului .NET in locuri diferite — Linux, macOS, Windows, iOS, Android si multe altele.

  • .NET Framework este implementarea originala a .NET. Accepta rularea de site-uri web, servicii, aplicatii desktop si multe altele pe Windows.
  • .NET este o implementare multiplatforma pentru rularea site-urilor web, a serviciilor si a aplicatiilor de consola pe Windows, Linux si macOS.
  • .NET este open source pe GitHub; anterior se numea .NET Core.
  • Xamarin/Mono este o implementare .NET pentru rularea aplicatiilor pe toate sistemele de operare mobile majore, inclusiv iOS si Android.
  • .NET Standard este o specificatie formala a API-urilor care sunt comune in implementarile .NET. Acest lucru permite aceluiasi cod sa ruleze pe implementari diferite.

Arhitectura .NET Framework

Cele 2 componente majore ale .NET Framework sunt Common Language Runtime si .NET Framework Class Library.

  • Common Language Runtime (CLR) este motorul de executie care se ocupa de aplicatiile care ruleaza. Ofera servicii, precum gestionarea firelor, colectarea gunoiului (programul incearca sa elibereze spatiu de memorie care nu mai este folosit de obiecte), siguranta tipurilor, gestionarea exceptiilor si multe altele.
  • .NET Framework Class Library (Biblioteca de clasa) ofera un set de API-uri pentru citirea si scrierea fisierelor, conectarea la baze de date, desen si multe altele.

Aplicatiile .NET sunt scrise in limbajul de programare C#, F# sau Visual Basic. Codul este compilat intr-un Common Intermediate Language (CIL) independent de limba. Codul compilat este stocat in ansambluri — fisiere cu extensia de fisier .dll sau .exe.

Cand ruleaza o aplicatie, CLR preia ansamblul si foloseste un compilator just-in-time (JIT) pentru a o transforma in cod de masina care se poate executa pe arhitectura specifica a computerului pe care ruleaza.