Erste Eindrücke von Microsofts neuer Entwicklungsumgebung

Visual-Basic-Kenner profitieren von Whidbey

12.12.2003
Der als "Whidbey" bezeichnete Nachfolger von Microsofts Entwicklungsumgebung Visual Studio .NET befindet sich derzeit im Alphastadium. Erste Eindrücke vom IDE zeigen: Programmieren wird wieder einfacher, und das nicht zuletzt, weil einige komfortable Funktionen früherer Visual-Basic-Versionen nun wieder zur Verfügung stehen.Von Peter Monadjemi*

"Longhorn ist das Ziel, Whidbey nur ein kleiner Zwischenschritt": Auf diese Kurzformel hätte man die letzte Microsoft-Entwicklerkonferenz PDC in Los Angeles bringen können. Der Windows-XP-Nachfolger war dort der große Star, während das Visual-Studio-Update überraschenderweise nur eine Nebenrolle spielte. Dennoch wäre es falsch, in dem Nachfolger von Visual Studio .NET 2003 lediglich ein weiteres Zwischen-Update auf dem Weg zu Longhorn zu sehen. Visual Studio Whidbey, so der offizielle Name des Entwicklungswerkzeugs, enthält viele signifikante Verbesserungen, sowohl am Integrated Development Environment (IDE) als auch bei den Programmiersprachen C#, Visual Basic.NET und Visual C++.

Insbesondere Visual-Basic-Programmierer werden erfreut feststellen, dass einige verloren geglaubte Eigenschaften wie "Editieren" und "Fortsetzen" sowie eine automatische Datenbindung zurückkehren, und auch die Einfachheit, die Visual Basic einst so populär machte, in fast allen Bereichen wiederfinden. Die wichtigste Neuerung bei Whidbey ist jedoch die enge Integration des SQL-Server-Nachfolgers Yukon, um die Entwicklung von Datenbankanwendungen auf ein neues Niveau zu heben.

Das IDE ist in vielen Bereichen deutlich bedienerfreundlicher gestaltet. Einiges davon, etwa der Umstand, dass beim Verschieben von Fenstern ein Schatten mit den Andockpunkten erscheint, mag auf den ersten Blick als Spielerei erscheinen, erweist sich jedoch schnell als eine überaus nützliche Angelegenheit. Die bereits mit Office XP eingeführten Smart Tags gibt es nun auch in Visual Studio. Das Kontextmenü wird damit zum Dreh- und Angelpunkt für die meisten Aktionen innerhalb der IDE. Bei Programmierfehlern erscheint ein Smart-Tag-Auswahlmenü, in dem mögliche Alternativen angeboten werden. Fehlermeldungen werden in großzügig bemessenen Dialogboxen ausführlich beschrieben.

Allein diese beiden Features sollen die Einarbeitungszeit deutlich reduzieren. Doch es gibt noch mehr: Das von vielen Visual-Basic-Programmierern in der ersten Version von Visual Studio .NET beinahe schmerzlich vermisste Editieren des Programmcodes während einer Programmunterbrechung steht ab Whidbey wieder zur Verfügung. Auch der Umstand, dass mit der Anlage eines neuen Projekts nicht mehr automatisch ein Verzeichnis angelegt werden muss (dafür gibt es eine AutoSave- und Recovery-Funktion), trägt zur leichteren Eingewöhnung bei. Visual-Basic-Programmierer denken sicher an die guten alten Tage von Visual Basic 3.0, denn das Ablegen von Steuerelementen oder Tabellen auf einem Formular führt wieder zu komplett datengebundenen Elementen, da über die neuen Controls "DataContainer" (eine Art Daten-Steuerelement für ADO.NET) und "DataSource" eine direkte Anbindung an die Datenbank möglich ist. Anstatt für den Zugriff auf eine Access-Datenbank jedes Mal einen Connectionstring zusammenbauen zu müssen, genügt es wie früher, den Pfad der Mdb-Datei anzugeben.

Von diesem Komfort profitieren natürlich vor allem Web-Entwickler, die sich nicht mehr mit den Eigenheiten von ADO.NET auseinander setzen müssen. Dazu trägt auch das neue DataSource-Fenster bei, das die "Innereien einer Datenbank anzeigt, so dass sich diese per Drag and Drop in die Oberfläche integrieren lassen. Diesen Komfort gibt es nicht nur für klassische Datenbanken, sondern auch für XML-Dokumente und beliebige Geschäftsobjekte.

Für die nächste Version von Visual Basic .NET (intern als Visual Basic 8 bezeichnet), die ein Bestandteil des .NET Frameworks 2.0 sein wird, gilt die Umschreibung "Feature complete. Mit vorzeichenlosen Datentypen, Operatorüberladung, einem Continue-Befehl und den XML-Kommentaren werden jene Sprachelemente nachgereicht, die bislang "gefehlt" haben. Generics und partielle Datentypen (eine Klasse kann auf mehrere Dateien verteilt sein) runden die Sprache ab.

Das Konzept des Generics

Hinter dem etwas gewöhnungsbedürftigen Namen Generics steht ein einfaches, aber fundamentales Konzept. Bei früheren VisualBasic-Versionen waren Auflistungsklassen entweder typenlos (wie Collection oder ArrayList) oder auf einen Typ festgelegt (wie StringCollection oder BitArray). Über Generics definieren Programmierer typenstrenge Auflistungen, wobei der Typ festgelegt werden kann, ohne dass die Auflistung nur diesen Typen unterstützen muss. Auf diese Weise wird Typsicherheit mit Performance-Gewinn kombiniert, da kein Boxing/Unboxing im IL-Code erforderlich ist und es sich bei den Generics nicht um Wrapper, sondern um Elemente der Common Language Runtime (CLR) handelt.

Enthält der Quelltext beispielsweise eine Klasse "CPerson", kann ein Dictionary über das neue Of-Schlüsselwort wie folgt definiert werden: "Dim Personal As New Dictionary(Of Long, Person)". Dieser Befehl besagt, dass als Schlüssel nur ein Long-Wert, als Wert nur ein Objekt vom Typ Person zugelassen ist. Andernfalls ist bereits bei der Kompilierung - das ist das Bemerkenswerte daran - eine Fehlermeldung die Folge.

Intellisense mit von der Partie

Auch bei den Generics ist Intellisense im Spiel, denn beim Zugriff auf die Item-Eigenschaft werden alle Mitglieder der Klasse aufgelistet. Das ist ein deutlicher Fortschritt gegenüber früher, als die Bindung erst zur Laufzeit stattfand und Programmierer die in Frage kommenden Mitglieder häufig erraten mussten. Programmierer können auch eigene Typen auf der Basis von Generics definieren oder bei einzelnen Methoden bestimmen, dass der Typ erst bei der Kompilierung festgelegt wird.

Die Liste der "Kleinigkeiten, die sich speziell an die Gelegenheitsprogrammierer richten, ist erstaunlich lang: Steuerelemente-Felder, die per rechtem Mausklick auf ein Steuerelement angelegt werden, dazu viele neue Steuerelemente (darunter auch ein Sound-Control), ein komfortabler Ressourceneditor und endlich eine direkte Unterstützung für den COM-Port durch die Basisklassen. In die Kategorie nette Kleinigkeit fällt das Visual-Basic-Objekt "My", das in der Dokumentation als "Kurzwahltaste in das System umschrieben wird. Tatsächlich lassen sich über My die Ressourcen des Computers sehr einfach ansprechen. Ein My.Computer.Registry erlaubt einen Zugriff auf die Registry, ein My.Computer.Mail.Send versendet eine Mail, ein My.Application.Version() liefert die Versionsnummer, und ein My.Network.Ping führt ein Ping aus.

Diese Aufzählung sollte allerdings nicht den Eindruck erwecken, dass es sich bei Whidbey nur um Visual Basic dreht. Auch bei C# und vor allem bei Visual C++ werden signifikante Verbesserungen vorgenommen. Der Umstand, dass das Erlernen einer Programmiersprache am besten an Beispielen erfolgt, wird bei der Hilfe berücksichtigt.

Wie hängen nun Whidbey und Longhorn, das bis zu seiner für 2006 geplanten Auslieferung wohl das Thema Nummer eins bei Microsoft sein wird, zusammen? In Whidbey stehen nach der Installation des Longhorn-SDK lediglich eine Reihe von Projektvorlagen zur Verfügung. Das eigentliche IDE für Longhorn-Anwendungen wird erst der Nachfolger von Visual Studio Whidbey sein, der unter dem Codenamen "Orcas" läuft. Trotz einer beeindruckenden Liste an Neuerungen ist Whidbey also nur ein Zwischenstopp auf dem Weg zu Longhorn. Zur Verfügbarkeit steht nur so viel fest, dass Whidbey und Yukon zeitgleich ausgeliefert werden sollen, wobei Microsoft den Termin noch für Ende 2004 angesetzt hat - wahrscheinlicher ist jedoch Anfang 2005. (ue)

*Peter Monadjemi ist freier Fachautor in Starnberg.

Das kleine Microsoft-Codelexikon

Codename / Bedeutung

Aero / Oberfläche von Longhorn mit neuartigen visuellen Elementen.

Avalon / Verwaltete Grafik-API, auf der Aero basiert.

WinFs / Das auf Metadaten gestützte Dateisystem, das auf NTFS basiert.

WinFx / Verwaltete API als Grundlage von Longhorn und Nachfolger der Win-32-API.

Yukon / Nachfolger vom SQL Server 2000

Whidbey / Nachfolger von Visual Studio .NET 2003

Longhorn / Nachfolger von Windows XP und Windows Server 2003

Orcas / Nachfolger von Whidbey, auch "Visual Studio Longhorn genannt, da es unter anderem Forms-Designer auf der Basis von XAML enthalten wird.

Indigo / Neue Web-Services-Architektur auf der Basis von .NET Remoting, MSMQ und .NET Enterprise Services und indiekter Nachfolger von COM+

XAML / Extensible Application Markup Language (kein Codename)

Whitehorse / Designwerkzeug, das als Teil von Whidbey den Entwurf von Netzwerken vereinfachen soll.

Toredo / IPv6-Connectivity durch eine IPv4-Firewall

Sparkle / Animationswerkzeug zur Automation der Avalon-API (intern auch als "Flash-Killer bezeichnet).

Whidbey in Kürze

- Verbesserungen am IDE durch Intellisense;

- C# 2.0 mit Generics, partiellen Datentypen, anonymen Methoden und Iteratoren;

- Visual Basic.NET 2.0 mit vorzeichenlosen Datentypen, Operatorüberladung, Generics und partiellen Datentypen;

- Visual C++ mit Verbesserungen am Compiler, 64-Bit-Unterstützung und "Profile Guided Optimizations (Pogo), um das Laufzeitverhalten der Anwendung für eine Optimierung zu benutzen, neue Version der Standard Template Library;

- Visual J# 2.0 mit Verbesserungen an der Sprache und Browser-Control für die Ausführung von Java Applets im .NET Framework;

- fertige Code Snippets für häufig wiederkehrende Programmieraufgaben;

- deutlich vereinfachte Datenbindung;

- enge Integration mit SQL Server "Yukon;

- engere Integration für die Entwicklung von Excel- und Word-Anwendungen;

- "MsBuild" für die automatisierte Kompilierung als Nachfolger von "Nmake";

- "ClickOnce Deployment".