DevTrain

Autor: Hannes Preishuber

Was ist DOT NET?

Seit Anfang 2002 ist es soweit. Das seit langem von Microsoft angekündigte .NET (sprich DOT NET) Framework ist Final und verfügbar. Für die Microsoft Welt bedeutet das einen ähnlich großen Schritt wie von DOS zu Windows. Doch was ist .NET und wie betrifft es mich persönlich? 

Wenn man Hundert Menschen befragt, .NET in zwei Sätzen zu erklären wird man sicher vielerlei interessante Antworten erhalten. Es lässt sich einfach nicht mit wenigen Worten formulieren! Mit .NET hat Microsoft eine komplett neue Strategie geschaffen, die sowohl Produkte als auch Technologien oder Programmiersprachen beinhaltet. Mit dieser will man einen ähnlichen Umschwung erzielen wie beim Umstieg auf Windows 3.1.

DOT NET Enterprise Server

Bereits seit Anfang 2001 kann man verschiedene Server Produkte von Microsoft kaufen die den Zusatz .NET tragen.  Diese Produkte basieren aber nicht auf dem soeben erschienen Framework, sondern tragen sozusagen die Ideen von .NET in sich. So habe diese Server gemeinsam, das Sie gut per XML kommunizieren können. Damit können Sie als Anbieter und Konsument von Webservices dienen. Die Webservices wiederum bedienen sich Standard Internet Technologien wie HTTP und XML um zu kommunizieren. Der Nutzen ist, das Sie Anwendungen oder Teile davon weltweit verwenden können. Der ursprüngliche Kern war wohl ASP (Application Service Providing). Auch wenn es oft so transportiert wird, ASP ist nicht Ziel der .NET Strategie. Zwischenzeitlich wurde das :ENT aus dem Windows 2003 Server Namen wieder entfernt.

.NET Framework
Die eigentliche Revolution kommt mit dem .NET Framework. Dabei handelt es sich um eine Schicht zwischen Betriebssystem und den Anwendungen. Es ersetzt damit unter anderem auch die Win 32 API die dann nicht mehr nötig ist. Dabei beinhaltet das Framework vielerlei Dinge, die entweder völlig neu oder ganz anders funktionieren. So entfällt das Registrieren von DLL's. Die klassischen COM DLL's gibt es nicht mehr. Als Ersatz dienen die sogenannten Assemblies, die zwar auch die Endung DLL haben, aber ansonsten in der .NET Umgebung ausgeführt werden. Die Installation einer .NET Anwendung erfordert ein einfaches kopieren der Dateien in ein Verzeichnis. Einzige Bedingung ist, das die Assemblies in einem Verzeichnis namens BIN liegen, das sich unterhalb befinden muss. Wenn Sie ihrer Anwendung überdrüssig sind, löschen Sie einfach das komplette Verzeichnis.

Es gibt auch Assemblies die sich alle Anwendungen teilen. Diese werden Global Assemblies genannt. Es wäre auch unsinnig z.B. für den Zugriff auf die serielle Schnittstelle die DLL x-mal auf der Maschine zu haben.
Die komplette Grundfunktionalität wie eben File I/O oder Systemfunktionen werden als Klassen in der .NET Klassenbibliothek gekapselt. Diese Klassen liegen übrigens auch in globalen Assemblies. Alle .NET Programmiersprachen nutzen die gleiche Klassenbibliothek.

Als weiteres dauerndes Ärgernis entfällt der Dr. Watson mit seinen kryptischen Meldungen. Nein, er wurde nicht umbenannt. Es wurde eine Speicherverwaltung implementiert die den Speicher automatisch verwaltet. So kann kein C++ Programmierer mehr einen Zeiger falsch setzen oder ein VB Entwickler ein Objekt nicht mehr freigeben. Der Speicher wird völlig autark durch den Garbage Collector verwaltet.
.NET Programme haben aber nach wie vor die Extension .EXE. Diese sind aber nur ausführbar, wenn sich das .NET Framework auf dem PC befindet auf dem das Programm aufgerufen wird. Code der innerhalb des .NET Kontextes läuft wird dabei managed Code genannt. Es gibt die Möglichkeit noch auf alte Win 32 Programme (unmanaged) oder Code zuzugreifen, über die COM Interoperatibility.


Installation .NET Framework
Bisher lauter gute Nachrichten. Nun kommt aber das dicke Ende, ohne dem Framework gibt's nichts davon. Also wie bekommen wir das Framework auf den Arbeitsplatz oder Server.
Abgesehen davon, das zukünftige Betriebsysteme das Framework bereits integriert haben werden, bleibt heute nur der Weg über die normale Installation.

Dazu hält Microsoft drei Pakete bereit, die Ihre Maschine in eine net(te) verzaubern.
Das NET Redistribution Packet ist frei und kostenlos verfügbar. Sie können es von der Microsoft Website laden. Dabei ist der Umfang mit 20 MB erstaunlich gering. Allerdings braucht der Ziel Computer alles auf dem neuesten Stand. Das ist bei Windows 2000 Service Pack 2, MDAC 2.7 (Microsoft Data Access Components) und IE 6. Wenn man sich den Umfang von heutigen Installationen ansieht, ist dies durchaus machbar.
Mit dem Framework SDK erhalten Sie zusätzlich Tools und Compiler um selbst mit .NET entwickeln zu können. Dieses hat aber einen Umfang von ca.106 MB. Auch dieses ist kostenlos erhältlich.
Wenn Sie Software Entwickler sind, werden Sie den dritten Weg bevorzugen. Die Installation von Visual Studio .NET bringt alles mit (und viel mehr) was sich das Entwicklerherz wünscht. Das Betriebsystem wird über das Component Update mit allem nötigen, wie oben beschrieben versorgt. Sie können also auf einem blanken Windows 2000 , NT 4 oder Windows 98 das Setup starten.
 

Wenn Sie die MSDN Universal Subscription besitzen, können Sie bereits heute z.B. die Enterprise Architekt Version mit schlappen 1,8 GB downloaden. Bis das Produkt in den Läden steht werden allerdings noch einige Wochen vergehen. Die deutsche Version kommt mit zeitlicher Verzögerung zur Englischen. Leider ist das Visual Studio .NET nicht kostenlos. Dafür haben Sie alle Tools um leistungsfähige NET Anwendungen in kurzer Zeit zu entwickeln.
Microsoft setzt so konsequent auf seine .NET Strategie, sodass sich keine Win 32 Anwendungen mehr mit Visual Studio .NET Entwickeln lassen.

Bis heute gibt es (fast) keine Software von Microsoft, die in dieser NET Laufzeitumgebung läuft. Selbst Visual Studio .NET basiert zum Großteil noch auf Win 32.

.NET Programmierung
In der Standard Installation des .NET Frameworks sind die Compiler für VB, C#, JScript und C++ enthalten. All diese Compiler können auf der Kommando Zeile ausgeführt werden und erzeugen z.B. ein EXE File. Dieses File enthält aber keinen Binärcode sondern einen Zwischencode in der Intermediate Language (IL). Erst beim ersten Aufruf wird das Programm vom Just in Time Kompiler (JIT) in Assembler übersetzt. Das Konzept erinnert an Java und dessen Virtual Machine, unterscheidet sich in den Details aber wesentlich. So erzeugt dieser JIT Maschinen optimierten Code und optimiert automatisch auf Speicher oder Prozessor. Bei großen Anwendungen werden nur die Teile kompiliert und auch in den Speicher geladen, die wirklich benötigt werden. Meine Erfahrung in den letzten Monaten hat gezeigt, das so nahezu die Performance von C++ kompilierten Programmen erreicht werden kann. Die erzeugten EXE Files sind in der Regel sehr klein, da die Funktionen in der Klassen Bibliothek liegen.
Für die Entwicklung von Programmen stehen eine Unzahl an Sprachen zur Verfügung. Alle müssen allerdings voll objektorientiert sein. Es ist auch kein Problem, Teile der Anwendung in einer anderen Sprache zu entwickeln.
Neu hinzugekommen ist von Microsofts Seite C# (sprich Ci Sharp). Obwohl diese als ultimative .NET Sprache gehandelt wird, sind die anderen wie VB absolut gleichberechtigt. Wenn Sie vorher Java oder C++ Programmiert haben, werden Sie es sehr leicht haben sich einzuarbeiten. C# ist aber durchaus als Teil der .NET Strategie zu verstehen. Es ist eine sauber implementierte objektorientierte Sprache ohne Altlasten.
Wenn Sie Basic Entwickler sind, werden Sie eventuell leichter mit VB .NET klarkommen. Hier bieten sich auch die komfortabelsten Möglichkeiten Code weiter zu verwenden. Es gibt in Visual Studio .NET einen Migrationassistenten der alten VB 6 Code ganz brauchbar nach VB .NET portiert.
Der Datenzugriff hat sich in .NET gänzlich verändert. Wo vorher ADO zum Einsatz kam, wird nun ADO .NET verwendet. Obwohl die Namen ähnlich sind, ist das Grundkonzept ganz anders. (Details dazu würden hier aber den weitere Seiten füllen)

Windows & Web

Es gibt zwei grundsätzlich unterschiedliche Wege Anwendungen in NET zu schreiben. Der klassische Windows Weg erfordert den Einsatz der Winform Klassen. Diese sind im Framework enthalten. Theoretisch ist es sogar möglich eine solche Anwendung auf einem Linux System laufen zu lassen. Sie brauchen dafür aber ein Framework für Linux. Ein solches ist sogar in Arbeit. Details dazu finden Sie unter der Web Adresse: XXXX.
Es ist zu erwarten, dass für viele Plattformen in Zukunft ein Framework zur Verfügung stehen wird. Dies ist möglich weil Microsoft die Spezifikationen über das ECMA Komitee freigegeben und standardisiert hat.
Der zweite Weg ist eine browserbasierte Web Anwendung zu schreiben. Der Vorteil ist, daß das Framework nur auf dem Webserver installiert sein muss. Die Technik die zum Einsatz kommt nennt sich ASP .NET.  Damit programmieren Sie wie Sie es aus VB kennen. Es wird allerdings von der ASP .NET Anwendung HTML Code erzeugt. Je nach Browser wird automatisch der passende Code bereitgestellt. Auf dem Client muss so nichts installiert werden und der Benutzer arbeitet immer mit der aktuellsten Anwendung.
Für Mobile User enthält ASP .NET die Mobile Controls mit denen WML Anzeigen (z.B. auf Handys) erzeugt werden können.
Die Konfiguration einer ASP .NET Anwendung findet nicht mehr in der IIS Metabase oder gar der Registry statt. Über die XML Datei WEB.CONFIG können Sie alle Einstellungen vornehmen. Diese liegt üblicherweise im virtuellen Root Verzeichnis.
Auch Webservices sind im gewissen Sinne Web Anwendungen. Nur wird hier nicht HTML für den Browser erzeugt, sondern XML für eine andere Anwendung. Für die Datenkommunikation verwendet man Webservices SOAP, das wiederum ein W3C Standard ist. So können Sie aus einer VB .NET Anwendung einfach einen Webservice nutzen der auf einer UNIX Maschine läuft. Allgemein sehen die Experten hier den großen Markt der Zukunft. Vorstellbar sind Services wie Payment oder Banking.
Diese Webservices werden aber wohl zum Teil kostenpflichtig werden.

.NET Auswirkungen
Kein Administrator installiert auf einem funktionierenden Server gerne neue Software. Aus meiner Erfahrung ergeben sich aber keine Probleme im laufenden Betrieb. Das .NET Framework erfordert außer einem gewissen Plattenplatz vorerst auch keine zusätzlichen Ressourcen wie Speicher oder Prozessorleistung.

Zur Analyse und Monitorring von .NET finden sich eine Menge neuer Counter im Performance Monitor. Damit kann man dem JIT bei seinen Aktivitäten zusehen oder die Auslastung der ASP .NET Engine beobachten.

Sehr viele Änderungen haben sich auch im Bereich der Security ergeben. So werden jetzt Rechte auf Rollen oder Applikationsebene vergeben. Dazu klicken sich zwei neue Menüpunkte in den Bereich Administration ein.
Mit der Microsoft .NET Framework Konfiguration können die Einstellungen vorgenommen werden. Hier werden z.B. die globalen Assemblies verwaltet. Die Granulierung der Rechte erfolgt von User zu Computer bis hin zu Enterprise.
Unter dem zweiten Punkt finden sich drei Wizards mit denen  per Template die Einstellungen für die Security vorgenommen werden.
 

Beide Konfigurations- Programme haben gemeinsam, das damit ein Set von XML Dateien beschrieben wird. Diese Files haben alle die Extension .Config und finden sich unterhalb des Microsoft.NET Verzeichnisses.

In dieser Struktur finden sich noch eine Menge weiterer Tools. Außerdem sind hier die Baseklassen als DLL's abgelegt. Die Benennung  orientiert sich an den Namensräumen der Klassenbibliothek. So finden sich die ADO .NET Klassen in der Datei System.Data.DLL.

Hype oder Flop?

.NET wird kommen! Microsoft setzt alle Karten auf die .NET Strategie. Diese wird in der Fachwelt einhellig als gut und zeitgemäß bezeichnet. Sicherlich wird es Jahre dauern, bis am letzten Arbeitsplatz die Vorraussetzung dafür gegeben sind. Speziell in den Bereichen Webanwendung und Webservice sind die Vorteile heute so gravierend, das viele Entwickler bereits jetzt umsteigen. Mit den Windows 2003 Server wird das Framework bereits vorinstalliert ausgeliefert. Dann sogar schon in der Version 1.1


 


Erfasst am: 06.02.2003 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=823
© Copyright 2003 ppedv AG - http://www.ppedv.de