Modellwechsel mit Komfortgewinn
Artikel erschienen in Swiss IT Magazine 2007/19
Autofahrer, die einer Marke treu bleiben, freuen sich beim Umstieg auf das neueste Modell meistens über Kleinigkeiten und dass alles beim Alten geblieben ist. Auch Entwickler denken in der Regel eher konservativ und fürchten nichts mehr, als wenn ihre IDE modischen Trends folgt, mit Features überladen wird oder Assistenten versuchen, ihnen das Denken abzunehmen. Bei Visual Studio ist zum Glück nichts Derartiges der Fall. Die Entwickler in Redmond wissen um die Sensibilität ihrer Aufgabe, ein Werkzeug schaffen zu müssen, das Profis das Gefühl gibt, alles machen zu können, und gleichzeitig die stetig nachwachsenden «Neulinge» nicht gleich am Anfang zu überfordern.
Würde man in Redmond noch das alte Nummernschema bevorzugen, wäre Visual Studio 2008 (VS 2008) eine typische Punkt-1-Version. Es gibt zahlreiche kleine Verbesserungen, aber nichts in der Grössenordnung, das einen Sprung um eine ganze Ziffer rechtfertigen würde (intern liegt bereits die Version 9.0 vor). Doch die moderaten Änderungen sind kein Zeichen für mangelnde Innovationsfähigkeit, sondern sie versprechen einen nahtlosen Übergang ohne den durch das Suchen nach vertrauten Funktionen oft bedingten «Produktivitätsausfall». Im Idealfall wird die neue Version installiert (auch parallel zu Visual Studio 2005), die alten Projekte werden beim ersten Öffnen (wie üblich) konvertiert, und anschliessend steht eine aktuellere Version der für die meisten Entwickler inzwischen überaus vertrauten IDE zur Verfügung, die einfach ein wenig mehr zu bieten hat.
Der erste Eindruck ist, dass sich optisch nicht allzu viel verändert hat. Das wird auch durch den zweiten Eindruck bestätigt: Die Neuerungen verteilen sich über die gesamte IDE und bestehen in erster Linie aus kleinen, aber nicht unwichtigen Details.
Die Tabelle stellt die wichtigsten Neuerungen zusammen. Eines dieser nicht ganz unwichtigen Details ist der Umstand, dass in den Projekteigenschaften die Versionsnummer der
.NET-Laufzeit ausgewählt werden kann, gegen die das Projekt kompiliert wird (zur Auswahl stehen 2.0, 3.0 und 3.5 – 1.1 wird nicht mehr unterstützt, da nur noch eine kleine Minderheit für diese Version entwickeln dürfte). Die Auswahl entscheidet nicht nur, welche Assembly-Bibliotheken eingebunden werden, sondern auch, welche Verweise gesetzt werden. Speziell für VB-Entwickler gibt es die Möglichkeit, Erweiterungen des My-Namespaces in den Projekteigenschaften einzubinden.
Die Windows Presentation Foundation (WPF), die neue «Grafikschnittstelle», bei der Vektorgrafik, Animationen und eine hervorragende Darstellung von Text im Mittelpunkt stehen, gibt es bereits seit November 2006. Mit VS 2008 gibt es endlich auch ein Werkzeug, mit dem Entwickler WPF-Oberflächen auf der Basis von XAML, wie bei den WinForms gewohnt, umsetzen können. Sehr praktisch ist die dreigeteilte Ansicht und eine Zoom-Funktion für WPF-Container, die es bei Expression Blend, dem WPF-Werkzeug für Designer, nicht gibt. Allzu viel erwarten darf man von dem Designer jedoch nicht. Geht es
um das Zusammenstellen von typischen Benutzeroberflächen, bietet er den gewohnten Komfort.
Möchte man jedoch mehr machen und zum Beispiel Triggers, Styles oder Animationen hinzufügen, geschieht dies auch bei VS 2008 ausschliesslich direkt im XAML-Code (es ist unwahrscheinlich, dass die finale Version im Unterschied zur Beta 2 noch signifikante Verbesserungen enthalten wird). Dies ist zwar alles andere als eine Zumutung, da für einen erfahrenen WPF-Entwickler das Eintippen des XAML-Codes in der Regel schneller von der Hand gehen dürfte als die Benutzung eines Designers. Trotzdem limitiert es die Möglichkeiten und signalisiert indirekt, dass WPF noch nicht den Stellenwert bei Microsoft hat, den es haben sollte.
Neuerung Nummer 1 beim Thema Datenzugriff ist natürlich die Unterstützung für das neue Language Integrated Query Framework (LINQ), das Teil des .NET Framework 3.5 ist. Da LINQ Gegenstand eines ausführlichen Artikels in der nächsten Ausgabe sein wird, an dieser Stelle nur so viel: Dank LINQ lassen sich beliebige Datenquellen in einer an SQL angelehnten Abfragesprache direkt im Quellcode abfragen. Dank LINQ to SQL lassen sich speziell Microsoft-SQL-Server-Datenbanken (und nur diese) über eine Objektschnittstelle abfragen und aktualisieren, was der Grundfunktionalität eines typischen O/R-Mappers entspricht. Bei VS 2008 macht sich LINQ lediglich durch die neue LINQ-to-SQL-Classes-Vorlage bemerkbar, über die sich ein Layer für eine SQL-Server-Datenbank zusammenstellen lässt, der per Code und LINQ «objektorientiert» angesprochen wird. Die Umsetzung könnte einfacher nicht sein. Als erstes werden die Tabellen auf den Designer gezogen, anschliessend lässt sich folgender Code schreiben:
Dim DB As New DataClasses1DataContext
Die Visual Studio Tools für Office (VSTO) waren lange Zeit mehr dafür bekannt, den längsten Produktnamen in der Palette der Microsoft-Produkte zu besitzen, als tatsächlich eingesetzt zu werden. Das lag auch daran, dass bis zur Version 2.0 immer etwas Entscheidendes gefehlt hat. Mit der aktuellen Version 3.0 sind die VSTO endlich komplett. Unterstützt werden nun die Neuerungen von Office 2007, die Multifunktionsleisten und Regionen bei Outlook-2007-Formularen, für die neu auch Designer zur Verfügung stehen. Ausserdem werden bei den Add-ins jetzt die Versionen 2003 und 2007 gleichermassen unterstützt.
Die sicherlich wichtigste Neuerung ist, dass die in der Vergangenheit aufgrund der stets erforderlichen Berechtigungen recht aufwendige Auslieferung einer VSTO-Anwendung dank ClickOnce deutlich einfacher geworden ist. Unternehmen oder Abteilungen, die noch viel VBA-Code im Einsatz haben, werden befriedigt zur Kenntnis nehmen, dass sich in einer VSTO-Anwendung VBA-Code aufrufen lässt und umgekehrt
.NET-Methoden für den Aufruf in VBA-Code gekennzeichnet werden können.
Die Anbindung an ein ERP oder CRM, für das es nur .NET-Schnittstellen gibt, lässt sich damit sehr viel einfacher in eine bestehende VBA-Anwendung integrieren. Erwähnenswert sind ferner zwei Vorlagen für SharePoint-Workflows, mit denen sich Dokument-Workflows für die Windows SharePoint Services 3.0 und den grossen Office SharePoint Server 2007 erstellen lassen. Alle Baustellen in diesem Bereich konnte man in Redmond nicht schliessen, denn das im Vergleich zu den bereits bei .NET 3.0 enthaltenen Package-Klassen deutlich komfortablere Open XML SDK liegt immer noch als Preview vor und wird kein offizieller Teil der .NET-Klassenbibliothek 3.5.
Visual Studio ist auch ein erstklassiges Web-Entwicklerwerkzeug, das sich vermutlich hinter etablierten Werkzeugen wie Dreamweaver nicht zu verstecken braucht. Die zwei wichtigsten Neuerungen runden die Werkzeugpalette sinnvoll ab. Einerseits wurde ASP.NET AJAX in die IDE integriert, so dass es von Anfang an zur Verfügung steht. Andererseits gibt es für JavaScript, HTML und CSS ein umfassendes Intellisense, so dass zum Beispiel nach der Eingabe von JavaScript-Objekten Auswahllisten angeboten werden.
Ein wichtiger Aspekt ist natürlich die Vista-Unterstützung. Diese beschränkt sich bei VS 2008 auf eine Einstellung in den Projektoptionen, mit der die für die Ausführung unter der Benutzerkontensteuerung von Vista erforderliche Manifestdatei automatisch angelegt wird. Spezielle Vista-UI-Komponenten sucht man in der Toolbox dagegen vergeblich. Wenn Microsoft von Vista-Anwendungen spricht, meint man meistens WPF-Anwendungen, die genauso unter XP laufen.
Vorlagen für Silverlight werden nicht Teil von VS 2008 sein, da Silverlight 1.1 immer noch als Preview vorliegt. Sie werden im Rahmen eines «Refresh» vermutlich im Sommer 2008 nachgereicht werden. Nach dem Motto: «Es gibt immer eine nächste Version» (für das es aber auch bei Microsoft Ausnahmen gibt, siehe FoxPro) wird es eines schönen Tages auch einen Nachfolger von VS 2008 geben, an dem (unter dem vielversprechenden Codenamen «Hawaii») zurzeit sicher schon gearbeitet wird.
Vor 2012 dürfte dieser Nachfolger aber nicht offiziell werden. In einigen Blogs aus dem Jahre 2005 liest man noch Andeutungen darüber, dass es mit dieser Version ein komplett neues UI geben könnte (damals noch in Anspielung auf das bevorstehende Longhorn-Release). Dass Microsoft den Entwicklern einen solch radikalen Schnitt zumuten wird, ist eher unwahrscheinlich. Der Fortschritt findet bei Visual Studio in kleinen Schritten statt.