.NET Framework
.NET Framework
Das .NET Framework ist Bestandteil von Microsofts Software-Plattform .NET und enthält die notwendigen Komponenten zur Ausführung von .NET Anwendungen. Das .NET Framework ist eine von Microsofts Implementierungen der Common Language Infrastructure (CLI) Spezifikation.
Im wesentlichen besteht das .NET Framework aus einer Laufzeitumgebung (Common Language Runtime (CLR)) sowie aus einer Sammlung verschiedener Klassenbibliotheken (Framework Class Library (FCL)).
.NET Programme werden von entsprechenden .NET Compilern (z. B. für C# oder VB.NET) nicht in Maschinencode (eines Zielsystems), sondern in eine Zwischensprache (Common Intermediate Language (CIL)) kompiliert.
Bei einem Programmstart wird das (in der CIL vorliegende) Programm und etwaige (in der CIL vorliegende) referenzierte Bibliotheken von der Common Language Runtime (CLR) lokalisiert und geladen. Anschließend werden (nur) die Teile in Maschinencode (des Host-Systems) kompiliert, die für die Programmausführung benötigt werden (Just-In-Time-Kompilierung) und das Programm innerhalb der CLR gestartet.
Dies hat den Vorteil, dass .NET Programme theoretisch auf jedem System gestartet werden können (plattformunabhängigkeit), auf dem ein .NET Framework (der gewünschten Zielversion) vorhanden ist.
Zusätzlich können in CIL vorhandene Bibliotheken (insbesondere die .NET eigenen Klassenbibliotheken selbst) vgl. einfach von jeder .NET Sprache eingebunden werden (sofern die Bibliothek selbst Common Language Specification (CLS) compliant ist), auch wenn diese ursprünglich nicht in der gewünschten Programmiersprache entwickelt wurden (z. B. eine mit C# entwickelte Bibliothek kann in VB.NET eingesetzt werden und umgekehrt).
Microsoft unterstützte in der Vergangenheit mit dem .NET Framework (fast) ausschließlich Windows Betriebssysteme. Es gibt aber weitere Implementierungen der Common Language Infrastructure (CLI) Spezifikation für andere Betriebssysteme - z. B. gibt es für Unix-basierte Systeme das - von Microsoft unabängige - Open-Source-Projekt Mono.
Mit dem .NET Framework 5.0 geht Microsoft einen neuen Weg.
Das neue (und von der .NET Foundation initiierte und unterstützte) Open-Source-Projekt .NET Core ist ebenfalls plattformunabhängig und soll von Beginn and unterschiedliche Zielsysteme (Windows, Linux, etc.) unterstützen.
Außerdem soll .NET Core modularer aufgebaut sein und die gewünschten Klassenbibliotheken (auch Klassenbibliotheken von .NET Core selbst) sollen immer grundsätzlich Teil des Programms sein (d. h. auch die benötigten / gewünschten .NET Klassenbibliothken werden mit dem Programm ausgeliefert). Diesem Konzept folgend bräuchte man auf dem Zielsystem "nur" noch die eine Common Language Runtime (CLR), um .NET Core Programme starten zu können (alles andere wird vom Programm mitgeliefert).