Visual Studio 2008 in den Startlöchern

19.02.2008 von Peter Monadjemi
Microsoft beginnt heute in Frankfurt am Main einen mehrtägigen Event-Marathon, bei dem auch die deutsche Version von "Visual Studio 2008" offiziell vorgestellt wird. Die eigentliche Innovation der Entwicklungsumgebung dürfte in der Summe der zahlreichen kleinen Verbesserungen liegen wie etwa der LINQ- und Ajax-Integration sowie der Einführung neuer Designer-Tools.

Der Nachfolger von Visual Studio 2005 steht in den Startlöchern, als Download in deutscher Version hat Microsoft das Update seiner integrierten Entwicklungsumgebung (IDE) bereits Mitte Januar ins Netz gestellt. Auch wenn es sich bei Visual Studio 2008 insgesamt nur um einen kleineren Release-Wechsel handelt, so bietet er doch für Entwickler in allen Bereichen erfreuliche Verbesserungen. Mit LINQ to SQL kommt sogar eine echte Neuerung. Das mit dem Update verbundene Ziel lässt sich auf die einfache Formel bringen: mehr Komfort und Möglichkeiten für Entwickler. Erreicht wird dies nicht zuletzt damit, dass einige der bisherigen Baustellen geschlossen wurden. So hat Microsoft mit den Designern für Windows Workflow Foundation (WF) und Windows Presentation Foundation (WPF) sowie mit dem bereits seit Januar offiziell verfügbaren Ajax ASP.NET jene fehlenden Bausteine in das Paket aufgenommen, die bislang nur als Vorabversionen oder einzeln verfügbar waren.

Keine Spielereien

Wird in Visual Studio 2008 ein neues Projekt angelegt, lässt sich die dafür gewünschte Version der .NET-Laufzeit auswählen.

Bei Visual Studio kann man inzwischen nicht mehr von einer Anwendung sprechen, es handelt sich um eine komplette Produktfamilie aus zehn Editionen. Die IDE deckt die Interessen des gesamten Anwenderspektrums ab, vom Hobbyisten bis zum Unternehmensentwickler, der in einem größeren Team arbeitet. Wer die bislang ausgelieferten Versionen von Visual Studio .NET, angefangen hat es mit Release 2002, der Reihe nach aufrufen würde, dürfte bei oberflächlicher Betrachtung keine gravierenden Unterschiede feststellen. Genau das ist die Qualität von Visual Studio, indem es die in diesem Punkt sensiblen Entwickler nicht mit modischen Spielereien verärgert. Die zahlreichen Verbesserungen liegen im Detail und führen zu beachtlichen Produktivitätsgewinnen. Dank eines deutlich beschleunigten Hintergrund-Compilers gibt es beispielsweise einen reaktionsfreudigeren Code-Editor, der Eingabehilfen schneller anzeigt und für Visual-Basic-Befehle eine Auswahlliste bietet.

Eine sehr wichtige Neuerung der IDE lässt sich allerdings auch schnell übersehen: Beim Anlegen eines neuen Projekts kann die Version der .NET-Laufzeit (zur Auswahl stehen 2.0, 3.0 und 3.5) ausgewählt werden. Entsprechend werden Verweise auf die .NET-Bibliotheken gesetzt und Vorlagen angeboten. Entwickler müssen daher ihre aktuellen Projekte beim Umstieg auf Visual Studio 2008 nicht sofort auf .NET 3.5 umstellen. Wird ein VS-2005-Projekt unter der neuen Version geladen, wird es zwar von einem Konvertierungs-Assistenten "umgestellt", Inkompatibilitäten sind jedoch nicht zu befürchten, zumal als "Ziel" das .NET-Framework 2.0 beibehalten wird.

Endlich unter einem Dach vereint

Wer auf der Microsoft-Plattform entwickelt, ist daran gewöhnt, mit offiziell noch nicht freigegebenen Werkzeugen arbeiten zu müssen. In den letzten zwei Jahren hatte man in Redmond den Entwicklern in diesem Punkt einiges zugemutet. Über das im November 2006 eingeführte .NET 3.0 kamen mit der Windows Presentation Foundation und der Windows Workflow Foundation zwar wichtige neue Techniken hinzu, die dafür angebotenen Designer blieben aber auf dem Stand eines Community Technical Preview (CTP). Mit Visual Studio 2008 und .NET 3.5 reduziert sich die Zahl der Baustellen deutlich, denn WPF- und WF-Designer, Ajax ASP.NET und das Language Integrated Query Framework (LINQ) sind endlich ein offizieller Teil der IDE. Dennoch bleibt einiges offen: Sowohl die O/R-Mapping-Technologie Entity Framework als auch der Silverlight-Designer glänzen durch Abwesenheit und sollen im Sommer zusammen mit anderen Verbesserungen wie einem Multitier LINQ to SQL im Rahmen eines 2008-Updates nachgeliefert werden.

Es darf getestet werden

Unit-Testing ist ein fester Bestandteil von Visual Studio 2008 Professional.

Überaus erfreulich ist der Umstand, dass in der Professional Edition von Visual Studio eine Unterstützung für Unit-Testing fest eingebaut ist, auch für mobile Geräte. Damit gehören Werkzeuge, mit denen sich Unit-Tests erstellen, ausführen und auswerten lassen, endlich zum festen Bestandteil des regulären Visual Studio. Microsoft möchte damit nach eigener Aussage eine "Kultur des Testens" im Bewusstsein auch jener Entwickler verankern, die mit dem automatisierten Testen ihres Codes bislang nicht viel am Hut hatten. Einen Testrahmen für ein Projekt anzulegen könnte einfacher nicht sein. Über einen Klick mit der rechten Maustaste in das Codefenster wird der Befehl zum Anlegen eines Komponententests ausgewählt. Die IDE fügt daraufhin ein neues Testprojekt hinzu, in das für jede der zuvor in einem Dialogfeld ausgewählten Methoden entsprechende Testverfahren angelegt werden. Sind alle Tests einsatzbereit, werden sie durch Starten des Testprojekts zur Ausführung gebracht und das Ergebnis in einem eigenen Fenster zusammengefasst.

Die Zukunft der Benutzeroberflächen

Die wenig euphorische Reaktion auf Windows Vista hat sicher nichts damit zu tun, dass sich die WPF als inoffizieller Nachfolger der WinForms noch nicht hat durchsetzen können. Der neue WPF-Designer ist ein erster Schritt in Richtung mehr Akzeptanz, denn bislang war Microsoft den Entwicklern ein offizielles Tool schuldig geblieben. Der WPF-Designer ist relativ komfortabel und reaktionsfreudig, bietet eine zweigeteilte Entwurf/XAML-Ansicht, aber nur einen Bruchteil der Möglichkeiten, welche die WPF-Klassen zur Verfügung stellen. Die Arbeitsteilung der Zukunft sieht daher so aus, dass ein Designer mit Microsofts "Expression Blend" eine Oberfläche erstellt und der Entwickler in Visual Studio den Code ergänzt. Auch wenn Blend das Visual-Studio-Projektformat verwendet und sich daher als natürliche Erweiterung von Visual Studio versteht, wird es noch eine Weile dauern, bis WPF die Bedeutung von WinForms, die offiziell nicht mehr weiterentwickelt werden, erlangt.

Das weiß auch Microsoft und setzt deshalb mehr auf Interoperabilität als auf Verdrängung. Mit der ElementHost-Komponente lassen sich WPF-UserControls komfortabel auf einem WinForms-Formular platzieren. Umgekehrt können über den WinFormsHost WinForms-Elemente in eine WPF-Anwendung eingebaut werden. Wer WPF-Anwendungen erstellen möchte, benötigt dazu nicht unbedingt Visual Studio 2008, denn auch die Open-Source-IDE "SharpDevelop" bietet in Version 3 einen komfortablen WPF-Designer.

Unmanaged Code wächst und gedeiht

Vista selber wird durch Visual Studio 2008 nur ansatzweise unterstützt. Der einzige direkte Vista-Bezug findet sich in dem Umstand, dass sich für die Ausführung bei aktiver Benutzerkontensteuerung die empfohlene Manifestdatei per Knopfdruck anlegen lässt. Wer die Vista-Oberflächenelemente in seine Anwendung einbauen möchte, muss dazu nach wie vor auf Visual C++ und eine aktualisierte MFC und damit wie eh und je auf Unmanaged Code zurückgreifen. Überhaupt hat man in Redmond seit einiger Zeit C++ wieder richtig lieb gewonnen, was sich nicht nur durch zahlreiche Verbesserungen an Visual C++ 2008 (intern besitzt der Compiler bereits die Versionsnummer 15), sondern auch durch ehrgeizige Ziele für die kommende Version 10 bemerkbar macht.

VSTO 3.0 ? Managed Code fürs Office

Mit Visual Studio 2008 erhalten Office-Entwickler die komplette Funktionalität der Visual Studio Tools for Office 3.0 auch in der Professional Edition. Damit lassen sich Erweiterungen auf Anwendungsebene (Add-ins) für alle großen Office-2003/2007-Anwendungen erstellen und Erweiterungen auf Dokumentenebene für Excel und Word 2003/2007. Zu den Neuerungen gehört auch ein komfortabler Ribbon-Designer, mit dessen Hilfe sich Multifunktionsleisten für Office-2007-Erweiterungen ähnlich komfortabel erstellen lassen wie WinForms-Formulare. Ferner gibt es einen Designer für Outlook-Formularbereiche und weitere Kleinigkeiten wie eine Datenbindung an Word-Inhaltsbereiche und eine noch direktere Integration zwischen VSTO und VBA. Die wichtigste Neuerung hier betrifft die Auslieferung von VSTO-Anwendungen. Mussten dazu in der Vergangenheit auf jedem System Sicherheitsrichtlinien angelegt werden, genügt nun als Vertrauensbeweis für sämtliche zur Anwendung gehörenden Dateien ein Zertifikat. Ein kleiner Wermutstropfen bleibt aber, denn diese Komfortvariante funktioniert leider nur mit .NET 3.5 und Office 2007.

LINQ to SQL ? erste Schritte in Richtung O/R Mapper

Der LINQ-to-SQL-Designer mappt Tabellen auf Klassen.

Das Language Integrated Query Framework (LINQ) ist ein Teil von .NET 3.5, C# 3.0 und VB 9.0. In Visual Studio 2008 tritt es (sogar in den Express-Editionen) nur durch eine unscheinbare Vorlage mit dem Namen LINQ-to-SQL-Klassen in Erscheinung. Dahinter verbirgt sich nicht weniger als der offizielle Eintritt von Microsoft in den Markt der O/R-Mapper. Entwickler ziehen Tabellen aus dem Server-Explorer auf den Designer und legen damit eine Zwischenschicht an, gegen die LINQ-Abfragen zum Abruf der Daten erstellt werden können. Das Aktualisieren der Daten geschieht direkt über diesen Layer. Das intern generierte SQL kann nicht nur sichtbar gemacht, sondern auf Wunsch auch modifiziert werden, bevor es an den SQL Server geschickt wird. LINQ to SQL bietet allerdings nur ein Minimum an Funktionen und läuft zudem nur mit dem Microsoft SQL Server. Erst das kommende LINQ to Entity wird als allgemeine O/R-Mapping-Technologie für alle DBMS-Typen offen sein. Erwähnenswert ist in diesem Zusammenhang, dass mit Visual Studio 2008 auch eine SQL Server 2005 Compact Edition installiert wird. Diese schlanke SQL-Engine arbeitet dateiorientiert, läuft sowohl auf Desktops als auch auf mobilen Geräten und übernimmt im Zusammenhang mit den neuen Sync Services for ADO.NET die Rolle des lokalen Cache.

Neuerungen im Team System

Auch im oberen Preissegment, den Werkzeugen für das Application-Lifecycle-Management (ALM), gibt es Neuerungen. Da wäre zunächst die beinahe obligatorische Namensänderung. Aus der alten Produktbezeichnung "Visual Studio Team System Edition for Software Developers" wird in der aktuellen Version zum Beispiel die "Visual Studio Team System 2008 Development Edition", wobei zu den Editionen "Development", "Architecture" und "Test" die "Database"-Edition hinzugekommen ist. Da es selbst Microsoft-Mitarbeiter in ihren Blogs mit korrekten Produktbezeichnungen nicht ganz so genau nehmen, fällt es manchmal schwer, den Überblick über die offiziellen Namen zu behalten. Klarheit schafft hier der "Visual Studio 2008 Product Guide", der als Word-Dokument (VS2008ProductGuideEMEA.doc) zum Download bereitsteht.

Natürlich hat die neue Team-System-Version sehr viel mehr zu bieten als nur Namensänderungen. Verbessert wurden die Codeanalyse, Codemetriken und Codeabdeckung, um die Effektivität von Unit-Tests überprüfen zu können. Außerdem gibt es eine Profiler-Unterstützung für WCF-Anwendungen. Die vielen Änderungen im Team Foundation Server beschreibt Microsoft-Mitarbeiter Brian Harry ausführlich in seinem Blog. Die Neuerungen sollten jedoch nicht darüber hinwegtäuschen, dass es sich beim Visual Studio Team System 2008 nur um ein Zwischen-Update handelt. An dem eigentlichen Nachfolger wird unter dem Codenamen "Rosario" parallel gearbeitet, was selbst für Microsoft ein wenig ungewöhnlich ist. Er soll noch in diesem Jahr ausgeliefert werden.

Eclipse als Konkurrent und Vorbild

Bestand die Microsoft-Entwicklerkonkurrenz früher überwiegend aus Firmen wie Borland oder Watcom, ist es heutzutage die freie Eclipse-IDE, die gegen Visual Studio mit Argumenten wie Plattformunabhängigkeit und einer ebenso großen wie hyperaktiven Community antritt. Doch auch Microsoft hat die Bedeutung der Community-Bildung erkannt und bietet unter der Bezeichnung "Model Driven Software Development" einen ähnlichen Ansatz für die Bereitstellung von Plug-Ins, Vorlagen und Modellen. Im direkten Vergleich zu Eclipse schneidet Visual Studio als Entwicklungswerkzeug für Windows- und Web-Anwendungen deutlich besser ab. Keine andere IDE bietet so viele Produktivitätsmerkmale für so unterschiedliche Anwendungstypen von WinForms über WPF, mobile und Web-Anwendungen bis zu VSTO und WF. Visual Studio ist die IDE, mit der Entwickler für eine große Auswahl an Projekttypen praktisch aus dem Stand heraus produktiv arbeiten können. Dass man in Redmond die Konkurrenz trotzdem ernst nimmt, machen Aktivitäten wie die kürzlich ins Leben gerufene Gruppe "Visual Studio Extensibility" (VSX) deutlich, die alle Aktivitäten im "Visual Studio Eco System" bündeln soll. Auch der Umstand, dass Microsoft Entwicklern die IDE unter dem Namen "Visual Studio Shell" kostenlos zur Integration in ihre Anwendungen zur Verfügung stellt, unterstreicht dies. Hier folgt man Konzepten, die bei Ecplise von Anfang selbstverständlich waren.

Ausblick auf Version 10

In Bezug auf das derzeit bestimmende IT-Thema der Service-orientierten Architekturen (SOA) hat Visual Studio 2008 noch nicht viel zu bieten. Der SOA-Fokus kommt offensichtlich erst mit dem 2008-Nachfolger Visual Studio 10, das als Werkzeug positioniert wird, mit dem sich Composite-Anwendungen für die von Microsoft geplante SOA-Plattform "Oslo" umsetzen lassen. Eine erste Vorabversion wird anlässlich der Professional Developers Conference 2008 im Oktober erwartet.

Umsteigen oder nicht?

Der Umstieg auf Visual Studio 2008 dürfte für die meisten Entwickler kein Problem sein, da die neue Version zahlreiche Verbesserungen in Sachen Komfort mit sich bringt und keine Nachteile durch Inkompatibilitäten zu befürchten sind. Wie immer gibt es Probierversionen zum Download (auch als Images für den Virtual PC), die 90 Tage lang benutzt werden können.

Neuerungen auf einen Blick

Visual Basic und C# - zwei Sprachen, zwei Weltanschauungen

Verbessertes Intellisense für Visual Basic 9.

Anders als auf der Java-Plattform leistet sich Microsoft bei .NET den Luxus zweier Programmiersprachen. Dies hat weniger technische, sondern eher strategische Gründe, da Visual-Basic-Entwickler seit Jahren treu der Microsoft-Entwicklungsstrategie folgen und für sie der Wechsel zu einer anderen Sprache im Allgemeinen nicht in Frage kommt. Das Trauma, das der abrupte Wechsel von VB6 auf .NET vor ein paar Jahren hervorrief, ist vielen noch in schlechter Erinnerung. Visual Basic ist jedoch kein "C# Light". Die Eigenständigkeit wird in der aktuellen Version VB9 durch die nahtlose und beeindruckende XML-Integration unterstrichen, die es bei C# nicht einmal ansatzweise gibt.

In Kombination mit LINQ ergeben sich leistungsfähige Query-Möglichkeiten für ad hoc anfallende XML-Daten, wie sie zum Beispiel durch einen RSS-Feed oder einen Web-Service geliefert werden. Kommende Versionen von Visual Basic sollen, unterstützt durch die vor einiger Zeit angekündigte Dynamic Language Runtime (DLR), überall dort zum Einsatz kommen, wo ein typenstrenge Compilersprache mit dynamischen Fähigkeiten benötigt wird. Auch wenn sich Microsoft eigene Implementierungen von Python und Ruby leistet, eine strategische Bedeutung werden diese Sprachen nicht erlangen. (ue)