Konzeptionelle Übersicht über .NET Framework
Aktualisiert: November 2007
.NET Framework ist eine integrale Windows-Komponente, die die Entwicklung und Ausführung von Anwendungen und XML-Webdiensten der nächsten Generation unterstützt. .NET Framework wurde im Hinblick auf folgende Zielsetzungen entwickelt:
Bereitstellung einer konsistenten, objektorientierten Programmierumgebung, in der Objektcode gespeichert wird. Die Ausführung erfolgt dann entweder lokal oder über Remotezugriff bzw. lokal mit Verteilung über das Internet.
Bereitstellung einer Codeausführungsumgebung, mit der Konflikte bei der Softwarebereitstellung und Versionskonflikte auf ein Minimum beschränkt werden.
Bereitstellung einer Codeausführungsumgebung, die eine sichere Ausführung ermöglicht, und zwar auch von Code, der von unbekannten oder nur halb-vertrauenswürdigen Dritten erstellt wurde.
Bereitstellung einer Codeausführungsumgebung, die nicht mehr die bei interpretations- oder skriptbasierten Umgebungen auftretenden Leistungsprobleme aufweist.
Schaffung einer konsistenten Entwicklungsumgebung für die verschiedensten Anwendungsarten, wie beispielsweise Windows- und webbasierte Anwendungen.
Aufbau der gesamten Kommunikation auf Industriestandards, um die Integration von Code, der auf .NET Framework basiert, in jeden anderen Code zu gewährleisten.
.NET Framework besteht aus zwei Hauptkomponenten: der Common Language Runtime und der .NET Framework-Klassenbibliothek. .NET Framework setzt auf der Common Language Runtime auf. Sie können sich die Common Language Runtime als Agenten vorstellen, der zum Ausführungszeitpunkt Code verwaltet sowie Basisdienste wie Speicherverwaltung, Threadverwaltung und Remoting bereitstellt. Er erzwingt gleichzeitig strikte Typsicherheit und andere Formen der Codegenauigkeit, mit denen Sicherheit und Zuverlässigkeit unterstützt werden. Das Konzept der Codeverwaltung ist ein fundamentales Prinzip der Laufzeitumgebung. Code, der die Laufzeit zum Ziel hat, wird als verwalteter Code bezeichnet, während Code, der nicht auf die Laufzeit abzielt, als nicht verwalteter Code gilt. Die andere Hauptkomponente von .NET Framework, die Klassenbibliothek, ist eine umfassende, objektorientierte Auflistung wiederverwendbarer Typen für die Entwicklung vielfältiger Anwendungen, z. B. solcher mit herkömmlicher Befehlszeile oder grafischer Benutzeroberfläche (GUI), bis hin zu Anwendungen, die auf den neuesten Innovationen von ASP.NET, wie beispielsweise Web Forms und XML-Webdiensten, basieren.
.NET Framework kann von nicht verwalteten Komponenten gehostet werden, durch die die Common Language Runtime in die Prozesse geladen und die Ausführung verwalteten Codes initiiert wird. So entsteht eine Softwareumgebung, in der sowohl verwaltete als auch nicht verwaltete Features genutzt werden können. .NET Framework stellt nicht nur mehrere Laufzeithosts bereit, sondern unterstützt auch die Entwicklung von Laufzeithosts von Drittanbietern.
So dient beispielsweise ASP.NET als Laufzeithost und stellt eine skalierbare, serverseitige Umgebung für verwalteten Code bereit. ASP.NET arbeitet direkt mit der Common Language Runtime und aktiviert ASP.NET-Anwendungen sowie XML-Webdienste, die weiter unten in diesem Thema behandelt werden.
Internet Explorer ist ein Beispiel für eine nicht verwaltete Anwendung, die die Laufzeit (als MIME-Typerweiterung) hostet. Mit Internet Explorer als Laufzeithost können Sie verwaltete Komponenten oder Steuerelemente für Windows Forms in HTML-Dokumente einbetten. Ein derartiges Hosten der Laufzeit ermöglicht verwalteten mobilen Code (ähnlich Microsoft® ActiveX®-Steuerelementen), jedoch mit erheblichen Verbesserungen, wie sie nur verwalteter Code bietet, wie beispielsweise die Ausführung halb-vertrauenswürdigen Codes und den isolierten Dateispeicher.
In der folgenden Abbildung ist die Beziehung der Common Language Runtime und der Klassenbibliothek zu den Anwendungen und dem Gesamtsystem dargestellt. Außerdem geht aus der Abbildung hervor, wie verwalteter Code innerhalb einer größeren Architektur operiert.
.NET Framework im Kontext
In den folgenden Abschnitten werden die Hauptkomponenten und -features von .NET Framework genauer beschrieben.
Features der Common Language Runtime
Die Common Language Runtime verwaltet Speicher, Thread- und Codeausführung, Überprüfung der Codesicherheit, Kompilierung und andere Systemdienste. Diese Features sind in den verwalteten Code integriert, der durch die Common Language Runtime ausgeführt wird.
Aus Sicherheitsgründen werden verwalteten Komponenten unterschiedliche Vertrauensstufen zugewiesen, die von mehreren Faktoren abhängen, zu denen auch der Ursprung (z. B. das Internet, ein Intranet oder ein lokaler Computer) zählt. Das bedeutet, dass eine verwaltete Komponente je nachdem auf Dateien und die Registrierung zugreifen bzw. andere sensible Funktionen ausführen kann oder ihr der Zugriff untersagt ist, selbst wenn sie in derselben aktiven Anwendung verwendet wird.
Die Common Language Runtime erzwingt die Codezugriffssicherheit. So kann sich der Benutzer beispielsweise darauf verlassen, dass durch eine in einer Webseite eingebettete ausführbare Datei zwar eine Animation auf dem Bildschirm wiedergegeben oder ein Musiktitel abgespielt werden, jedoch kein Zugriff auf persönliche Daten, das Dateisystem oder das Netzwerk erfolgen kann. Durch die Sicherheitsfunktionen der Common Language Runtime kann daher legitim über das Internet bereitgestellte Software mit einer besonders großen Funktionsvielfalt ausgestattet werden.
Durch die Implementierung des allgemeinen Typsystems (Common Type System; CTS), einer Infrastruktur mit strikter Typ- und Codeüberprüfung, erzwingt die Common Language Runtime außerdem die Coderobustheit. Durch das CTS wird sichergestellt, dass der gesamte verwaltete Code sich selbst beschreibt. Diverse Sprachcompiler von Microsoft und Drittanbietern generieren verwalteten Code, der dem CTS entspricht. Das bedeutet, dass verwalteter Code andere verwaltete Typen und Instanzen verwenden sowie gleichzeitig strikte Typintegrität und -sicherheit gewährleisten kann.
Außerdem werden durch eine verwaltete Laufzeitumgebung viele bekannte Softwareprobleme beseitigt. So verarbeitet die Common Language Runtime beispielsweise automatisch das Objektlayout, verwaltet Objektreferenzen und gibt diese wieder frei, wenn sie nicht mehr verwendet werden. Durch diese automatische Speicherverwaltung werden Speicherverluste und ungültige Speicherreferenzen, die beiden häufigsten Anwendungsfehler, beseitigt.
Die Produktivität der Entwickler wird außerdem durch die Common Language Runtime erhöht. So können Programmierer beispielsweise Anwendungen in der von ihnen bevorzugten Programmiersprache schreiben und trotzdem die Common Language Runtime, die Klassenbibliothek und die in anderen Sprachen von anderen Entwicklern geschriebenen Komponenten in vollem Umfang nutzen. Jeder Compileranbieter, der die Laufzeit zum Ziel hat, kann entsprechend vorgehen. Sprachcompiler, die .NET Framework zum Ziel haben, stellen die .NET Framework-Features bereits bestehendem Code in der jeweiligen Sprache zur Verfügung und erleichtern damit nicht unerheblich den Migrationsprozess für bestehende Anwendungen.
Die Common Language Runtime wurde zwar für die Software von morgen entwickelt, unterstützt aber auch aktuelle und ältere Anwendungen. Durch die Interoperabilität zwischen verwaltetem und nicht verwaltetem Code können Entwickler weiterhin benötigte COM-Komponenten und DLLs verwenden.
Bei der Common Language Runtime wurde auch die Leistungssteigerung berücksichtigt. Obwohl die Common Language Runtime viele Standardlaufzeitdienste bereitstellt, wird verwalteter Code nicht interpretiert. Durch die JIT-Kompilierung, ein Feature für das Just-in-Time-Kompilieren (JIT), kann der gesamte verwaltete Code in der systemeigenen Maschinensprache des jeweiligen Systems ausgeführt werden. Währenddessen verhindert die Speicherverwaltung die Speicherfragmentierung und erhöht zur weiteren Leistungssteigerung die lokalen Speicherverweise.
Schließlich kann die Common Language Runtime auch von hochleistungsfähigen, serverseitigen Anwendungen wie Microsoft® SQL Server™ und Internetinformationsdienste (IIS) gehostet werden. Diese Infrastruktur bietet die Möglichkeit, Geschäftslogik mit verwaltetem Code zu schreiben und gleichzeitig die überlegene Leistungsfähigkeit der branchenweit besten Organisationsserver zu nutzen, die Laufzeithosting unterstützen.
.NET Framework-Klassenbibliothek
Die .NET Framework-Klassenbibliothek ist eine Auflistung wiederverwendbarer Typen, die eng in die Common Language Runtime integriert sind. Die Klassenbibliothek ist objektorientiert und stellt Typen bereit, von denen eigener verwalteter Code Funktionen ableiten kann. Dadurch können Sie die .NET Framework-Typen problemlos verwenden und sich schneller mit den neuen Features von .NET Framework vertraut machen. Außerdem können Sie Komponenten von Drittanbietern nahtlos in .NET Framework integrieren.
So wird beispielsweise durch die Auflistungsklassen in .NET Framework ein Schnittstellensatz implementiert, der zur Entwicklung eigener Auflistungsklassen verwendet werden kann, die sich nahtlos in die .NET Framework-Klassen einfügen.
Wie von einer objektorientierten Klassenbibliothek zu erwarten, lassen sich mit den .NET Framework-Typen viele gängige Programmieraufgaben erledigen, darunter auch Zeichenfolgenverwaltung, Datenerfassung, Datenbankkonnektivität und Dateizugriff. Neben diesen Typen für normale Aufgaben beinhaltet die Klassenbibliothek auch Typen, die verschiedene spezielle Entwicklungsszenarien unterstützen. So kann .NET Framework beispielsweise zur Entwicklung der folgenden Anwendungs- und Diensttypen verwendet werden:
Konsolenanwendungen Siehe Erstellen von Konsolenanwendungen.
GUI-Anwendungen für Windows (Windows Forms) Siehe Windows Forms.
Windows Presentation Foundation (WPF)-Anwendungen Siehe Einführung in Windows Presentation Foundation.
ASP.NET-Anwendungen Siehe Erstellen von ASP.NET-Webseiten.
Webdienste. Siehe Erstellen von Webdiensten in verwaltetem Code.
Windows-Dienste Siehe Einführung in Windows-Dienstanwendungen.
Dienstorientierte Anwendungen mit Windows Communication Foundation (WCF) Siehe Was ist die Windows Communication Foundation?
Workflowfähige Anwendungen mit Windows Workflow Foundation (WF) Siehe Einleitung zur Programmierung von Windows Workflow Foundation.
So bestehen beispielsweise die Klassen für Windows Forms aus einem umfangreichen Satz wiederverwendbarer Typen, die die Entwicklung für Windows-GUIs erheblich vereinfachen. Beim Schreiben einer ASP.NET Web Form-Anwendung können diese Web Forms-Klassen verwendet werden.
Siehe auch
Weitere Ressourcen
Grundlegende Entwicklungstechnologien