Home   Cover Cover Cover Cover
 

Merkmale von .NET

Das .NET-Framework besteht aus der Common Language Runtime (CLR) und der Klassenbibliothek. Während die Klassenbibliothek die Anwendungsprogrammierung unterstützt (vor allem auch die Internetprogrammieung mittels Web-Services und ASP.NET), bietet die CLR die Infrastruktur, unter der alle .NET-Programme laufen. Dazu gehören:

  • Die Common Intermediate Language (CIL). Programme, die in verschiedenen Sprachen geschrieben wurden, können unter .NET nahtlos zusammenarbeiten, weil sie alle in denselben CIL-Code abgebildet und erst beim Laden in Maschinencode übersetzt werden (just in time compilation).


  • Das Common Type System (CTS) legt für alle .NET-Sprachen fest, wie ihre Datentypen (Klassen, Interfaces, etc.) auszusehen haben. Dadurch wird nahtlose Interoperabilität garantiert.


  • Dienste. Die CLR bietet Dienste, die unter Windows fehlen. Dazu gehören der Garbage Collector, der CIL-Code-Verifizierer, Sicherheitseinstellungen, Versionierung, Mechanismen für die Ausnahmebehandlung, die Thread-Unterstützung einschließlich Synchronisation, Reflection und vieles mehr.


  • Assemblies enthalten neben Code auch Metainformationen, die für das dynamische Laden und für Reflection benötigt werden. Außerdem tragen Assemblies eine Versionsnummer, die u.a. die "DLL-Hell" beseitigt. Assemblies sind besonders einfach zu installieren und zu deinstallieren und benötigen keine Registry-Einträge.

Der CLR entspricht in Java die Virtuelle Maschine (VM), die ebenfalls Garbage Collection und Bytecode-Verifizierung anbietet. Allerdings kennt Java keine Versionierung. Java-Programme werden wie unter .NET in Bytecodes abgebildet und zur Laufzeit in Maschinencode übersetzt. Im Gegensatz zu .NET wird ein Java-Programm aber zunächst im Interpreter gestartet und erst bei genügend häufiger Ausführung in Maschinencode übersetzt. .NET erspart sich den Interpreter. Java garantiert Portabilität von Java-Programmen über verschiedene Maschinen und Betriebssysteme hinweg. Das wird in .NET nicht garantiert. Dafür bietet .NET Interoperabilität zwischen verschiedenen Programmiersprachen unter Windows. In Java gilt: eine Sprache auf vielen Betriebssystemen. In .NET gilt: verschiedene Sprachen unter einem Betriebssystem.