Genügt das kostenfreie Visual Studio Express oder muss man eine "Professional"-Variante kaufen?
Seite 2: Projektvorlagen
Weniger Projektvorlagen
Die Express-Versionen weichen primär vom kommerziellen Visual Studio dadurch ab, dass es für unterschiedliche Sprachen und Anwendungsbereiche eigene Produkte gibt. In der kommerziellen Version findet der Entwickler Projektvorlagen für die Sprachen C#, Visual Basic und C++ sowie für Desktop- und Webanwendungen (siehe Abb. 1). In einer Projektmappe kann der Entwickler Projekte in diversen Sprachen und unterschiedlichen Anwendungsarten zusammenfassen.
Mit C# Express, Visual Basic Express und C++ Express kann man hingegen nur Desktop-Anwendungen in einer Sprache entwickeln. In einer Projektmappe lassen sich keine Sprachen mischen. Visual Web Developer Express hingegen dient nur der Entwicklung von ASP.NET-Anwendungen. Hier kann man Visual Basic und C# verwenden (C++ gibt es grundsätzlich nicht für ASP.NET) und die Sprachen innerhalb eines Webprojekts mischen, wie es in ASP.NET üblich ist. Visual Web Developer Express kennt aber keine Projektmappen. Es lässt sich immer nur ein Projekt in einer Instanz der Entwicklungsumgebung bearbeiten.
Abbildung 2 zeigt die Projektvorlagen für Visual C# Express. Die drei wichtigsten Benutzeroberflächenarten – Konsolenanwendungen, Windows Forms und Windows Presentation Foundation (WPF) – unterstützt es ebenso wie Klassenbibliotheken. Gegenüber den kommerziellen Varianten fehlen Windows-Systemdienst, Erweiterungen für Microsoft Office, Anwendungen für Pocket PCs und Smartphones, .NET-Projekte für SQL Server, Testprojekte und die Unterstützung für Enterprise-Projekte mit Windows Communication Foundation (WCF) und Windows Workflow Foundation (WF). Ebenso gibt es keine Setup-Projekte zur Erstellung von MSI-Paketen und keine Add-ins, um Visual Studio zu erweitern. Das heißt nicht, dass man nicht alle Anwendungsarten mit den Express-Varianten entwickeln kann, aber dass den Express-Varianten dafür die Projektvorlagen mit dem zugehörigen Designer und Assistenten fehlen, die der Produktivität der Entwickler dienen. Es steht dem Programmierer, der eine Express-Variante nutzt, aber frei, eine Referenz auf Bibliotheken wie System.ServiceModel (WCF), System.Workflow.Runtime (WF) oder System.ServiceProcess (Windows-Systemdienste) anzulegen und sie "zu Fuß" zu verwenden.
Bei den Webprojektvorlagen in Visual Web Developer Express fehlt gegenüber dem kommerziellen Visual Studio im Wesentlichen nur "ASP.NET Web Service", eine Vorlage für die ältere Webservice-Bibliothek in .NET. Es unterstützt die neuere Bibliothek (WCF), und man kann Klassenbibliotheken mit Visual Web Developer Express seit dem Service Pack 1 entwickeln.
Das Projektformat der Express-Varianten ist kompatibel zum kommerziellen Visual Studio. Das bedeutet, dass man Express-Projekte in Visual Studio Professional und umgekehrt öffnen kann. Es lassen sich alle Express-Varianten parallel auf einem System installieren und so doch mehrere Programmiersprachen (allerdings nur in unterschiedlichen Fenstern) nutzen. Der Parallelbetrieb mit den kommerziellen Versionen ist möglich. Abzuraten ist nur von einer Mischung der Sprachversionen, da dann das Chaos aus Abbildung 4 entsteht.
Multi-Targeting
Visual Studio 2008 zeichnet sich dadurch aus, dass man damit gleichermaßen Anwendungen für .NET Framework 2.0, 3.0 und 3.5 entwickeln kann. Schon der Projektdialog (siehe Abb. 1) bietet eine Auswahl. Alle in der Entwicklungsumgebung angebotenen Funktionen (zum Beispiel referenzierbare Bibliotheken) richten sich danach. In den Projektauswahldialogen der Express-Varianten scheint die Funktion zu fehlen; die Entwicklungsumgebung zeigt immer ".NET Framework 3.5" an. Doch nach dem Anlegen kann man in den Projekteigenschaften die Versionsanforderung herunterschrauben (siehe Abb. 5). Allerdings gibt es unsinnige Konstellationen: Als Projekt "WPF Application" zu wählen und dann ".NET Framework 2.0" einzustellen zu können, ergibt keinen Sinn, denn WPF gibt es erst ab .NET 3.0.
Typische Desktop- und Webanwendungen kann man für .NET 2.0, 3.0 und 3.5 mit den Express-Varianten entwickeln. Es lassen sich zudem wiederverwendbare Klassenbibliotheken anlegen. Nur im Visual Web Developer kann man nicht ein Webprojekt und eine Klassenbibliotheken in einem Fenster bearbeiten. Es sind mehrere Instanzen von Visual Studio zu starten, eine für das Webprojekt und die andere für die Klassenbibliothek. Der Entwickler kann dann nicht das Projekt, sondern nur das Kompilat referenzieren und muss bei Änderungen der Klassenbibliothek in der zweiten "Visual Web Developer"-Instanz zuerst kompilieren. Beim anschließenden Kompilieren in der Instanz mit dem Webprojekt merkt Visual Web Developer, dass sich das Kompilat geändert hat, und kopiert die aktualisierte DLL automatisch in das Webprojekt.
Alle wesentlichen Visual-Studio-Funktionen sind vorhanden: Code-Editor mit Syntaxhervorhebung und IntelliSense-Eingabeunterstützung, Code Snippets und Refactoring, grafische Designer für Benutzeroberflächen (Windows Forms, WPF, HTML/CSS), das Referenzieren von Softwarekomponenten, das Generieren von Proxies für Webservices, das Erstellen von SQL-Server-Datenbanken (inklusive "SQL Server Compact"-Variante) und die Drag&Drop-Erzeugung von Datenmasken. Assistenten sowie Designer für typisierte Datasets und sogar für das objektrelationale Mapping mit LINQ-to-SQL beziehungsweise dem ADO.NET Entity Framework gibt es ebenfalls.