Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
.NET stellt eine Laufzeitumgebung bereit, die als Common Language Runtime bezeichnet wird, die den Code ausführt und Dienste bereitstellt, die den Entwicklungsprozess vereinfachen.
Compiler und Tools machen die Funktionalität der Common Language Runtime verfügbar und ermöglichen es Ihnen, Code zu schreiben, der von der verwalteten Ausführungsumgebung profitiert. Code, den Sie mit einem Sprachcompiler entwickeln, der auf die Laufzeit abzielt, wird als verwalteter Code bezeichnet. Verwalteter Code profitiert von Features wie sprachübergreifende Integration, sprachübergreifende Ausnahmebehandlung, verbesserte Sicherheit, Versionsverwaltung und Bereitstellungsunterstützung, ein vereinfachtes Modell für komponenteninteraktion sowie Debugging- und Profilerstellungsdienste.
Hinweis
Compiler und Tools können Ausgabe erzeugen, die die Common Language Runtime nutzen kann, da das Typsystem, das Format von Metadaten und die Laufzeitumgebung (das virtuelle Ausführungssystem) alle durch einen öffentlichen Standard definiert sind, die ECMA Common Language Infrastructure-Spezifikation. Weitere Informationen finden Sie unter ECMA C# und Common Language Infrastructure Specifications.
Damit die Laufzeit Dienste für verwalteten Code bereitstellt, müssen Sprachcompiler Metadaten ausgeben, die die Typen, Member und Verweise in Ihrem Code beschreiben. Metadaten werden mit dem Code gespeichert; jede ladbare Common Language Runtime-Portable Executable (PE)-Datei enthält Metadaten. Die Laufzeit verwendet Metadaten, um Klassen zu suchen und zu laden, Instanzen im Arbeitsspeicher anzulegen, Methodenaufrufe aufzulösen, systemeigenen Code zu generieren, Sicherheit zu erzwingen und Laufzeitkontextgrenzen festzulegen.
Die Laufzeit behandelt automatisch das Objektlayout und verwaltet Verweise auf Objekte und gibt sie frei, wenn sie nicht mehr verwendet werden. Objekte, deren Lebensdauer auf diese Weise verwaltet werden, werden als verwaltete Daten bezeichnet. Die Garbage Collection beseitigt Speicherverluste und andere häufige Programmierfehler. Wenn Ihr Code verwaltet wird, können Sie in Ihrer .NET-Anwendung verwaltete, nicht verwaltete oder sowohl verwaltete als auch nicht verwaltete Daten verwenden. Da Sprachcompiler ihre eigenen Typen bereitstellen, z. B. primitive Typen, wissen Sie möglicherweise nicht immer oder müssen wissen, ob Ihre Daten verwaltet werden.
Die Common Language Runtime erleichtert das Entwerfen von Komponenten und Anwendungen, deren Objekte in verschiedenen Sprachen interagieren. Objekte, die in verschiedenen Sprachen geschrieben werden, können miteinander kommunizieren, und ihre Verhaltensweisen können eng integriert werden. Sie können beispielsweise eine Klasse definieren und dann eine andere Sprache verwenden, um eine Klasse von Ihrer ursprünglichen Klasse abzuleiten oder eine Methode für die ursprüngliche Klasse aufzurufen. Sie können auch eine Instanz einer Klasse an eine Methode einer Klasse übergeben, die in einer anderen Sprache geschrieben wurde. Diese sprachübergreifende Integration ist möglich, da Sprachcompiler und -tools, die auf die Laufzeit abzielen, ein gängiges Typsystem verwenden, das von der Laufzeit definiert wird. Sie folgen den Regeln der Laufzeit zum Definieren neuer Typen und zum Erstellen, Verwenden, Beibehalten und Binden an Typen.
Im Rahmen ihrer Metadaten enthalten alle verwalteten Komponenten Informationen zu den Komponenten und Ressourcen, für die sie erstellt wurden. Die Laufzeit verwendet diese Informationen, um sicherzustellen, dass Ihre Komponente oder Anwendung über die angegebenen Versionen aller benötigten Abhängigkeiten verfügt, wodurch die Wahrscheinlichkeit verringert wird, dass Ihr Code aufgrund nicht erfüllter Abhängigkeiten fehlschlägt. Registrierungsinformationen und Statusdaten werden nicht mehr in der Registrierung gespeichert, wo sie schwer zu erstellen und zu verwalten sind. Stattdessen werden Informationen zu den Typen, die Sie definieren, und deren Abhängigkeiten mit dem Code als Metadaten gespeichert. Auf diese Weise ist die Aufgabe der Komponentenreplikation und -entfernung weniger kompliziert.
Sprachcompiler und -tools machen die Funktionalität der Laufzeit auf eine Weise verfügbar, die für Entwickler nützlich und intuitiv sein soll. Einige Features der Laufzeit sind in einer Umgebung möglicherweise spürbarer als in einer anderen Umgebung. Wie Sie die Laufzeit erleben, hängt davon ab, welche Sprachcompiler oder Tools Sie verwenden. Wenn Sie beispielsweise ein Visual Basic-Entwickler sind, stellen Sie möglicherweise fest, dass die Visual Basic-Sprache mit der Common Language Runtime mehr objektorientierte Features aufweist als zuvor. Die Laufzeit bietet die folgenden Vorteile:
Leistungsverbesserungen.
Die Möglichkeit, auf einfache Weise Komponenten zu verwenden, die in anderen Sprachen entwickelt wurden.
Erweiterbare Typen, die von einer Klassenbibliothek bereitgestellt werden.
Merkmale von Programmiersprachen wie Vererbung, Schnittstellen und Überladung für die objektorientierte Programmierung.
Unterstützung für explizites freies Threading, das die Erstellung von Multithread- und skalierbaren Anwendungen ermöglicht.
Unterstützung für die strukturierte Ausnahmebehandlung.
Unterstützung für benutzerdefinierte Attribute.
Müllabfuhr.
Verwendung von Delegaten anstelle von Funktionszeigern zur Verbesserung der Typsicherheit. Weitere Informationen zu Stellvertretungen finden Sie unter Common Type System.
CLR-Versionen
.NET Core- und .NET 5+-Versionen verfügen über eine einzelne Produktversion, d. h. es gibt keine separate CLR-Version. Eine Liste der .NET Core-Versionen finden Sie unter .NET Core herunterladen.
Die .NET Framework-Versionsnummer entspricht jedoch nicht unbedingt der Versionsnummer der darin eingeschlossenen CLR. Eine Liste der .NET Framework-Versionen und deren entsprechenden CLR-Versionen finden Sie unter .NET Framework-Versionen und -Abhängigkeiten.
Verwandte Artikel
Titel | BESCHREIBUNG |
---|---|
Verwalteter Ausführungsprozess | Beschreibt die schritte, die erforderlich sind, um die Common Language Runtime zu nutzen. |
Automatische Speicherverwaltung | Erläutert, wie Sie den Garbage Collector zum Belegen und Freigeben von Arbeitsspeicher verwenden können. |
Übersicht über .NET Framework | Beschreibt wichtige .NET Framework-Konzepte, z. B. das allgemeine Typsystem, die sprachübergreifende Interoperabilität, die verwaltete Ausführung, Anwendungsdomänen und Assemblys. |
Allgemeines Typsystem | Beschreibt, wie Typen deklariert, verwendet und in der Laufzeit verwaltet werden, um die sprachübergreifende Integration zu unterstützen. |