Produktbewertung: Visual Studio 2008 wird mit wenigen Fehltritten weiterentwickelt

Microsoft Visual Studio 2008 (VS08) ist die aktuelle Version der langen IDE-Reihe des Unternehmens. Es ist die führende IDE für die Entwicklung von Anwendungen mit dem Microsoft .NET Framework und zumindest ein Anwärter auf die beste von Windows gehostete C / C ++ - IDE. Natürlich ist Visual Studio 2008 nicht auf die Entwicklung von Desktop-Anwendungen beschränkt. Es eignet sich auch für die Entwicklung von Web-, SOA- und Geräteanwendungen. Diese Version bietet Unterstützung für .Net Framework 3.5 und unterstützt auch andere Versionen von .Net Framework. Außerdem wird die sprachintegrierte Abfrage eingeführt, eine allgemeine Methode zum Abfragen aller Arten von Daten in C # und Visual Basic sowie die vollständige Unterstützung für Windows Vista, Silverlight und Windows Presentation Foundation.

VS08 ist in einer Reihe von Editionen erhältlich, von den kostenlosen Express-Editionen bis zur Visual Studio Team System 2008 Team Suite für 10.000 US-Dollar. Grundsätzlich sind die Express-Editionen für Anfänger, Studenten und Bastler gedacht. Die Standard Edition richtet sich an einzelne Entwickler. Die Professional Edition richtet sich an fortgeschrittene Entwickler und diejenigen, die in kleinen Teams arbeiten.

Das Team-System ist hauptsächlich für größere Teams gedacht. Es gibt Team System-Clients für Entwickler, Architekten, Datenbankadministratoren und Tester sowie einen kombinierten Client für alle Rollen namens Team Suite. Der Server für Team System ist Team Foundation Server (TFS), der ein Teamportal, Versionskontrolle, Workitem-Tracking, Build-Management, Prozessführung und Business Intelligence kombiniert.

In diesem Test werde ich mich auf die Funktionen der VS08 Professional Edition konzentrieren und einige der Highlights der Team Suite ansprechen. Ich werde nicht versuchen, Team Foundation Server als solchen zu diskutieren, obwohl es seit unserer letzten Überprüfung zahlreiche Verbesserungen erhalten hat, z. B. ein neues Teambuilding-System und Webzugriff (siehe Tom Yagers Vorschau von Visual Studio 2005 vom Mai 2004).

Installation und Test

Ich habe ausführlich (hier und hier) über meine Versuche und Schwierigkeiten bei der Installation von Team Suite gebloggt. Nichts davon sollte Sie betreffen, es sei denn, Sie versuchen, VS08 von einem Computer zu deinstallieren, der auch VS05 enthält. Es kann jedoch sinnvoll sein, vor dem Start der Installation eine Image-Sicherung Ihres Systems zu erstellen. Erwarten Sie, dass eine VS08-Installation mehrere Stunden dauert und ein manueller Eingriff erforderlich ist, um den Dokumentationsinstallationsschritt zu starten.

Ich habe die VS08 Team Suite fast den ganzen Tag, fünf Tage die Woche, mehrere Wochen lang auf meinem XP-Desktop ausgeführt und versucht, sie für alle meine Entwicklungsarbeiten zu verwenden. Ich habe auch eine Reihe individueller Entwicklungsszenarien mit der Professional Edition auf dem Vista-Laptop durchlaufen und einige Gruppenentwicklungsszenarien auf dem virtuellen Team Suite / TFS-PC simuliert. Eine Warnung: Wenn Sie unter Windows Vista mit aktivierter Benutzerkontensteuerung (User Account Control, UAC) installieren, müssen Sie VS08 einige Male als Administrator ausführen, bis alle erforderlichen Verzeichnisse erstellt wurden. Danach sollte es vollständig UAC-konform sein.

Einführung in .Net Framework 3.5

Ich wünschte, Microsoft wäre etwas weiter in diese Richtung gegangen. Es ist schade, dass Microsoft nicht auch das Targeting für .Net Framework 1.1 und die einfache bidirektionale Konvertierung zwischen VS08-, VS05- und Visual Studio .Net 2003-Projekten bereitgestellt hat.

.Net Framework 3.5 verfügt über eine Reihe neuer Funktionen für Klassenbibliotheken und Sprachen. Dazu gehören sprachintegrierte Abfragen (LINQ), Verbesserungen in Bezug auf Web 2.0 und SOA, integrierter Workflow, Peer-to-Peer-Protokolle und Microsoft Office-Unterstützung.

Das Werkzeug für all dies finden Sie in VS08. So bieten beispielsweise VS08 Standard und höher LINQ-Unterstützung in Visual Basic .Net und Visual C #, einschließlich eines objektrelationalen Designers, des SQLMetal-Befehlszeilentools, LINQ-fähiger Code-Editoren und Debugger-Unterstützung.

Sprachintegrierte Abfragen mit LINQ

Mehrere der in VS08 gelieferten LINQ-Komponenten und -Anbieter, einschließlich LINQ to Objects (Zeichenfolgen, Reflection- und Dateiverzeichnisse), LINQ to XML und LINQ to ADO.Net. LINQ to ADO.Net enthält zwei Komponenten: LINQ to DataSet und LINQ to SQL. Das ehrgeizigere ADO.Net Entity Framework und LINQ to Entities sind nicht in VS08 enthalten, werden jedoch möglicherweise später in diesem Jahr als Add-On ausgeliefert.

Ich habe LINQ to SQL in C # gegen eine SQL Server 2000-Datenbank getestet. Das objektrelationale Diagramm in diesem Bildschirmbild wurde automatisch durch Ziehen der Tabellen aus einer Datenbank generiert. Eine Reihe von aufrufbaren, LINQ-kompatiblen Klassen wurde ebenfalls automatisch generiert.

Der Object Relational Designer hat gut funktioniert, um C # -Klassen aus dem Datenbankschema zu erstellen, und IntelliSense hat gut funktioniert, als ich LINQ-Abfragen geschrieben habe. Andererseits hat das manuelle Schreiben von LINQ-Abfragen anhand von drei verwandten Tabellen die Grenzen meiner aufkommenden LINQ-Kenntnisse überschritten, und ich sehnte mich nach dem LINQ-Äquivalent des grafischen SQL Query Designers von VS08. Ich habe nie herausgefunden, wie man das LINQ-Äquivalent einer SQL-Abfrage "SELECT DISTINCT" schreibt.

IntelliSense, Refactoring, Unit-Tests und Metriken

Als ich an diesem kleinen Projekt arbeitete, stellte ich fest, dass die C # -Refactoring-Funktionalität (in Professional und höher enthalten) gut und reibungslos funktionierte. Beim Bearbeiten von C # kann der Programmierer das automatische Refactoring nutzen, wie im Popup-Menü dieses Bildschirmbilds gezeigt. Es gibt volle IntelliSense-Unterstützung für LINQ (siehe den Code, der in der Abbildung mit „var qAV“ beginnt). Codemetriken (am unteren Rand der Abbildung) werden nur für verwalteten Code berechnet.

Ich fand auch, dass die Codemetriken für verwalteten Code (in VSTS Developer und Team Suite enthalten) ziemlich gut funktionierten. Ich bin mir nicht sicher, ob ich mit der Art und Weise einverstanden bin, wie die Metriken für Code berechnet werden, der aus Entwurfsoberflächen generiert wurde, aber ich kann den allgemeinen Nutzen der Metriken sehen, insbesondere im Zusammenhang mit Teamprojekten, die mit TFS verwaltet werden.

Ich habe vor Jahren Metriken wie die zyklomatische Komplexität (ein Maß für die Anzahl linear unabhängiger Pfade durch ein Programmmodul) verwendet, um ein großes C-Projekt mit einem Dutzend Programmierern zu verwalten. Ich freue mich, dass diese Technologie in VS08 für verwalteten Code eingeführt wurde.

Ich bin jedoch enttäuscht, dass Codemetriken und Code-Refactoring für nicht verwaltete C ++ - Projekte nicht verfügbar sind. Auf der anderen Seite können C ++ - Projekte einen sehr schönen Aufrufbrowser verwenden: Er bietet Ihnen eine kompakte Ansicht der anderen Funktionen, die eine bestimmte Funktion aufrufen, und der Codezeilen, die die Aufrufe ausführen.

Ich bin froh, dass Visual Basic-Projekte Codemetriken sowie eine unglaublich präzise Syntax, großartiges IntelliSense und viele Codefragmente enthalten. Ich bin enttäuscht, dass Visual Basic-Projekte kein Code-Refactoring haben, obwohl diese Funktionalität mithilfe eines von mehreren Plug-Ins von Drittanbietern hinzugefügt werden kann.

Ich freue mich, Ihnen mitteilen zu können, dass Unit-Tests jetzt ein Merkmal der Professional Edition sind. (Es war eine VSTS-Funktion in VS05.) Sie können Komponententests und Testprojekte für C # -, Visual Basic- und verwaltete C ++ - Lösungen erstellen. Dies war vor der Verwendung des kostenlosen Open-Source-Programms NUnit möglich, aber es ist etwas schöner, wenn die Unit-Test-Funktion in die IDE integriert ist.

IntelliSense für JavaScript war eine der versprochenen Verbesserungen in VS08. Es ist da, aber zu einem Preis: Obwohl die Unterstützung für die Art von JavaScript, die zum Schreiben von ASP.Net AJAX- und Silverlight-Seiten verwendet wird, hinzugefügt wurde, wurde die Unterstützung für die Bearbeitung von VBScript und Classic ASP eingestellt. Da ich immer noch eine klassische ASP-Site aus dem Jahr 1999 pflege, war ich mehr als ein wenig verärgert darüber, dass VS08 mit ASP-Seiten schlechtere Arbeit geleistet hat als VS05 oder sogar Visual InterDev 6. Microsoft erwägt, diese Funktionalität für ein Service Pack wiederherzustellen zu VS08. In der Zwischenzeit sollten Personen, die noch klassische ASP-Sites verwalten, ihre vorhandenen Tools nicht aufgeben.

WPF, Silverlight und Web 2.0

VS08 unterstützt Silverlight, eine umfangreiche Internetanwendungstechnologie, die eine Teilmenge von WPF enthält, sobald Sie das Silverlight SDK und die Silverlight Tools für VS08 installiert haben. Ich hatte gute Erfahrungen mit der Entwicklung von Silverlight-Anwendungen mit einer Beta-Version von VS08. (Meine Übersicht über Silverlight selbst finden Sie unter "Microsoft Silverlight konkurriert mit Flash, AJAX".)

Mit Ausnahme der fehlgeschlagenen Unterstützung für VBScript und Classic ASP ist die Webseiten-Designoberfläche in VS08 besser als die von VS05. Es ist Expression Web sehr ähnlich und unterstützt CSS sehr gut. Entwurfsoberflächen und Projekte für ASP.Net AJAX, Windows Communications Foundation und Windows Workflow Foundation, die kostenlose Add-Ons zu VS05 waren, wurden auf das Basisprodukt VS08 verschoben.

Office- und Smart Device-Ziele

VS08 kann ein verwaltetes Smart Device-Projekt für vier Zielplattformen und zwei Versionen des .Net Compact Framework in C # und Visual Basic erstellen. In C ++ kann VS08 nicht verwaltete Smart Device-Projekte mit den Bibliotheken Win32, ATL (Active Template Library) und MFC (Microsoft Foundation Class) erstellen. Diese Funktion befand sich früher in einem separaten Windows CE-Toolkit.

Krimskrams

Microsoft SQL Server Compact 3.5 ist eine neue lokale Datenbank, die klein genug ist, um auf intelligenten Geräten bereitgestellt zu werden. Entwickler können es sowohl in eigenständigen als auch in gelegentlich verbundenen Szenarien verwenden. Wenn SQL Server Compact für das Zwischenspeichern lokaler Datenbanken verwendet wird, sorgt Microsoft Synchronization Services für ADO.Net für die regelmäßige Synchronisierung zwischen der lokalen Compact-Datenbank und der entfernten Datenbank.

Wenn eine Team Foundation Server-Installation erkannt wird, kann Visual Studio diese integrieren. Auf diese Weise kann ein Programmierer Arbeitselemente empfangen und einchecken, und ein Manager kann Berichte wie den hier gezeigten erstellen.

Team System hat eine Reihe von Verbesserungen. Ein wichtiger Punkt in TFS ist ein neues Team Build-System. Ein anderer ist der Webzugriff. Architekten haben einen neuen Top-Down-Systemdesigner und ein architektonisches Rollensystem. Entwickler haben das neue Code-Metrik-System, das ich zuvor besprochen habe, sowie bessere Tools für Code-Analyse und Leistung. Datenbankadministratoren verfügen über eine T-SQL-Code-Analyse, einen Datengenerator und Refactoring-Tools. Tester verfügen über bessere Tools und Validierungsregeln, einschließlich eines Test Load Agent.

Visual Studio verfügt über ein aktives Ökosystem unabhängiger Softwareanbieter. Die meisten dieser Anbieter stellen Plug-Ins und Steuerelemente her, die Visual Studio verbessern. Mit einer neuen Visual Studio-Shell können diese Anbieter eigenständige Versionen ihrer Produkte versenden, für die der Kunde Visual Studio nicht ordnungsgemäß kaufen muss. Ich begrüße diesen Schritt von Microsoft: Ich denke, er macht das Ökosystem gesünder, weil die ISVs dadurch zu relativ geringen Kosten für Microsoft wettbewerbsfähiger werden können.

Insgesamt ist Visual Studio 2008 ein Upgrade, das die meisten Microsoft-orientierten Entwicklungsgeschäfte durchführen möchten, um mit neuen Technologien wie WPF, WCF und WF sowie für neue Plattformen wie Windows Vista zu entwickeln. Es ist jedoch kein Upgrade, das leicht stückweise hergestellt werden kann. Ich würde den meisten Shops empfehlen, alle Entwickler eines Projekts zu aktualisieren, sobald das Projekt selbst erfolgreich aktualisiert wurde. Nach meiner Erfahrung war das Aktualisieren von Projekten von VS05 auf VS08 relativ problemlos, da nur sehr wenig Code neu geschrieben werden musste.

Für Shops, die weiterhin klassische ASP-Sites verwalten, würde ich empfehlen, VS08 neben VS05 zu installieren, zumindest bis die Bearbeitungsfunktionen für Classic ASP und VBScript wiederhergestellt sind. Und für Geschäfte, die aufgrund von Problemen mit VS05 immer noch Visual Studio .Net 2003 oder ältere Versionen verwenden, würde ich empfehlen, VS08 ernsthaft zu evaluieren.

Mit wenigen Ausnahmen wird die Version 2008 für Benutzer aller Visual Studio-Versionen verbessert. Es ist ein starkes Upgrade und eine solide Grundlage für die zukünftige Entwicklung.

Scorecard Wert (10,0%) Fähigkeit (30,0%) Leistung (15,0%) Einfache Entwicklung (30,0%) Dokumentation (15,0%) Gesamtpunktzahl (100%)
Microsoft Visual Studio 2008 Professional und Microsoft Visual Studio Team System 2008 Team Suite 9.0 10.0 9.0 9.0 9.0 9.3