Software-Entwicklung in der Windows-Welt

Software-Entwicklung in der Windows-Welt Mit der neuen Fassung des .Net-Frameworks stellt Microsoft Basis­technologien für serviceorientierte Architekturen bereit. In dem ­Entwicklerpaket Visual Studio fehlen entsprechende Werkzeuge noch.

.Net 3.0 umfasst den Vorläufer .Net 2.0 plus die Windows Presentation Foundation, die Windows Communication Foundation, die Windows Workflow Foundation sowie Card Space.

Microsoft hat Visual Studio mittlerweile zu einem umfassenden Werkzeugpaket ausgebaut, das neben der Programmierung nun auch Modellierung, Test und Projektmanagement abzudecken beansprucht. Zu den Funktionen der aktuellen Version 2005 gehört Unterstützung für die Sprachen VB, VC#, VC++ und VJ#, aber auch Integration mit den 2003er Versionen der Büroprogramme Excel, Word, Info Path und Outlook. Für die Modellierung einer Applikation setzt Microsoft nicht auf die standardisierte und weit verbreitete Unified Modeling Language (UML), sondern bevorzugt domänenspezifische Modellierung. Das Mittel dazu sind sogenannte Domain Specific Languages (DSL). Hierzu liefert Microsoft einige Implementierungen, etwa für den Datenbankzugriff oder die Klassenmodellierung, ferner diverse Designwerkzeuge zum Aufbau von Windows- und Web-Formularen. Die Testphase wird durch Debugger sowie Werkzeuge für Code Profiling, Code Coverage und Test Case Management unterstützt. Nicht zuletzt gehört ein Source Code Control System samt Reporting zum Produktumfang. Um die Belange des Requirements- und Konfigurations-Managements zu unterstützen, hat der Hersteller außerdem seine Dynamic Systems Initiative ins Leben gerufen. In einem System Definition Model werden die Systemanforderungen sowohl für die Entwicklung, als auch für die spätere Betriebsphase hinterlegt. Da all diese Entwicklungsfunktionen kaum von einer Person wahrgenommen werden, bietet Microsoft sein Paket Visual Studio in fünf unterschiedlichen Editionen an.

Klassen und Werkzeuge
Die Neuerungen des erweiterten .Net Frameworks werden freilich erst in der nächsten Version von Visual Studio, die unter dem Codenamen Orcas geführt wird und im Jahr 2008 auf den Markt kommen soll, komfortabler unterstützt sein. Die Programmierung vereinfacht sich durch .Net 3.0 zwar, aber dafür werden die Anforderungen komplexer. So kommen von Seiten der Benutzeroberfläche weitere Elemente hinzu, und auch die Programmierung verteilter Anwendungen im Sinn einer serviceorientierten Architektur (SOA) bringt zusätzliche Aufgaben. Im Einzelnen besteht .Net 3.0 aus Programmierhilfen und einem Laufzeitsystem. Waren die entsprechenden Tech­nologien bislang nur separat erhältlich, so gehören sie bei der neuen Version des Client-Betriebssystems, Windows Vista, zum Lieferumfang. Gleiches wird für Longhorn gelten, die angekündigte neue Version des Server-Betriebssystems in der Windows-Familie. Für ältere Betriebsystemversionen muss weiterhin nachinstalliert werden. Die Version 3.0 von .Net umfasst die Vorgängerversion 2.0 plus die ursprünglich als Win FX bezeichneten Erweiterungen. Wohl aus Marketing-Gründen hat Microsoft, wie so oft, den Namen geändert. Das Laufzeitsystem des Frameworks beinhaltet die Common Language Runtime (CLR) und das Identitätssystem Windows Card Space. Zu den Programmierhilfen gehören die Klassenbibliotheken Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) und die .Net Framework Class Library. Unterstützt werden die Programmiersprachen C# und Visual Basic.

Dynamische Web-Seiten
Nach den Vorstellungen von Microsoft sollen Software-Entwickler in Zukunft die neuen Techniken verwenden. Dies erfordert jedoch ein Umdenken und Neuausrichten des Entwicklungsprozesses. Die WPF, früher unter dem Codenamen Avalon geführt, dient zur Erstellung des Frontends, also der grafischen Benutzeroberflächen. Damit sind nicht nur die Windows-Applikationen im Fat-Client-Stil abgedeckt, sondern alle Möglichkeiten, die Microsoft derzeit hier anbietet. Als Sprache für WPF-Applikationen wird ein XML-Dialekt namens Extensible Application Markup Language (XAML) eingesetzt. Um die Beschränkungen einer HTML-basierten Anwendung zu umschiffen, setzte Microsoft in der Vergangenheit auf seine Windows Forms. Diese Technologie wird zwar weiterhin unterstützt, doch für zukünftige Projekte empfiehlt Microsoft die WPF. Da die WPF allerdings erst ab Windows XP durch Add-on einsatzfähig ist, müssen Applikationen für ältere Systeme weiterhin mit Windows Forms oder anderen Techniken erstellt werden. Um die Nachteile von HTML-Seiten in Bezug auf das Graphical User Interface (GUI) und die aufwändige Server-Anbindung zu reduzieren, hat sich in der Java-Welt die Technologie Asynchronous Javascript and XML (Ajax) etabliert. Sie verhilft HTML-Seiten zu mehr Komfort und vermindert gleichzeitig die extensive Server-Kommunikation (Roundtrips), die bei reinen HTML-Anwendungen notwendig ist. Microsoft hat nun Ajax adaptiert und bietet ASP.NET Ajax an. Der frühere Codename dieser Software war Atlas. Diese Technologie erlaubt einen weitaus feineren Aufbau der HTML-Seiten, als dies bisher möglich war. Dabei können Ausschnitte aus einer HTML-Seite dynamisch nachgeladen werden und nicht wie bisher nur die vollständige Seite. Aufgrund der reichhaltigeren Funktionen und der besseren Reaktionszeit ist davon auszugehen, dass in Zukunft auch typische Windows-Anwendungen öfter mit Web-Oberfläche erstellt werden.

Gebündelte ­Kommunikation
Im zweiten Zusatzmodul von .Net 3.0, der WCF, ehemals als Indigo bezeichnet, fasst Microsoft all seine Techniken zur Prozesskommunikation zusammen. Damit konsolidiert Microsoft das Durcheinander der bisherigen Verfahren. Und derer gab es mit dem Win32 API, mit ASMX, .NET Remoting, .NET Enterprise Services, Web Services Enhancements, der COM-Programmierung und dem Message Queueing mehr als genug. Die WCF ist auch die Grundlage zur Implementierung einer SOA in der Microsoft-Welt. Mit über 7000 Klassen wird die WCF zur Drehscheibe der Kommunikation. So müssen die Software-Schichten nicht mehr wie bisher fest miteinander verdrahtet werden, sondern lassen sich zur Laufzeit per Loosely oder Late Binding verknüpfen. Dadurch wird gleichzeitig die Kommunikation flexibler. Es spielt für die höheren Schichten der Anwendung keine Rolle, ob diese beispielsweise über TCP/IP, HTTP, Named Pipes oder etwa Microsoft Message Queueing kommunizieren. Auch die Auswahl der synchronen oder asynchronen Kommunikation muss nicht bereits im Vorfeld festgelegt werden. Stattdessen lassen sich die Kommunikationspartner, die wiederum entfernte Services darstellen, ganz im Sinn der SOA-Konzepte erst zur Laufzeit durch die URL-Adresse lokalisieren. Daneben offeriert die WCF noch eigene Funktionen. So wird beispielsweise aus zwei zustandslosen HTTP-Verbindungen selbstständig ein gesicherter Transportkanal mit Handshake aufgebaut. Auswirkungen auf den Stil der Software-Entwicklung sind vorherzusehen: Sie wird in Richtung deskriptiver Programmierung vorangetrieben. Das bedeutet, dass mehr Logiken durch Konfigurationsdaten beschrieben und weniger in Programme gegossen werden.

Geschäftsprozesse in Sicht
Das Modul WF schließlich beinhaltet Software zur Abbildung von Geschäftprozessen. Ihr Ziel ist die Schaffung ­einer Infrastruktur, durch die der Entwickler geschäftliche Arbeitsabläufe schneller darstellen kann. Die Funktionen der WF führen die Kommunikation, wie sie in der WCF definiert wurde, auf einer höheren Abstraktionsebene fort. Als Gestaltungsmittel bedient sich die WF bekannter Hilfen wie Fluss- oder Zustandsdiagrammen. Umgesetzt werden sie wie alle anderen Elemente der Applikation mit Werkzeugen aus dem Paket Visual Studio. Die Definition der Geschäftsabläufe erfolgt entweder in XML-Form oder per .Net-Programmierung. Wo die Möglichkeiten der WF enden, ist das Produkt Biztalk heranzuziehen, das der Anwendungsintegration einschließlich der erforderlichen Geschäftsprozessmodellierung dient. Die WF liegt insofern zwischen der Biztalk-Software am oberen und der WCF am unteren Ende.

Johann Baumeister ist IT-Journalist.

Mehr zum Thema SOA unter http://muc.informationweek.de/soa.