Visual Studio 2008
26.11.2007, 13:40 Uhr
Mehr Komfort fürs Web
Bei Visual Studio 2008 gilt das bewährte Motto «Evolution statt Revolution». Mehr Komfort durch Eingabehilfen, IntelliSense und ein Debugger für JavaScript, die nahtlose Integration von AJAX und eine deutliche Geschwindigkeitssteigerung der IDE zeichnen die neue Version aus.
Hannes Preishuber ist Inhaber einer Beratungs- und Schulungsfirma in Burghausen (Deutschland), die sich seit vielen Jahren auf die Microsoft-Entwicklerprodukte spezialisiert hat.
Das .NET Framework liegt bereits in der Version 3.5 vor, obwohl es sich streng genommen um ein stark erweitertes 2.0 handelt. Der Umfang der Klassenbibliothek hat sich zwar beinahe verdoppelt. Doch der Kern und die CLR basieren, wie der -Vorgänger Visual Studio 2005, auf Version 2.0. Damit es für Entwickler nicht unübersichtlich wird und die Entscheidung für den Einsatz von VS 2008 nicht davon abhängt, welche .NET-Version unterstützt werden muss, lässt sich die Versionsnummer für jedes Projekt zwischen 2.0, 3.0 und 3.5 auswählen. Damit lässt sich erstmalig ein und dasselbe Projekt für verschiedene .NET-Versionen kompilieren. Die wichtigste Neuerung ist LINQ, das Datenabfragen in einer an SQL angelehnten Syntax für beliebige Datenquellen direkt im Quellcode erlaubt. (LINQ wurde in der Developerworl 5/2007 vom 11. Mai 2007 bereits ausführlich vorgestellt.) Zudem ist, laut Microsoft, der Datenzugriff mit LINQ auch noch rund zehn Prozent schneller. Interessanter als die Technik ist die Frage, wie LINQ in das kommende Visual Studio integriert wird. Hier spielt vor allem LINQ to SQL eine Rolle, das Entwicklern beim Zugriff auf MS SQL-Server-Datenbanken das mühselige Auscodieren von SQL- Kommandos mit SQLDataReader und SQLDataAdapter erspart. Visual Studio 2008 bietet einen visuellen LINQ to SQL-Modellierer, der die passenden Zugriffsklassen erzeugt. Diese werden in das App_code-Verzeichnis mit der Erweiterung .dbml abgelegt. Auch die beiden «Hauptsprachen» C# und Visual Basic wurden geringfügig erweitert und bieten, was den Umgang mit Typen angeht, deutlich mehr Komfort.
Wenig Neues bei ASP.NET
Streng betrachtet gibt es bei ASP.NET kaum etwas Neues. Der grösste Vorteil für Web-Entwickler ist, dass bei VS 2008 alles vereint ist. AJAX muss nicht länger nachinstalliert werden, sondern ist im Setup enthalten. Da durch AJAX und das neue Silverlight (das in der Beta 2, die diesem Überblick zugrunde liegt, nicht enthalten war) die Nutzung von JScript deutlich zunimmt, hilft die IDE beim Kodieren mit IntelliSense und bei der Fehlersuche mit einem verbesserten Debugger. Dieser kann endlich auch JScript debuggen (einen XSLT-Debugger gab es bereits beim Vorgänger). Dank IntelliSense werden die Eigenschaften von DOM-Elementen, wie etwa «Value» für den Inhalt eines Input-Elements, in einer Auswahlliste angeboten, was zu jenen Kleinigkeiten gehört, die sich ASP.NET-Entwickler schon lange gewünscht haben. Per [Strg]-Taste wird der IntelliSense-Dialog sogar transparent, um den dahinter liegenden Code lesen zu können. Im JScript-Code lassen sich Haltepunkte platzieren (in Abbildung 1 rot dargestellt), die zum Programmhalt führen, wenn das Projekt mit [F5] gestartet wird. Wie bei Managed-Code-Anwendungen lassen sich beim Erreichen eines Haltepunktes mit den neuen Anzeigehilfen (Visualizer) die Daten der Objekte im Detail betrachten.
Mehr Komfort mit dem ListView-Control
In der Werkzeugleiste von Visual Studio 2008 finden sich auch Steuerelemente für AJAX und LINQ. Passend zu LINQ gibt es das LINQDataSource-Steuerelement, mit dem eine LINQ-Klasse angesprochen wird. Für die Visualisierung der abgerufenen Daten können altbekannte Steuerelemente wie GridView und DetailsView eingesetzt werden. Es gibt aber auch eine Neuerung, die das ASP.NET-Team den Entwicklern für diesen Zweck spendiert: Mit dem neuen ListView-Control wird die Funktionalität des GridViews mit der des DetailsViews vereint. Die wichtigste Neuerung ist, dass auch neue Datensätze direkt und ohne Umwege eingefügt werden können. Dazu kommt ein Pager, der ebenfalls als eigenes Steuerelement vorliegt. Damit kann die komplette Datensatznavigation mit dem DataPager frei auf der Webseite platziert werden.
Die deklarative Kodierung dieser beiden Steuerelemente ist allerdings etwas ungewohnt. Mit Hilfe von Templates, die ein wenig an XSLT erinnern, erhält der Entwickler exakte Kontrolle über den gerenderten HTML-Code. Eines dieser Templates ist das Layout-Template, in dem der Rahmen der Darstellung erstellt wird. Das kann beispielsweise ein HTML-Tabellenkonstrukt sein. Im Beispiel in Listing 1wird eine DIV-Darstellung gewählt. Das Server-Element mit der ID Itemcontainer wird zur Laufzeit durch die Daten ersetzt.
Listing 1: Ein einfaches Layout-Template
»>
kopf
fuss
kopf
fuss
Die Datensätze werden wie mit dem Repeater-Steuerelement durch Datenbindung dargestellt.
<%# Eval(«Country»)
%>
Weitere neue Features sind eine gruppierte Darstellung und Templates für fehlende Daten. Visual Studio 2008 bietet zwar einen Design-Assistenten zum ListView-Steuer-element, der aber aktuell eine eher bescheidene Funktionalität aufweist.
AJAX, mit dem Webseiten einzelne Daten nachladen können, ohne dass die komplette Seite neu aufgebaut werden muss, ist längst keine Neuigkeit mehr, dennoch ist es interessant, wie das lange Zeit nur als Erweiterung erhältliche ASP.NET AJAX in VS 2008 integriert wurde. Zu den Neuerungen gehört, dass sämtliche Steuerelemente mit dem AJAX-UpdatePanel vernünftig zusammenarbeiten. Bisher machten z.B. Webparts, die Menü-Steuerelemente und die Validatoren gewisse Probleme. Kleine Ergänzungen haben auch der Membership- und der Profile-Provider erfahren. Diese unterstützen beim Objekttransfer neuerdings die Datenformate SOAP und JSON, wobei sich Letzteres als Standard im AJAX-Umfeld etabliert hat.
Design-Unterstützung
Die Entwicklungsumgebung ist der Hobel des Entwicklers. Microsoft ist sich dieser Bedeutung bewusst und kommt daher mit jeder Version auf kleine und raffinierte Neuerungen, mit denen sich die Produktivität steigern lässt. So soll der Compiler dank Multithreading dreimal schneller sein, beim Tippen in der Entwicklungsumgebung sollen Verzögerungen um die Hälfte reduziert werden und IntelliSense kann dank dieser Optimierung seine Listen bis zu zehnmal schneller aufbauen. Ins Auge sticht zuerst vor allem die neue Split-Screen-Darstellung, die es erlaubt, den HTML-Code und die Designdarstellung gleichzeitig betrachten. Dadurch reduziert sich allerdings auch die Code-Darstellung auf gefühlte zehn Prozent des Bildschirms. Damit ist auch eine fehlerfreie Mehrmonitor- und Wide-Screen-Unterstützung möglich. Der Split-Screen lässt sich natürlich deaktivieren, um mehr Platz für den Code zu schaffen. Eine Reihe von neuen visuellen Editoren erlaubt es, Aufgaben ohne externe Werkzeuge direkt in Visual Studio zu erledigen. Dazu gehören Assistenten für Datenzugriff, das O/R-Mapping via LINQ to SQL oder auch das simple Editieren einer Bitmap (Abbildung 2).
Etwas aufregender sind da schon die visuellen Möglichkeiten des neuen HTML/CSS-Editors. Dieser kann nun auch verschachtelte Master Pages korrekt darstellen. Über drei zusätzliche Dialoge im Werkzeugleistenbereich können Styles erstellt, verwaltet und zugewiesen werden. Dabei werden Konflikte, die bei kaskadierenden Style-Zuweisungen entstehen können, im CSS-Property-Fenster angezeigt. Style-Klassen können komfortabel in die Seite eingebettet und auf Wunsch in eine CSS-Datei ausgelagert werden, wenngleich die Bedienerführung in diesem Punkt nicht gerade intuitiv ist. Beim weiteren Stöbern in der neuen IDE fallen zahlreiche neue Menüpunkte auf. Neu ist der Bereich «Data», über den unter anderem ein T SQL-Editor und ein automatisierter Datenvergleich zur Verfügung steht.
Wann umsteigen?
Visual Studio 2008 ist speziell im Hinblick auf Webentwicklung keine Revolution. Diese würde die Entwicklergemeinde zur Zeit auch ganz sicher überfordern. Im Kern bringt die neue Version alles das zusammen, was die verschiedenen Teams von Microsoft in den letzten zwei Jahren als Zusatz zu -Visual Studio 2005 entwickelt haben. Der Umstieg ist gerade wegen der Möglichkeit, das «Target» (also die .NET-Version) auswählen zu können, ohne Risiken. Lediglich die Projektdateien müssen doppelt vorgehalten werden, wenn gleichzeitig noch mit der Vorgängerversion darauf zugegriffen werden soll. Die Codebasis bleibt dieselbe, es muss keine Konvertierung durchgeführt werden. Eine gestiegene Geschwindigkeit und höhere Produktivität sprechen für einen Einsatz unmittelbar nach Verfügbarkeit. Glaubt man den einschlägigen Insider-Blogs wird diese noch für November dieses Jahres erwartet.
Hannes Preishuber