Vista: Weniger .NET als erwartet

19.10.2006
Von Holger Schwichtenberg
"Windows Vista" enthält zahlreiche neue Programmierschnittstellen. Entgegen früheren Ankündigungen setzt Microsoft selbst nicht komplett auf das .NET Framework, sondern verwendet Techniken wie Win32 und COM.
Das .NET Framework ist die dritte Evolutionsstufe für Programmcodebibliotheken auf der Windows-Plattform.
Das .NET Framework ist die dritte Evolutionsstufe für Programmcodebibliotheken auf der Windows-Plattform.

Die große Professional Developer Conference (PDC) für Entwickler im Jahr 2003 hatte Microsoft dazu genutzt, die neuen auf .NET beruhenden Programmierschnittstellen von Windows Vista vorzustellen. Die Bibliothek "Windows Framework" (WinFX) sollte das veraltete Windows-32-API und das Sammelsurium von Softwarekomponenten ablösen, die nach dem Component Object Model (COM) entwickelt wurden.

Mehr zum Thema

www.computerwoche.de/

582442: Gartner-Ratschläge für Vista und Office 2007;

582224: Microsoft will Funktionen von Vista-Raubkopien einschränken;

1216033: Ruby on Rails: Einfachheit ist das Prinzip.

Weitere Links:

"Windows Vista Developer Story": http://msdn.microsoft. com/windowsvista/downloads/ docs/developerstory.

Hier lesen Sie …

Einfluss der Entwickler

Kurz vor dem Erscheinen des neuen Betriebssystems zeigt sich aber, dass Windows Vista weit weniger .NET enthält als damals angekündigt. In den letzten drei Jahren ist Microsoft schrittweise von der ursprünglichen Strategie abgerückt. Die WinFX-Bibliothek ist im .NET-Framework 3.0 aufgegangen und auch für Windows XP und Windows Server 2003 verfügbar. Entscheidenden Einfluss darauf hatte die Windows-Entwicklergemeinde, die drohte, eine Bibliothek zu ignorieren, die auf älteren Betriebssystemen nicht vorhanden sein würde. Windows Vista selbst wurde von Microsoft weitestgehend mit klassischen Programmiertechniken entwickelt, und viele neue Funktionen stehen für Entwickler auch auf herkömmlichen Wegen zur Verfügung.

Windows Vista ist das erste Betriebssystem, zu dessen Standardinstallationsumfang das .NET Framework 3.0 gehört. Eine kostenfreie aktualisierte Ausführung für Windows XP und Windows Server 2003 soll gleichzeitig mit dem Erscheinen von Vista verfügbar sein. Sowohl die Laufzeitumgebung als auch die Syntax der Programmiersprachen in .NET 3.0 entsprechen der Vorgängerversion 2.0, so dass .NET 2.0-Anwendungen ohne jegliche Änderung auch auf .NET 3.0 laufen. Neu in .NET 3.0 sind vier Bibliotheken: Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) und Cardspace.

Die WPF ist eine Bibliothek zur Erstellung grafischer Benutzerschnittstellen und gilt als Nachfolger der wenig geliebten "Windows Forms". WPF stellt eine gemeinsame Basis für die Ausgabe von klassischen Desktop-Fenstern, Multimedia-Daten und Dokumenten dar. Intern setzt WPF direkt auf DirectX auf und bietet daher zahlreiche neue grafische Effekte. Anders als zunächst angekündigt, basiert die neue Vista-Benutzeroberfläche Aero aber nicht auf WPF, sondern auf C++-Code.

Optische Gestaltung

Softwareentwickler können zur Erstellung einer WPF-Anwendung neben dem klassischen codegestützten Ansatz auch eine neue XML-basierende Sprache mit Namen Extensible Ap- plication Markup Language (XAML) einsetzen, um sowohl das Layout als auch Anima- tionen zu definieren. XAML ähnelt zum Teil dem Standard Scalable Vector Graphics (SVG), definiert aber die typischen Elemente einer grafischen Benutzeroberfläche. Ziel des XML-Einsatzes ist, die optische Gestaltung der Desktop-Anwendungen von der Programmierung zu entkoppeln.

WPF umfasst auch das neue Dokumentenformat "XML Paper Specification" (XPS), das Microsoft als Konkurrenz zu PDF positioniert. WPF-Anwendungen können auch im Internet Explorer ablaufen, sofern das .NET Framework auf dem lokalen System vorhanden ist. Unter dem Namen Windows Presentation Foundation Everywhere (WPF/E) plant Microsoft für die Zukunft eine plattformunabhängige Variante von WPF.

Kommunikation unter einem Hut

Bei der Windows Communication Foundation handelt es sich um eine Infrastruktur zur Entwicklung servicebasierender verteilter Systeme. Mit WCF vereint Microsoft viele der bisherigen Kommunikationsansätze unter einem Dach. Es bietet zahlreiche Wege für den Aufruf von Programmcode auf einem anderen System. Neben verschiedenen W3C-Web-Services-Standards (Soap, MTOM, WSDL, WS-Security, WS-Trust, WS-Atomic Transaction, WS-Coordination, WS-Secure Conversation, WS-Reliable Messaging und andere) implementiert WCF auch proprietäre Verfahren wie Distributed COM, Microsoft Message Queuing und eine binär codierte Variante von Soap.

.NET Remoting im Aus

Programmierer müssen die Transportprotokolle (HTTP, TCP, SMTP), die Serialisierungsformate (Soap oder binär) und Zusatzfunktionen wie Authentifizierung, Verschlüsselung, Autorisierung, Integrität, Zuverlässigkeit sowie Transaktionen nicht zur Entwicklungszeit festgelegen. Sie lassen sich bei der Installation einer Anwendung in XML-Form konfigurieren. WCF ist kompatibel zu den in .NET 1.x/2.0 verwendeten ASP.NET-basierenden Web-Services. Anwender von .NET-Remoting befinden sich jedoch auf dem Abstellgleis, weil es zwischen diesem Verfahren und WCF weder eine Interoperabilität noch eine Migrationshilfe gibt.

Workflow an Bord

Die dritte wichtige Bibliothek ist die Windows Workflow Foundation. Hierfür wählte Microsoft die Abkürzung WF, um nicht in Namenskonflikte zu geraten. WF stellt Dienste wie Persistenz, Transaktionen, Kommunikation und Überwachung bereit. Da WF aber nur eine Bibliothek und keine Anwendung ist, fällt dem Entwickler die Aufgabe zu, die Services von WF zu einer Anwendung zu kombinieren. Die Beschreibung der aus Aktivitäten oder Zuständen bestehenden Abfolgen erfolgt durch Programmcode oder XML-basierend durch das auch von WPF verwendete XAML. Microsoft selbst verwendet die WF-Bibliothek als Basis für die Workflow-Funktionen in Office 2007 und Sharepoint 2007.

Neuer Anlauf nach Passport

Windows Cardspace ist der Name für Microsofts neuesten Versuch, bei der Verwaltung von Benutzerdaten im Internet Fuß zu fassen. Nachdem sich der Online-Service "Passport" nicht durchsetzen konnte, erlaubt Cardspace nun die Verwaltung beliebig vieler digitaler Identitäten auf dem lokalen System. Es setzt zur Kommunikation zwischen Desktop und Anbieter auf die Standards WS-Security, WS-Trust, WS-Metadata Exchange and WS-Security Policy. Cardspace steht damit in Konkur- renz zu den Ansätzen OpenID und Liberty Alliance. Seine Programmierschnittstelle ist Teil von .NET 3.0, somit steht es nicht nur in Vista, sondern auch unter Windows XP und Windows Server 2003 zur Verfügung.

Viele der neuen Features in Windows Vista beruhen jedoch nicht auf .NET, sondern bauen auf COM-basierende Libraries und klassische DLLs. Ausschließlich herkömmliche Laufzeitbibliotheken nutzt Vista unter anderem für die Transaktionsunterstützung in Dateisystem und Registrierungsdatenbank (Transactional File System/ Transactional Registry), für das überarbeitete Ereignisprotokollsystem, die neuen Sicherheitsfunktionen (User Account Control und Parental Control), für die Verbesserung im Netzwerkbereich und den Restart Manager, mit dem Anwendungen ihren Zustand vor einer Installation von Aktualisierungen sichern können.

Auf der Ebene von COM angesiedelt sind die neuen Funktionen des Windows Explorers (Metadaten und Voransichten), die verbesserte Desktop-Suche, der zu einem universellen Systemagenten ausgebaute "Task Scheduler", die RSS-Unterstützung, die Erforschung der Fähigkeiten von Hardwarebausteinen ("Function Discovery") sowie das bereits in Windows Server 2003 eingeführte Windows Remote Management (WinRM) zum Zugriff auf entfernte Konfigurationsdaten über XML und HTTP.

Sidebar mit Browser-Scripting

Den klassischen Ansatz nicht vermuten würde man bei der neuen Windows Sidebar: Die dort enthaltenen Gadgets basieren weder auf WPF noch auf einer anderen .NET-Technik, sondern auf Browser-Scripting mit Javascript oder Visual Basic Script. Hier verfolgt Microsoft das Ziel, dass Gadgets sowohl in der Sidebar als auch in dem konfigurierbaren Web-Portal live.com eingesetzt werden können.

Den Nachfolger für die Active Scripting-Technologien aus den 90er Jahren, die "Power Shell", liefert Microsoft nicht mit Vista oder .NET 3.0 aus, sondern sie muss separat aus dem Web heruntergeladen werden. Die neue Kommandozeile (Shell "Monad") ist eine Neuimplementierung der Windows-Eingabeaufforderung und basiert auf dem .NET Framework 2.0 mit einem interaktiven Zugang zu .NET- und COM-Bibliotheken. Die Power Shell bietet das aus Unix-Kommandozeilen bekannte Pipelining, allerdings nicht zum Austausch von unstrukturierten Text- und Binärdaten, sondern von typisierten .NET-Objekten. Damit ist die Power Shell nicht nur für Administratoren, sondern auch für Entwickler ein interessantes Werkzeug bei Ad-hoc-Lösungen.

Da alle neuen Bibliotheken auf den bestehenden Komponenteninfrastrukturen in Windows aufsetzen, lassen sich diese problemlos in die bisher verfügbaren Versionen der Entwicklungsumgebung Visual Studio einbinden. Für grafische Ansätze wie WPF und WF sind die Entwickler jedoch Designer und Assistenten gewöhnt. Hier stehen bisher nur Alpha-Ausführungen der kommenden Visual-Studio-Version (Codename "Orcas") und der an Designer gerichteten neuen Produktfamilie "Microsoft Expression" zur Verfügung. Diese Vorabversionen sollen erst Ende 2007 in fertige Produkte münden. Solange müssen sich die Entwickler entweder mit Eingabehilfe bei der XML-Erfassung begnügen oder mit instabilen Vorabversionen arbeiten.

Fazit

Aus Entwicklersicht blickt man mit gemischten Gefühlen auf Vista. Die Bibliotheken WPF, WCF und WF vereinen mächtige Funktionen und reduzieren den Codierungsaufwand für viele typische Szenarien erheblich. Auf der anderen Seite stehen viele Programmierer nun vor der Qual der Wahl: Die Verwendung dieser Neuheiten bedeutet gleichzeitig, dass die eigene Software auf älteren Betriebssystemen als Windows XP nicht mehr läuft. Für viele Entwickler kommt der Einsatz auch deshalb nicht in Frage, weil man erst vor kurzem auf die mit .NET 1.0 eingeführten WinForms- und Remoting-Bibliotheken umgestiegen ist und eine neuerliche Migration zu aufwändig wäre.

Nachdenklich stimmt zudem die Tatsache, dass Microsoft bei vielen der neuen Vista-Funktionen auf die Bereitstellung einer .NET-Bibliothek verzichtet hat und ein .NET-basierendes Werkzeug wie die Power Shell nur als Add-on liefert. Die verwendeten klassischen Ansätze kann man zwar aus .NET heraus nutzen, aber auf Kosten von Komfort und Konsistenz. Es bleibt die Frage, wie Microsoft die Entwicklergemeinde von .NET überzeugen will, wenn das Windows-Entwicklungsteam .NET so stiefmütterlich behandelt. (ws)