Was ist .NET

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Autor: Christoph Spielmann, Düsseldorf

!

Wenn Sie heutzutage einmal im Internet oder in Zeitschriften nach Software-Entwicklung unter Windows suchen, werden Sie das Schlagwort .NET kaum übersehen können. Fast alles dreht sich inzwischen um diese neue Technologie aus dem Hause Microsoft. Dieser Artikel klärt Sie über .NET auf und zeigt, was .NET für die Zukunft von Access bedeutet.

Die Frage “Was ist .NET” lässt sich im Prinzip sehr einfach beantworten. Alles, was Microsoft in Zukunft auf den Markt bringt, wird mit .NET zu tun haben. Insofern ist .NET zunächst nur eine Bezeichnung aus der Marketing-Schmiede von Microsoft. Neben Visual Basic.NET, Visual Studio.NET (siehe Bild 1) und Windows .NET werden demnächst auch Produkte wie Office .NET oder SQL Server .NET auf den Markt kommen. .NET drückt hierbei aus, dass Microsoft diese Produkte speziell auf das Internet auslegt und hierbei eine möglichst enge Integration anstrebt.

Bild 1: VisualStudio.NET integriert mehrere Programmiersprachen unter einer Oberfläche.

Das Kernstück von .Net ist sicherlich das .NET- Framework. Hierbei handelt es sich um eine komplett neue Entwicklungsumgebung, die in den letzten fünf Jahren von Microsoft entwickelt wurde.

Ursprünglich war geplant, das .NET-Framework unter dem Namen COM 2.0 (COM = Component Object Model) auf den Markt zu bringen, was bereits die Tragweite andeutet: Momentan werden noch alle Windows-Anwendungen auf der Basis von COM 1.x entwickelt. Als Access-Entwickler kommen Sie mit COM beispielsweise beim Einbetten von Word-Objekten in Formulare, beim Steuern von Excel per Automation oder beim Integrieren von ActiveX-Steuerelementen in Berührung. Auch Access selbst basiert auf der COM-Technologie.

Alle diese Technologien werden nun von dem .NET-Framework abgelöst. Dies bedeutet konsequenterweise, dass über kurz oder lang alle Anwendungen komplett auf .NET portiert werden. Dieser Wechsel ist ungefähr mit dem Wechsel von der 16-Bit-Windows-Plattform von Windows 3.x zur 32-Bit-Technologie von Windows 9x/NT/XP vergleichbar.

Damit der übergang möglichst fließend vor sich geht, kann .NET mit Hilfe von COM-Wrappern problemlos auf COM-Komponenten zugreifen. Andersherum kann sich .NET wie eine COM-Komponente verhalten. Ein unter .NET entwickeltes Steuerelement ließe sich damit auch in Access nutzen.

Natürlich kommt eine zeit- und kostenaufwendige Portierung nur dann infrage, wenn die neue Plattform genügend Verbesserungen mit sich bringt. Die folgenden Abschnitte beschreiben die einzelnen Komponenten des .NET-Frameworks, um Ihnen einen überblick über die Vorteile zu verschaffen.

Die Basis des .NET-Frameworks stellt die “Common Language Runtime”-Umgebung, kurz CLR dar. Die CLR ist eine virtuelle Maschine, die beispielsweise mit der von JAVA vergleichbar ist. Diese virtuelle Maschine hat zunächst nur die Aufgabe, Programmcode auszuführen.

Dieser Programmcode muss in einer speziellen Sprache vorliegen, die unter .NET als “Intermediate Language” bezeichnet wird (kurz IL). Die Besonderheit der Kombination aus IL und CLR ist nun, dass die Programme nicht nur auf Windows-PCs, sondern theoretisch auch unter Linux oder anderen Betriebssystem/Prozessor-Kombinationen ausgeführt werden können.

Tatsächlich arbeiten momentan zwei Gruppen an der Portierung des .NET-Frameworks auf UNIX, wobei eine Gruppe sogar von Microsoft unterstützt wird (z. B. http://www.go-mono.net). Microsoft macht damit einen wichtigen Schritt in Richtung Plattformunabhängigkeit. Berücksichtigt man, dass das Windows-Betriebssystem das Kerngeschäft von Microsoft ausmacht, ist dieser Schritt umso bemerkenswerter.

Letztendlich hat die CLR die Aufgabe, alle Funktionen eines Betriebssystems zu kapseln und damit zu vereinheitlichen. Die unter der CLR liegende Struktur sollte für die Software unerheblich sein.

Darüber hinaus ist die Performance eine wichtige Anforderung an die CRL. Sie sollte den IL-Code möglicht schnell ausführen. Die CLR erreicht dies durch die so genannte Just-In-Time-Kompi-lierung (JIT-Compiler). Hierdurch wird der IL-Code kurz vor der ersten Ausführung in den Maschinencode der jeweiligen Betriebssystem/Prozessor-Kombination übersetzt und kann damit sehr schnell ausgeführt werden.

Durch dieses so genannte Jitten ergibt sich noch ein weiterer Vorteil: Die CLR kann den IL-Code je nach Umgebungsbedingungen entweder geschwindigkeitsoptimiert oder speicherplatzoptimiert übersetzen. Sollte der Benutzer also momentan Word und Excel gestartet haben und damit wenig Hauptspeicher zur Verfügung stehen, wird die CRL den Code möglichst kompakt kompilieren.

Darüber hinaus prüft die CLR vor der Kompilierung, ob alle benötigten Komponenten (unter .NET Assemblies genannt) vorhanden sind, und kann diese bei Bedarf sogar aus dem Internet nachladen.

Dies bedeutet eine sehr einfache Installation einer Anwendung durch einfaches Kopieren aller Komponenten in ein Verzeichnis des lokalen PCs oder des Webservers (XCopy-Deployment). Außerdem entfällt das leidige Problem mit verschiedenen DLL-Versionen, das viele Programmierer bisher zur Verzweifelung gebracht hat (Stichwort: DLL-Hell).

Ein weiteres wichtiges Element des .NET-Frameworks ist die Klassenbibliothek. Sie enthält alle Grundfunktionen, die der Programmierer benötigt.

Dazu zählen beispielsweise Variablen, Arrays und Zeichenketten. Darüber hinaus abstrahiert die Klassenbibliothek fast alle Funktionen und Dienste des Betriebssystems wie z. B. die Druckerausgabe, den Zugriff auf Dateien, die Kommunikation mit dem Internet oder die parallele Ausführung mehrerer Programmteile (Multi-Threading).

Bild 2: Der Code der Intermediate Language (IL) ähnelt Assembler.

Alle Funktionen sind hierbei größtenteils so allgemein gehalten worden, dass sie auf andere Plattformen wie z. B. Linux portierbar sind.

In der Praxis ist es tatsächlich so, dass Zugriffe an der CLR vorbei direkt auf das Betriebssystem nur in Ausnahmefällen nötig sind (z. B. bei der direkten Programmierung eines Treibers). Für fast alle Funktionen der Windows API gibt es eine passende und oft auch bessere .NET-Funktion.

Wie bereits erwähnt, kann die CLR ausschließlich Programmcode ausführen, der in der Intermediate Language vorliegt. Da dieser Code unter der vollen Kontrolle der CLR steht, wird er auch als Managed Code bezeichnet, der bisherige COM-Code dagegen als Unmanaged Code.

Bei der IL handelt es sich um eine Sprache, die nah an Assembler angelehnt ist, also einen sehr rudimentären Aufbau hat, sehr performant ist, aber sich nur sehr beschränkt zur direkten Programmierung eignet. Bild 2 zeigt ein entsprechendes Beispiel der IL.

Was also noch fehlt, ist ein Compiler, der eine vertraute Sprache in die IL übersetzt. Microsoft hat drei Compiler im Angebot: VB.NET, C# (Ausgesprochen: C-Sharp) sowie C++.

VB.NET und C# sind die Hauptsprachen, wogegen C++ sich eher an Programmierer wendet, die eine optimale Performance erzielen oder neue Systemkomponenten mit direktem Zugriff auf das Betriebssystem entwickeln wollen.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar