| Gut drei Jahre sind vergangen, seitdem
Branchenprimus Microsoft Revolutionäres auf der alljährlichen
PDC-Konferenz (Professional Developers Conference) verkündete.
Statt der bis dato unkontrolliert gewachsenen DNA-Infrastruktur,
zu der unter anderem Technologien wie COM, COM+ oder ADO zählen,
würde Microsoft fortan seine Entwicklungen auf eine völlig
neue technologische Basis stellen. Mit der Softwareplattform .NET
wollte man auch der Java-Konkurrenz Kopfzerbrechen bereiten.
In der Tat stellt .NET eine völlige Abkehr von den bisherigen
Prinzipien des Marktführers dar. Essentieller Bestandteil dieser
Technologie ist das .NET Framework, das eine virtuelle Maschine,
verschiedene Werkzeuge und eine Klassenbibliothek umfasst. Im Gegensatz
zur Java-Plattform setzt Microsoft mit seiner virtuellen Maschine,
der sogenannten CLR (Common Language Runtime) auf die Unterstützung
mehrerer Programmiersprachen. Als primäre „Systemsprache“
fungiert das Java-ähnliche C# , dessen Schöpfer kein Geringerer
als Anders Hejlsberg ist, seines Zeichens Vater von Turbo Pascal
und Microsofts Visual J#.
Die Übersetzung von Anwendungen in .NET-fähige Sprachen
wie VB.NET, Visual C++ oder C# erfolgt nicht direkt in Maschinencode,
sondern in einen Zwischencode IL (Intermediate Language). Es ist
die Aufgabe der CLR, diesen Zwischencode schrittweise in nativen
Code auf der Zielplattform zu transformieren und zur Ausführung
zu bringen. Daneben sorgt die Laufzeitumgebung auch für automatisches
Speichermanagement (Garbage Collection), Sicherheitsüberprüfungen
und für das Laden von benötigten Bibliotheken zur Laufzeit.
Das CTS (Common Type System) legt dabei fest, welche sprachlichen
Konzepte innerhalb der Laufzeitumgebung zur Verfügung stehen.
Sogar die Erstellung eines ANSI-C-Compilers auf Basis von .NET ist
möglich. Sollen .NET-Anwendungen jedoch auch unabhängig
von den verwendeten Programmiersprachen zusammenarbeiten, müssen
sich die Sprachdesigner an die Vorgaben der CLS (Common Language
Specification) halten, die im wesentlichen eine Untermenge des CTS
definiert.
Wie Java beweist, liegt die Mächtigkeit einer technologischen
Plattform keineswegs in der virtuellen Maschine, sondern primär
in den bereitgestellten Klassenbibliotheken. In den .NET Framework
Classes findet sich dementsprechend umfangreiche Unterstützung
unterschiedlichster Domänen. Beispielsweise erlauben Windows.Forms
die Bereitstellung von Desktop-Applikationen auf Windows-Betriebssystemen.
Mit ASP.NET lassen sich Server-generierte Web-Seiten entwickeln.
Der Zugriff auf Datenbanken erfolgt über ADO.NET. Ein spezieller
Fokus des Frameworks liegt des Weiteren auf Unterstützung von
XML und XML Web-Services. Mittels spezieller Adapteransätze
ist schließlich die Integration von Legacy-Code aus der Win32-
sowie COM/COM+-Welt möglich. Gerade hier kann Microsofts Ansatz
seine Stärken voll ausspielen.
Wer der Java-Plattform als ernsthafter Konkurrent gegenübertreten
möchte, kann sich freilich nicht auf eine „Windows-Only“-Politik
zurückziehen. Konsequenterweise hat Microsoft seine Laufzeitumgebung,
die Programmiersprache C# und Teile der Klassenbibliothek erst bei
der ECMA und anschließend in einem Fasttrack-Verfahren bei
der ISO standardisiert. Heute existiert mit MONO bereits eine Open-Source-Implementierung,
die neben Microsoft Windows unter anderem auch Linux unterstützt,
sich aber noch im Reifeprozess befindet. Microsoft Research hat
mit „Rotor“ eine Shared Source Implementierung freigegeben,
die ebenfalls unter BSD Unix funktioniert. „Shared Source“
bedeutet in diesem Kontext, dass Microsoft die Implementierung inklusive
Quellkode ausliefert, aber eine kommerzielle Nutzung untersagt.
Last but not least liegt mit Visual Studio .NET eine mächtige
und erweiterbare Programmierumgebung vor, die zu guter Produktivität
bei der .NET-Entwicklung verhilft. Daneben stehen zahlreiche weitere
alternative Programmierumgebungen zur Verfügung – etwa
Borland Delphi, Borland C# Builder oder das freie SharpDevelop.
|