(0) exportieren Drucken
Alle erweitern

Konzeptionelle Übersicht über .NET Framework

.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


Verwalteter Code innerhalb einer größeren Architektur

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

  • GUI-Anwendungen für Windows (Windows Forms)

  • ASP.NET-Anwendungen

  • XML-Webdienste

  • Windows-Dienste

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.

Entwicklung von Clientanwendungen

Clientanwendungen kommen der traditionellen Anwendungsform in der Windows-basierten Programmierung am nächsten. Es handelt sich hierbei um Anwendungstypen, bei denen auf dem Desktop Fenster oder Formulare angezeigt werden, mit deren Hilfe der Benutzer eine Aufgabe durchführen kann. Zu den Clientanwendungen zählen Textverarbeitungs- und Tabellenkalkulationsprogramme, aber auch benutzerdefinierte Geschäftsanwendungen wie Dateneingabetools, Berichtsprogramme usw. Clientanwendungen arbeiten in der Regel mit Fenstern, Menüs, Schaltflächen und anderen Elementen der grafischen Benutzeroberfläche und greifen auf lokale Ressourcen wie das Dateisystem oder Peripheriegeräte (Drucker usw.) zu.

Eine andere Form der Clientanwendung sind die herkömmlichen ActiveX-Steuerelemente (jetzt durch die verwalteten Steuerelemente für Windows Forms ersetzt), die über das Internet als Webseiten bereitgestellt werden. Diese Anwendung ist durchaus mit anderen Clientanwendungen vergleichbar: Sie wird nativ ausgeführt, hat Zugriff auf lokale Ressourcen und beinhaltet grafische Elemente.

Bisher wurden solche Anwendungen mit C/C++ in Verbindung mit Microsoft Foundation Classes (MFC) oder in einer RAD-Umgebung (Rapid Application Development) wie Microsoft® Visual Basic® entwickelt. .NET Framework bindet Aspekte dieser bestehenden Produkte in eine einzelne, konsistente Entwicklungsumgebung ein, durch die die Entwicklung von Clientanwendungen drastisch vereinfacht wird.

Die in .NET Framework enthaltenen Klassen für Windows Forms sind für die Entwicklung von grafischen Benutzeroberflächen konzipiert. Befehlsfenster, Schaltflächen, Menüs, Symbolleisten und andere Bildschirmelemente können problemlos mit der Flexibilität erstellt werden, die bei wechselnden Geschäftsanforderungen unentbehrlich ist.

So bietet .NET Framework beispielsweise einfache Eigenschaften zum Anpassen visueller Attribute, die Formularen zugeordnet sind. Manchmal wird eine direkte Änderung dieser Attribute vom Betriebssystem nicht unterstützt. Dann werden die Formulare von .NET Framework automatisch neu erstellt. Dies ist nur eine der vielen Möglichkeiten, mit denen in .NET Framework die Entwicklerschnittstelle integriert wird. Auf diese Weise wird die Codeverarbeitung einfacher und konsistenter.

Im Gegensatz zu den ActiveX-Steuerelementen haben die Steuerelemente für Windows Forms halb-vertrauenswürdigen Zugriff auf den Computer eines Benutzers. Das bedeutet, dass binärer oder nativ ausgeführter Code Zugriff auf einige Ressourcen des Benutzersystems (z. B. Zugriff auf GUI-Elemente und eingeschränkter Dateizugriff) hat, jedoch nicht auf andere Ressourcen zugreifen oder diese gefährden kann. Aufgrund der Codezugriffssicherheit können viele Anwendungen, die früher auf einem lokalen System installiert werden mussten, heute über das Internet bereitgestellt werden. In den Anwendungen können die Features einer lokalen Anwendung implementiert werden, während sie wie eine Webseite bereitgestellt werden.

Entwicklung von Serveranwendungen

Serverseitige Anwendungen werden in der verwalteten Umgebung durch Laufzeithosts implementiert. Nicht verwaltete Anwendungen dienen als Host für die Common Language Runtime, mit deren Hilfe benutzerdefinierter, verwalteter Code das Verhalten des Servers steuert. Dieses Modell verfügt sowohl über alle Features der Common Language Runtime und der Klassenbibliothek als auch über die Leistungsfähigkeit und Skalierbarkeit des Hostservers.

In der folgenden Abbildung ist ein einfaches Netzwerkschema mit verwaltetem Code dargestellt, der in verschiedenen Serverumgebungen ausgeführt wird. Server wie IIS und SQL Server können Standardaufgaben durchführen, während die Anwendungslogik durch den verwalteten Code ausgeführt wird.

Serverseitiger verwalteter Code


Verwalteter Servercode

ASP.NET ist die Hostumgebung, in der Entwickler .NET Framework für webbasierte Anwendungen nutzen können. ASP.NET ist jedoch mehr als nur ein Laufzeithost. Es handelt sich vielmehr um eine komplette Architektur für die Entwicklung von Websites und über das Internet verteilten Objekten mit verwaltetem Code. Sowohl Web Forms als auch die XML-Webdienste verwenden IIS and ASP.NET als Veröffentlichungsmechanismus für Anwendungen. Für beide gibt es in .NET Framework eine Auflistung der unterstützenden Klassen.

Bei den XML-Webdiensten, die einen wichtigen Fortschritt in der webbasierten Technologie darstellen, handelt es sich um serverseitige Anwendungskomponenten, die mit normalen Websites vergleichbar sind. Im Gegensatz zu webbasierten Anwendungen verfügen XML-Webdienste über keine Benutzeroberfläche und sind nicht für Browser wie Internet Explorer und Netscape Navigator ausgelegt. Die XML-Webdienste bestehen vielmehr aus wiederverwendbaren Softwarekomponenten, die von anderen Anwendungen, wie herkömmlichen Clientanwendungen, webbasierten Anwendungen oder sogar anderen XML-Webdiensten, genutzt werden sollen. Durch die XML-Webdiensttechnologie werden daher Entwicklung und Bereitstellung von Anwendungen in rasantem Tempo in die hochgradig verteilte Umgebung des Internets verlagert.

Wenn Sie schon mit früheren Versionen der ASP-Technologie gearbeitet haben, werden Sie sofort die Verbesserungen bei ASP.NET und Web Forms feststellen. So können Sie beispielsweise Web Forms-Seiten in allen Sprachen entwickeln, die .NET Framework unterstützen. Außerdem muss sich der Code nicht mehr in derselben Datei wie der HTTP-Text befinden (er kann aber auch weiterhin dort bleiben). Web Forms-Seiten werden in systemeigener Maschinensprache ausgeführt, da sie wie andere verwaltete Anwendungen die Laufzeit in vollem Umfang nutzen. Im Gegensatz dazu werden nicht verwaltete ASP-Seiten immer auf Skriptbasis erstellt und interpretiert. ASP.NET-Seiten sind schneller, funktioneller und einfacher zu entwickeln als nicht verwaltete ASP-Seiten, da sie wie alle verwalteten Anwendungen mit der Laufzeit in Interaktion treten.

.NET Framework stellt außerdem als Hilfe für Entwicklung und Nutzung von XML-Webdienstanwendungen eine Klassenauflistung und entsprechende Tools bereit. Die XML-Webdienste bauen auf Standards wie SOAP (Protokoll für den Remoteprozeduraufruf), XML (erweiterbares Datenformat) und WSDL (Web Services Description Language) auf. .NET Framework baut ebenfalls auf diesen Standards auf und fördert so die Interoperabilität zwischen Microsoft-Anwendungen und Lösungen von Drittanbietern.

So kann beispielsweise das in .NET Framework SDK integrierte WSDL-Tool (Web Services Description Language) einen im Internet veröffentlichten XML-Webdienst abfragen, dessen WSDL-Beschreibung verarbeiten und C#- oder Visual Basic-Quellcode erstellen, den die Anwendung nutzen kann, um Client des XML-Webdienstes zu werden. Mit dem Quellcode können von Klassen in der Klassenbibliothek abgeleitete Klassen erstellt werden, die mit SOAP und XML-Verarbeitung die gesamte Basiskommunikation bearbeiten. Obwohl mit der Klassenbibliothek die XML-Webdienste auch direkt genutzt werden können, wird durch das WSDL-Tool und die anderen SDK-Tools die Entwicklung mit .NET Framework erleichtert.

Wenn Sie eigene XML-Webdienste entwickeln und veröffentlichen, bietet .NET Framework eine Reihe von Klassen, die allen Basiskommunikationsstandards wie beispielsweise SOAP, WSDL und XML entsprechen. Mit diesen Klassen können Sie sich auf die Logik des Dienstes konzentrieren und brauchen sich nicht um die Kommunikationsinfrastruktur zu kümmern, die für eine verteilte Softwareentwicklung erforderlich ist.

So werden Ihre XML-Webdienste schließlich mithilfe der skalierbaren IIS-Kommunikation mit der Geschwindigkeit systemeigener Maschinensprache ausgeführt und lassen sich mit Web Forms-Seiten in einer verwalteten Umgebung vergleichen.

Siehe auch

Anzeigen:
© 2014 Microsoft