Übersicht: Common Language Runtime (CLR)

.NET stellt eine Laufzeitumgebung bereit, die als allgemeine Sprachlaufzeit bezeichnet wird, die den Code ausführt und Dienste bereitstellt, die den Entwicklungsprozess vereinfachen.

Compiler und Tools machen die Funktionalität der allgemeinen Sprachlaufzeit verfügbar und ermöglichen Es Ihnen, Code zu schreiben, der von der verwalteten Ausführungsumgebung profitieren kann. Code, den Sie mit einem Sprachcompiler für die Runtime entwickeln, wird als verwalteter Code bezeichnet. Der verwaltete Code profitiert von Features wie der sprachübergreifenden Integration, der sprachübergreifenden Ausnahmebehandlung, erhöhter Sicherheit, der Unterstützung bei der Versionserstellung und der Bereitstellung, einem vereinfachten Modell für die Interaktion von Komponenten sowie Debug- und Profilerstellungsdiensten.

Hinweis

Compiler und Tools können Ausgabe erzeugen, die die allgemeine Sprachlaufzeit nutzen kann, da das Typsystem, das Format von Metadaten und die Laufzeitumgebung (das virtuelle Ausführungssystem) von einem öffentlichen Standard definiert sind, die ECMA Common Language Infrastructure-Spezifikation. Weitere Informationen finden Sie unter ECMA C# und Common Language Infrastructure Standards.

Damit die Common Language Runtime Dienste für verwalteten Code bereitstellen kann, müssen Sprachcompiler Metadaten ausgeben, mit denen die Typen, Member und Verweise im Code beschrieben werden. Metadata werden gemeinsam mit dem Code gespeichert. Jede PE (Portable Executable)-Datei der Common Language Runtime, die geladen werden kann, enthält Metadaten. Die Laufzeit verwendet Metadaten zum Suchen und Laden von Klassen, Anordnen von Instanzen im Speicher, Auflösen von Methodenaufrufen, Generieren von systemeigenem Code, Erzwingen von Sicherheit und zum Festlegen von Begrenzungen im Laufzeitkontext.

Die Laufzeit behandelt das Objektlayout automatisch und verwaltet Verweise auf Objekte, die sie freigeben, wenn sie nicht mehr verwendet werden. Objekte, deren Lebensdauer auf diese Weise verwaltet wird, werden als verwaltete Daten bezeichnet. Die Garbage Collection entfernt Speicherlecks und einige andere häufige Programmierfehler. Wenn Ihr Code verwaltet wird, können Sie verwaltete, nicht verwaltete oder nicht verwaltete Daten in Ihrer .NET-Anwendung verwenden. Da Sprachcompiler ihre eigenen Typen bereitstellen, z. B. Grundtypen, wissen Sie möglicherweise nicht immer, oder müssen sie wissen, ob Ihre Daten verwaltet werden.

Die Common Language Runtime erleichtert das Entwerfen von Komponenten und Anwendungen, deren Objekte sprachübergreifend interagieren. In unterschiedlichen Sprachen geschriebene Objekte können miteinander kommunizieren. Ihr Verhalten kann in hohem Maße integriert werden. Sie können z. B. eine Klasse definieren und dann in einer anderen Sprache eine Klasse von der ursprünglichen Klasse ableiten oder eine Methode für diese aufrufen. Sie können außerdem eine Instanz einer Klasse an die in einer anderen Sprache geschriebene Methode einer Klasse übergeben. Diese sprachübergreifende Integration ist möglich, da Sprachcompiler und Tools, die auf die Laufzeit abzielen, ein gemeinsames Typsystem verwenden, das von der Laufzeit definiert ist. Sie folgen den Regeln der Laufzeit zum Definieren neuer Typen und zum Erstellen, Beibehalten und Binden an Typen.

Sämtliche verwalteten Komponenten enthalten als Teil der jeweiligen Metadaten Informationen über die Komponenten und Ressourcen, für die sie erstellt wurden. Mit diesen Informationen stellt die Common Language Runtime sicher, dass die Komponente oder Anwendung über die angegebenen Versionen aller erforderlichen Elemente verfügt. Dadurch kommt es seltener zu einer Unterbrechung der Ausführung des Codes aufgrund einer Abhängigkeit, deren Voraussetzungen nicht erfüllt sind. Registrierungsinformationen und Statusdaten werden nicht mehr in der Registrierung gespeichert, wo sie schwierig sein können, diese einzurichten und zu verwalten. Stattdessen werden Informationen zu den typen, die Sie definieren, und deren Abhängigkeiten werden mit dem Code als Metadaten gespeichert. Auf diese Weise ist die Aufgabe der Komponentenreplikation und Entfernung weniger kompliziert.

Die Funktionen der Laufzeit werden durch Sprachcompiler und Tools auf eine Weise verfügbar gemacht, dass sie von Entwicklern einfach und intuitiv verwendet werden können. Einige Features der Laufzeit können in einer Umgebung als in einer anderen Umgebung deutlicher sein. Die Wahrnehmung der Laufzeit hängt von den verwendeten Sprachcompilern und Tools ab. Wenn Sie beispielsweise ein Visual Basic-Entwickler sind, können Sie feststellen, dass mit der allgemeinen Sprachlaufzeit die Visual Basic-Sprache mehr objektorientierte Features aufweist als zuvor. In Folgenden sind einige Vorteile der Common Language Runtime aufgeführt:

  • Leistungsverbesserungen.

  • Die problemlose Verwendung in anderen Sprachen entwickelter Komponenten.

  • Erweiterbare Typen, die von einer Klassenbibliothek bereitgestellt werden.

  • Neue Sprachfunktionen wie Vererbung, Schnittstellen und Überladen für objektorientiertes Programmieren.

  • Unterstützung für explizites freies Threading, das die Erstellung von multithreadierten und skalierbaren Anwendungen ermöglicht.

  • Unterstützung für strukturierte Ausnahmebehandlung.

  • Unterstützung für benutzerdefinierte Attribute.

  • Garbage Collection.

  • Verwendung von Delegaten anstelle von Funktionszeigern zur Verbesserung der Typsicherheit. Weitere Informationen zu Delegaten finden Sie unter Allgemeines Typsystem.

CLR-Versionen

.NET Core und .NET 5+-Versionen verfügen über eine einzelne Produktversion, d. h. es gibt keine separate CLR-Version. Eine Liste von .NET Core-Versionen finden Sie unter Herunterladen von .NET Core.

Die Versionsnummer von .NET Framework entspricht jedoch nicht unbedingt der Versionsnummer der enthaltenen CLR. Eine Liste der Versionen von .NET Framework und der dazugehörigen CLR-Versionen finden Sie unter .NET Framework-Versionen und -Abhängigkeiten.

Titel Beschreibung
Der verwaltete Ausführungsprozess Enthält eine Beschreibung der Schritte, die erforderlich sind, um die Vorteile der Common Language Runtime nutzen zu können.
Automatische Speicherverwaltung Erläutert, wie Sie den Garbage Collector zum Belegen und Freigeben von Arbeitsspeicher verwenden können.
Übersicht über .NET Framework Beschreibt die wichtigsten Konzepte von .NET Framework, z. B. das allgemeine Typsystem, die sprachübergreifende Interoperabilität, die verwaltete Ausführung, Anwendungsdomänen und Assemblys
Allgemeines Typsystem Enthält eine Beschreibung der Deklaration, Verwendung und Verwaltung von Typen in der Laufzeit für die Unterstützung einer sprachübergreifenden Integration.