Produktivitätsschub für Microsoft-Entwickler
Artikel erschienen in Swiss IT Magazine 2009/04
Für Anfang 2010 plant Microsoft eine Generalüberholung ihrer kompletten Entwicklungsplattform. Neben Visual Studio werden auch das .Net Framework, die .Net-Sprachen C# und Visual Basic sowie das Visual Studio Team System in neuen Versionen erscheinen. Im Mittelpunkt der Neuerungen stehen insbesondere eine Erhöhung der Produktivität einzelner Entwicklern und ganzen Teams, die Optimierung des Softwareentwicklungsprozesses, bessere Werkzeuge für die Durchführung von Tests und eine bessere Unterstützung von neuen Technologien und Methoden. Wie immer bei einem neuen Visual-Studio-Release werden zudem die meisten der seit dem letzten grossen Update (Visual Studio 2008 SP1, .Net 3.5 SP1) erschienenen Toolkits und Frameworks in die Umgebung integriert. Im Falle von Visual Studio 2010 zählen dazu etwa Silverlight 2.0 (evtl. bereits 3.0), die Entwicklungswerkzeuge für Windows Azure oder die alternative ASP.Net-Variante MVC.
Neben der Konsolidierung bisheriger Technologien gibt es aber auch viel Neues. Dazu zählt insbesondere die Unterstützung für Parallel Computing, die sowohl in Visual Studio 2010 und .Net 4.0 eine wichtige Rolle einnehmen wird. Um die Leistung von CPUs zu steigern, sind die Prozessorhersteller in den vergangenen Jahren dazu übergegangen, ihre Chips nicht mit höheren Taktfrequenzraten aufzubohren, sondern mit mehreren Prozessorkernen auszurüsten. Die meisten der heutigen Anwendungen sind aber kaum in der Lage, diese sogenannten Multicore-Architekturen auszunutzen. Einer der Gründe dafür dürfte darin zu suchen sein, dass die Entwicklung von Anwendungen mit Multikern-Support mit den heute auf dem Markt verfügbaren Werkzeugen alles andere als trivial ist. Um hier Abhilfe zu schaffen, will Microsoft das .Net Framework 4.0 mit Technologien wie dem sogenannten P-Linq (parallele Ausführung von Abfragen), diversen Spracherweiterungen und Framework-Komponenten aufrüsten. Diese sollen die Entwicklung von parallelen Applikationen wesentlich vereinfachen. Die Visual-Studio-Umgebung wird zudem mit Entwicklungshilfen wie etwa einem Debugger oder einem Performance Analyzer ausgestattet, welche für die Bearbeitung von parallel ausgeführtem Code ausgelegt sind.
Die Entwicklung für die Sharepoint-Umgebung ist mit den heute von Microsoft angebotenen Werkzeugen alles andere als ein komfortables Unterfangen. Für die Erstellung von Sharepoint-Komponenten wie Webparts, Workflows oder Site-Vorlagen ist heute viel manuelle Arbeit nötig. Ausserdem ist das Deployment und Austesten von eigenem Sharepoint-Code umständlich und zeitraubend.
Mit der nativen Sharepoint-Unterstützung in Visual Studio 2010 soll nun alles anders werden. Ein Server Explorer zeigt die gesamte Sharepoint-Hierarchie (von der Serverfarm bis zu den List-Items) in Form einer Baumstruktur und bietet direkten Zugriff auf einzelne Sharepoint-Artifakte wie Sites, Listen, Vorlagen, Content Types oder Workflows.
Vereinfacht wurde auch die Entwicklung von Webparts, die nun in typischer ASP.Net-Manier mit einem visuellen Designer (als User Control) erstellt werden können. Visual Studio 2010 versteht sich jetzt auch mit Sharepoint Solutions (WSPs). Dabei handelt es sich zu einer Lösung zusammengefasste Sharepoint-Komponenten, die sich mit Hilfe eines Deployment-Pakets auf einem Server installieren lassen. Bereits bestehende WSP-Files lassen sich direkt importieren und in ein Visual-Studio-Projekt konvertieren. Umgekehrt können aus bestehenden Sharepoint-Projekten via Packaging Explorer auch WSPs generiert und per One-Click-Deployment (via F5-Taste) auf dem Entwicklungsserver zum Austesten installiert werden.
Weitere Neuerungen bezüglich Sharepoint sind WYSIWYG-Vorschau für Sharepoint-Elemente direkt in Visual Studio, Wizards, Design-Dialoge und Vorlagen für die wichtigsten Sharepoint-Artefakte (Listen, Site Definitions, Events, Features etc.) sowie besserer Support für Debugging und die Entwicklung für Workflows.
Parallel zum Release von Visual Studio 2010 will Microsoft auch ihre Application-Lifecy-cle-Management-Suite (ALM) in einer generalüberholten Version auf den Markt bringen. Die unter dem Namen Visual Studio Team Sys-tem (VSTS) bekannte Suite wird vor allem bezüglich Modellierung, Code-Analyse und Tes-ting stark ausgebaut.
Eines der Highlights des bislang unter dem Codename «Rosario» bekannten neuen Team Systems 2010 ist der Architect Explorer. Entwickler werden heutzutage immer häufiger mit bereits bestehendem Code konfrontiert, der erweitert, gewartet oder mit anderen Programmen integriert werden muss. Der Architect Explorer soll nun dabei helfen, die Architektur und Funktionsweise von vorhandenen Programmen besser zu verstehen. Das neue Werkzeug bietet dazu verschiedene grafische Ansichten (Abhängigkeitsmatrix, Baum- und Netzdiagramme etc.), die etwa die Abhängigkeiten von verschiedenen .Net-Komponenten (Assemblies), Namespaces oder Klassen aufzeigen. Mit Hilfe von «Zoomfunktionen» kann man sich zu weiteren Details vornavigieren, um etwa einzelne Klassen und deren Funktionsweise auszuspähen.
Dass Microsoft zu UML als Modellierungssprache zurückkehren will, ist bereits seit längerem kein Geheimnis mehr. VSTS 2010 wird vorerst die UML-2.0-Diagrammtypen Activity, Logical Class, Component, Sequence und Use Case unterstützen. Die übrigen acht der insgesamt dreizehn UML-Diagrammarten sollen erst in einem auf VSTS 2010 folgenden Release nachgeliefert werden. Interessant ist, dass sich einige UML-Diagramme mit den Projektdaten des Teamservers verknüpfen lassen. In Use-Case-Diagrammen aufgezeichnete Benutzeranforderungen lassen sich beispielsweise mit den Working Items (Requirement Items) des Team Systems koppeln und für die Entwickler des Teams als Task abbilden. Sequenz-Diagramme können sowohl manuell gezeichnet als auch aus bestehendem Programmcode generiert werden.
Überarbeitet wurde auch das Architecture-Layer-Diagramm, mit dem sich die verschiedenen Schichten (z.B. Presentations-, Business- und Data-Layer) einer Anwendung sowie deren Abhängigkeiten modellieren lassen. Dabei lässt sich das Layer-Diagramm an den eigentlichen Code koppeln. Dieser kann dann gegen die definierten Regeln des Architekturdiagramms validiert werden. Ist beispielsweise die direkte Kommunikation zwischen Presentation- und Data-Layer in der Architektur nicht vorgesehen, kann Team System das Einchecken von entsprechend fehlerhaftem Code verweigern.
Mit dem Test Runner wird VSTS über eine eigenständige Anwendung für die Durchführung von verschiedenen Test Cases enthalten. Das Werkzeug führt Softwaretester anhand einer Taskliste durch eine vorgegebene Serie von Tests. Damit Entwickler die aufgetretenen Fehler später besser reproduzieren können, werden Zustand und Konfiguration der Testumgebung sowie Daten für das historische Debugging während der Tests protokolliert. Ausserdem können Testläufe unter Zuhilfenahme von Screenshots und Video aufgezeichnet werden. Wird ein Fehler entdeckt, kann der Tester auf Knopfdruck ein sogenanntes Work Item erstellen, das auf dem zentralen Server des Team Systems (Team Foundation Server) mit allen aufgezeichneten Daten gespeichert wird. Für das Bugfixing können Entwickler dann auf diese Protokolldaten zurückgreifen.
Neu enthält VSTS eine sogenannte Test-Impact-Ansicht, mit der man sich anzeigen lassen kann, welche Tests bei einer Codeänderung erneut durchgeführt werden müssen. Das reduziert den Zeitbedarf beim Einchecken von geändertem Code.
Eine weitere interessante Neuerung des Team Systems nennt sich Lab Management. Dabei handelt es sich um ein Werkzeug, mit dessen Hilfe sich komplexe Testszenarien unter Zuhilfenahme von Virtual Machines aufbauen lassen. Einmal eingerichtet, kann das Werkzeug die automatische Bereitstellung der Virtual Machines und das Deployment des kompilierten Codes durchführen. Auf mehrere Server verteilte Anwendungen (Client/Server oder Multitier-Architekturen) sollen sich dadurch möglichst realitätsnah austesten lassen.
Visual Studio 2010, .Net 4.0 und das Team Sys-tem dürften in zweierlei Hinsicht besonders interessant werden. Einerseits adressiert Microsoft viele der heute vorhandenen Schwachpunkte wie etwa die unzureichende Unterstützung für Parallel Programming, die fehlende Sharepoint-Entwicklungsumgebung oder die missglückte Workflow-Foundation (WF 3.0). Andererseits hat sich Redmond für ihre Werkzeuge vieles einfallen lassen, um individuelle Entwickler und Teams produktiver zu machen. Die stetige Verbesserung der Softwareentwicklungsprozesse ist in vielen Unternehmen zu einem der zentralen Themen geworden. Mit der konsequenten Weiterentwicklung ihres Team System liegt Microsoft hier voll im Trend. Positiv zu bewerten ist auch die Rückkehr zu UML und der zunehmende Support für agile Methoden wie etwa Test Driven Development. Auch die Integration von Werkzeugen, die dabei helfen, Code besser zu verstehen, adressieren die immer häufiger auftretende Anforderung, sich in bereits bestehenden Programmcode einarbeiten zu müssen. Für ein endgültiges Fazit ist natürlich wie immer das finale Produkt abzuwarten. Erst im Praxiseinsatz wird sich zeigen, wieviel die einzelnen Werkzeuge tatsächlich taugen.
Im Gegensatz zu .Net 3.0 und 3.5 wird es bei der kommenden Version des .Net-Frameworks wieder eine neue Version (4.0) der für die Ausführung von .Net-Code zuständigen Common Language Runtime (CLR) geben. Die CLR 4.0 wird unter anderem eine bessere Unterstützung für dynamische Sprachen und eine bessere Speicherverwaltung bringen. C# 4.0 beherrscht neu die Verwendung von dynamischen Typen. Diese werden erst zur Laufzeit gebunden, was vor allem den Umgang mit Com-Objekten erheblich vereinfachen soll. Weitere Neuerungen in C# sind optionale und benannte Parameter in Methoden, wie sie bereits in Visual Basic zu finden sind. Visual Basic 2010 wird Neuerungen wie Collection Initializers, bessere Unterstützung für Lambda-Ausdrücke und Interoperabilität mit dynamischen Sprachen erhalten.
Die Windows Presentation Foundation (WPF 4.0) wird neue Controls (Ribbon, Kalender, DataGrid etc.), Multitouch-Unterstützung, besseres Text-Rendering und einige Funktionen aus Silverlight (z.B. DeepZoom) erhalten. Die auf serviceorientierte Kommunikation spezialisierte Windows Communication Foundation (WCF 4.0) kommt mit Neuerungen wie besserem REST-Support, deklarativer Bereitstellung von Services und Unterstützung für Standards wie WS-Discovery, WS-BusinessActivity und WS-I RSP.
Geplant für .Net 4.0 ist auch eine überarbeitete Fassung (Version 2.0) des ADO.Net Entity-Frameworks. Bei der mit .Net 3.5 SP1 lancierten O/R-Mapping-Technologie sollen bislang schmerzlich vermisste Funktionen wie das Forward Engineering, Lazy Loading (Implizites Nachladen) oder Persistence Ignorance hinzukommen.
· Microsoft unterzieht seine Entwicklungsplattform derzeit einer Generalüberholung.
· Bald werden Visual Studio 2010, .NET 4.0, Workflow Foundation 4.0 und Visual Studio Team System 2010 erscheinen.
· Mit den neuen Versionen behebt Microsoft einige bisherige Schwachpunkte und bietet erwünschte, neue Funktionen.
Mehr Informationen über die neuen Entwicklungs-Tools wie Visual Studio 2010, Visual Studio Team System 2010, .Net 4.0 oder andere Microsoft-Technologien gibt es an den Techdays 2009. Die fünfte Ausgabe der grössten Schweizer Microsoft-Technologie-Veranstaltung findet am 1./2. April im CICG Genf und am 8./9. April im Kursaal Bern statt. Die Registration ist seit Februar möglich; alle weiteren Infos und die Inhalte der Entwickler-, Architektur- und IT-Pro-Tracks gibt’s auf www.techdays.ch.