Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 5/2002.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Was ist .NET?

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.

Alles ist .NET!

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 (s. Abb. 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.

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

Das .NET Framework

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 CLR

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).

Die Klassenbibliothek

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).

Abb. 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.

Die IL (Intermediate Language)

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. Abb. 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.

Obwohl sich VB.NET sehr stark an Visual Basic 6.0 und C# an JAVA orientiert, ist der Programmcode in vielen Fällen ähnlich. Dies liegt daran, dass die eigentliche Sprache nur aus sehr wenigen Befehlen besteht (z. B. For...Next, Sub, Dim usw.).

Alle anderen Funktionen wie z. B. die Ausgabe eines Textes auf dem Bildschirm oder das Öffnen einer Datei stammen aus der .NET-Klassenbibliothek und sind damit bei allen Sprachen identisch.

Momentan arbeitet Microsoft noch an einem JAVA-Compiler namens J# (J-Sharp). Von anderen Herstellern sind ebenfalls noch weitere Sprachen wie z. B. Cobol oder Delphi (Borland) angekündigt. Laut Microsoft soll sich jeder Entwickler seine Lieblingssprache auswählen können, ohne dass er hierbei in Bezug auf Performance oder Komfort benachteiligt wird.

Web-Services

Ein wichtiges Element, das von Microsoft immer sehr stark heraus gestellt wird, aber eigentlich nur einen sehr geringen Teil des .NET-Frameworks ausmacht, sind die Web-Services. Hierbei handelt es sich um einen Dienst, mit dem zwei Programme über das Internet kommunizieren können. Das Besondere hierbei ist, dass das zugrunde liegende Protokoll (SOAP) standardisiert ist. Ein unter Unix bereitgestellter Web-Service kann also von .NET aus genutzt werden und umgekehrt. Das SOAP-Protokoll basiert hierbei auf XML und gelangt damit problemlos durch Router und Firewalls zum Ziel, ohne dass das Netzwerk hierzu speziell eingerichtet werden muss.

Die Suchmaschine Google bietet beispielsweise einen Web-Service an, über den Sie die Suchfunktionen in Ihre eigene Anwendung integrieren können (http://www.google.com/apis, s. Abb. 3). Mit den Web-Services könnte sich ein komplett neuer Zweig an IT-Dienstleistungen entwickeln, bei dem nicht mehr die Software, sondern der angebotene Dienst im Vordergrund steht. Auch die passenden Suchmaschinen zum Auffinden von Web-Services sind schon in Betrieb (s. Abb. 4).

Abb. 3: Web-Services stellen Dienste über das Internet zur Verfügung. So lassen sich beispielsweise die Suchfunktionen von Google in Office-Anwendungen wie Access integrieren.

Abb. 4: UDDI ist ein Verzeichnis für Web-Services, über die Dienste gesucht werden können.

Sicherheit

Sehr großes Augenmerk hat Microsoft auf die Sicherheit gelegt, was insbesondere bei der Ausrichtung auf das Internet eine wichtige Rolle spielt.

Wenn Sie heutzutage beispielsweise im Internet surfen, erhalten Sie manchmal die Aufforderung, einem bestimmten Hersteller und einem bestimmten Programm zu vertrauen, damit Sie die gewünschte Funktion ausführen können (s. Abb. 5).

Was das Programm genau macht und was sich hinter der Firma verbirgt, ist oft unbekannt. Vorsichtige Internetnutzer lehnen daher die Installation solcher Programme grundsätzlich ab, können aber damit die betreffenden Dienste nicht nutzen.

Vertrauen Sie dagegen dem Programm, hat es Zugriff auf Ihren gesamten PC, teilweise sogar auf das Netzwerk. Dies ist ein idealer Zustand für ungeliebte Viren oder 0190er-Dialer.

Unter .NET wird dagegen jedem Programm grundsätzlich nicht vertraut. Um es trotzdem auszuführen, können Sie sehr differenzierte Rechte definieren. So legen Sie beispielsweise fest, dass ein .NET-Programm die Windows-Registrierung nur lesen, aber nicht schreiben darf.

Außerdem darf die Anwendung nur auf das Verzeichnis C:\Temp zugreifen und keine Verbindung zum Netzwerk aufnehmen (s. Abb. 6). Unter diesen Restriktionen kann das Programm kaum Schaden anrichten.

Abb. 5: Bei der Installation einer Anwendung aus dem Internet kann der Benutzer nur zwischen dem vollständigen Vertrauen auf die Korrektheit der Anwendung oder der Ablehnung der Installation wählen.

Abb. 6: Unter .NET kann für jede Anwendung definiert werden, auf welche Computerressourcen sie zugreifen darf.

Office.NET und Co.

Viele der Vorteile von .NET wären natürlich auch innerhalb von Access eine große Bereicherung. Einen ersten Schritt zur Integration von .NET in Office hat Microsoft mit dem Office Web Service Toolkit unternommen (http://download.microsoft.com/download/OfficeXPDev/Install/1.0/W982KMeXP/EN-US/Setup.exe).

Zusammen mit dem SOAP 2.0 Toolkit lassen sich damit Web-Services auch von VBA aus nutzen. Der Integration der Google-Suchfunktionen in Ihre Access-Datenbank dürfte damit also nichts mehr im Wege stehen.

Sicherlich wird Microsoft diese Funktion sowie die Integration mit .NET noch weiter ausbauen und in die neue Office-Version integrieren, die momentan unter dem Code-Namen NGO (Next Generation Office) entwickelt wird.

Da diese Version erst Ende dieses Jahres in den Beta-Test geht, sind Informationen darüber noch sehr spärlich.

Wahrscheinlich wird Access.NET weiterhin auf der COM-Plattform basieren, aber es bleibt abzuwarten, ob beispielsweise bereits VBA durch VB.NET abgelöst wird.

Technisch gesehen sollte es hierbei kaum Probleme geben, denn .NET ist mit einem COM-Wrapper ausgerüstet, der den Zugriff auf die "alte" COM-Welt problemlos ermöglicht.

Auch der Nachfolger vom Windows 2000 Server wird auf den .NET-Zug aufspringen. Anders als der Name Windows.NET vermuten lässt, beschränkt sich die Integration hier jedoch darauf, dass die Laufzeitumgebung des .NET-Frameworks hier bereits vorinstalliert ist. Ansonsten basiert der Server auf bewährter Technologie.

Besonders interessant dürfte die nächste Version des Microsoft SQL Servers sein. Hier plant Microsoft, .NET als Alternative zu Transact-SQL einzuführen.

Durch die enge Integration in den SQL-Server wäre eine besonders gute Performance zusammen mit einer komfortablen Entwicklungsumgebung zu erwarten. Man darf also gespannt sein, was die Zukunft bringt.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Download

Download

Die .zip-Datei enthält folgende Dateien:

HardwareVerwaltung97.mdb

HardwareVerwaltung00.mdb

Beispieldateien downloaden

© 2003-2015 André Minhorst Alle Rechte vorbehalten.