Microsoft Visual Studio .NET - eine neue Generation von Entwicklungstools

Veröffentlicht: 11. Dez 2001 | Aktualisiert: 07. Nov 2004

Von Senaj Lelic

Mit Visual Studio .NET erleben wir eine neue Generation von Visual Studio. Erstmals werden alle Entwicklungssprachen von Microsoft unter dem Dach einer einzigen Entwicklungsumgebung vereint. Die Planung, Erstellung und Verteilung von Internet-basierten Anwendungen wird mit keiner anderen Art von Entwicklungssystemen so vereinfacht und beschleunigt. Dieser Artikel beschreibt einige Grundideen und Neuerungen von Visual Studio .NET und zeigt die Zukunft der Anwendungsentwicklung.

Auf dieser Seite

 Visual Studio .NET - die nächste Generation von Microsoft Visual Studio
 Visual Studio .NET - komplett überarbeitet für den Entwickler
 Vereinfachte Erstellung von Anwendungen mit Visual Studio .NET
 Windows-Dienste mit Visual Studio .NET
 XML Webdienste mit Visual Studio .NET?
 Die Weitergabe von Anwendungen
 Zusammenfassung

Visual Studio .NET - die nächste Generation von Microsoft Visual Studio

Microsoft .NET - eine neue Plattform
Visual Studio .NET dient der Erstellung von Anwendungen für die Microsoft .NET Plattform. Diese Plattform vereint die Entwicklungstools und Serverprodukte für den Bereich mobiler Geräte zu einer gemeinsamen Plattform und ermöglicht so die Erstellung neuartiger, internet-basierter Anwendungen. Dabei ist das Internet nicht eine externe Komponente, sondern integraler Bestandteil der Anwendungen, die auf den im Internet verfügbaren XML Web Services basieren. Das sind Dienste, die beliebige Funktionalitäten als eine Art „Black Box" anderen Anwendern/Programmierern zur Verfügung stellen und die über das Internet in die eigene Anwendung eingebunden werden können. Dass die Erstellung derartiger Anwendungen, trotz der Nutzung einer Vielzahl neuer Technologien, so einfach ist wie die Erstellung einer heutigen Windows-Anwendung – dies ist Visual Studio .NET und der .NET Plattform zu verdanken.

Das Microsoft .NET Framework
Als Basis der Programmierung unter „.NET" stellt das .NET Framework eine von allen .NET fähigen Sprachen gemeinsam genutzte Bibliothek von Klassen und Komponenten zur Verfügung, die Funktionalitäten für die Entwicklung von unterschiedlichsten Arten von Anwendungen bereitstellen. Egal ob für eine „normale" Windows-Anwendung, einen Windows-Dienst oder einen XML-basierten Webdienst.
Vorteil des .NET Frameworks ist, dass die Klassen und Objekte für alle Sprachen gleich sind. Ob Sie mit Visual Basic .NET oder Visual C# .NET oder mit Visual C++ .NET arbeiten, Sie nutzen immer die gleichen Objekte, Klassen, Eigenschaften und Methoden. Dies macht den Code portabler und für Entwickler, die mit anderen Sprachen arbeiten, verständlicher. Hier ein einfacher Code, der die Beschriftung eines Buttons ändert, zuerst in Visual Basic .NET und dann in Visual C# .NET:

Visual Basic .NET:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
       System.EventArgs) Handles Button1.Click
           Button1.Text = "Hallo"
 End Sub

C# .NET:

private void button1_Click(object sender, System.EventArgs e)
   {
    button1.Text = "Hallo";
   }

Abgesehen von der leicht unterschiedlichen Syntax sind die Aufrufe identisch. Das Objekt heißt in beiden Sprachen Button1, die Eigenschaft immer „Text" und die Zuweisung erfolgt jedes Mal auf die gleiche Art.

Eine derart umfangreiche Bibliothek von Klassen und Objekten besteht aus einer so großen Anzahl von Elementen, dass man schnell Gefahr läuft, die Übersicht zu verlieren. Um dies zu vermeiden, wurde das Framework in Verwaltungseinheiten, sogenannte Namespaces eingeteilt. Jeder Namespace enthält eine Reihe von Objekten bzw. Komponenten zu einem bestimmten Gebiet der Programmierung. Im Namespace System.Data beispielsweise sind alle Objekte enthalten, die für ein Arbeiten mit Daten und Datenbanken notwendig sind. Ebenso enthält der Namespace System.Windows.Forms alle Objekte und Komponenten, die für die Erstellung von Windows-Anwendungen nötig sind, also auch Buttons, Checkboxen etc.

Bild02

Abbildung 1: das .NET Framework in einer Übersicht

Das Framework ist, wie schon gesagt, für alle Sprachen gleich, daher gibt es keine „Konvertierung" oder „Übersetzung" von Datentypen zwischen den Sprachen. Ein String ist in allen Sprachen gleich definiert. Möglich wird dies durch das verwendete „Common Type System". Dies alles vereinfacht den (Um)Lernaufwand für den Entwickler erheblich, selbst wenn er Code in einer anderen .NET Sprache liest, wird schnell klar, was dieser Code tun soll.

Die Common Language Runtime (CLR) - vereinfachtes Ausführen und Weitergabe von Anwendungen
Alle .NET-Compiler produzieren keinen nativen Code, sondern einen Zwischencode (die so genannte Microsoft Intermediate Language, kurz IL). Die in das .NET System integrierte gemeinsame Laufzeitumgebung - Common Language Runtime stellt sicher, dass dieser Code ausgeführt wird und vor der Ausführung noch in nativen Code, also Maschinencode kompiliert wird. Um all dies braucht sich der Entwickler nicht zu kümmern, da das .NET Framework zusammen mit der CLR bei der Installation von Visual Studio installiert wird. Unterstützt werden alle Windows-Betriebssysteme ab Windows 98 (Me, NT, 2000, XP). Bei künftigen Versionen von Windows wird das Framework mit CLR bereits enthalten sein.

 

Visual Studio .NET - komplett überarbeitet für den Entwickler

Die Integration aller Sprachen ist nur eine Neuerung von Visual Studio .NET. Visual Studio .NET führt eine komplett überarbeitete und erweiterte Oberfläche ein, die das Entwickeln noch einfacher und effizienter macht.

Die Startseite
Gleich nach dem Start fällt die neue Startseite bzw. Homepage von Visual Studio .NET auf. Diese Startseite erlaubt den Zugriff auf neue Projekte, den Wiederaufruf bereits bestehender Projekte sowie die Definition verschiedener Profile für verschiedene Entwickler, mit Tastaturshortcuts etc.

Bild03

Abbildung 2: die Startseite von Visual Studio .NET

Die Oberfläche der Entwicklungsumgebung
Die Oberfläche selbst ist ebenfalls überarbeitet worden. Alle Seiten sind über Registerkarten erreichbar (egal ob Quellcode, MSDN-Dokumentation oder graphische Sicht des Formulars). Eine Vielzahl von Toolboxen ist in die Umgebung integriert worden und stellt dem Entwickler Funktionalitäten zur Verfügung (Komponenten für die Entwicklung von Anwendungsoberflächen oder Komponenten für den Zugriff auf Systemfunktionen und -informationen). Diese Toolboxen klappen bei Nichtbenutzung ein, um eine möglichst große Fläche für den Quellcode frei zu lassen. Damit hat der Entwickler maximalen Überblick über seinen Quellcode. IntelliSense ist in allen Sprachen enthalten und zeigt automatisch Quellcodeergänzungen (beispielsweise die Eigenschaften eines Objekts). Die Oberflächen von Anwendungen entstehen in allen Sprachen mittels Drag&Drop. Dadurch wird die Anwendungsentwicklung zusätzlich beschleunigt, da die graphische Oberfläche der Anwendung auch graphisch definiert wird. Im Codefenster (siehe Abbildung 3) können Teile des Quellcodes zusammengeklappt werden, um den Quellcode damit übersichtlicher zu machen und nur denjenigen Quellcode zu sehen, an dem gerade aktuell gearbeitet wird. Dabei erkennt Visual Studio .NET automatisch Codeblöcke, die zusammen gehören (es können aber auch eigene Bereiche definiert werden) und kennzeichnet diese durch ein + am linken Rand. Ein Klick auf dieses Zeichen und schon klappt der betreffende Teil des Quellcodes ein.

Bild04

Abbildung 3: Der Code-Editor von Visual Studio .NET

Integrierte Fehlersuche und Hilfesysteme - MSDN und dynamische Hilfe
Für alle Sprachen ist die Fehlersuche – der Debugger – zentralisiert und somit direkt verfügbar. Man kann auch Projekte, die parallel in mehreren Sprachen geschrieben wurden, komplett in einer Debugger-Umgebung bearbeiten.
Ferner ist in die Oberfläche ein Fenster integriert, welches jederzeit zum gerade genutzten Bereich dynamisch die dazu passende Hilfe anbietet. Der Inhalt dieses Fensters ändert sich immer, je nach Objekt/Feature, mit dem der Entwickler gerade arbeitet und passt sich dynamisch an. Somit steht dem Entwickler immer die benötigte Hilfe zur Verfügung.
Die komplette MSDN-Dokumentation ist ebenfalls in Visual Studio integriert worden, so dass auch bei komplexeren Suchen nach Hilfe die Oberfläche von Visual Studio nicht verlassen werden muss. Über entsprechende Registerkarten ist die MSDN-Dokumentation erreichbar.

Bild05

Abbildung 4: MSDN und dynamisches Hilfefenster in Visual Studio .NET

 

Vereinfachte Erstellung von Anwendungen mit Visual Studio .NET

Visual Studio .NET erleichtert die Erstellung auch komplexer Anwendungen, da hier Projektvorlagen mitgeliefert werden, die – nach Sprachen sortiert – jede Art von Anwendungen als Vorlage enthalten. Egal ob Windows-Anwendung, Windows-Dienst oder XML Webdienst – für alles ist eine Vorlage enthalten.

Lösungen und Projekte in Visual Studio .NET
Auch in Visual Studio .NET entstehen Anwendungen auf der Basis von Projekten. Ein Projekt wird in einem Unterverzeichnis abgelegt. Dieses Verzeichnis enthält alle notwendigen Informationen und Dateien, die während der Entwicklung oder für das Debugging bzw. die Weitergabe der Anwendung benötigt werden.
Mehrere Projekte zusammen können eine Lösung ergeben. Die Lösung fasst beispielsweise verschiedene Projekte (Untermodule einer Anwendung oder die Anwendung und das Setup-Projekt für die Weitergabe) zusammen. Durch das Öffnen einer Lösung werden automatisch alle damit verbundenen Projekte geöffnet.

Arten von Anwendungen in Visual Studio .NET
Für die Erstellung von verschiedenen Anwendungen sind Vorlagen vorhanden. Durch Aufruf der entsprechenden Vorlage werden automatisch alle notwendigen Dateien erstellt (besonders bei der Erstellung von XML Webdiensten ist dies sehr praktisch) und auch die ggf. notwendigen Namespaces in die Umgebung eingebunden („importiert").
Der Dialog „Neues Projekt" trennt die Arten von Anwendungen nur nach der verwendeten Programmiersprache in Kategorien. In der Abbildung 5 beispielhaft die Arten von Anwendungen für Visual Basic .NET. Auch hier gilt wieder, dass mit allen Sprachen das Gleiche erstellt werden kann, daher sind die Arten von Anwendungen für C# genau die gleichen.

Bild06

Abbildung 5: die Projektvorlagen von Visual Studio .NET

 

Windows-Dienste mit Visual Studio .NET

Die Erstellung von Diensten für Windows war programmiertechnisch bis jetzt nicht gerade leicht. Visual Studio .NET macht die Erstellung von Diensten extrem einfach. Genau wie alle anderen Anwendungen ist auch ein Dienst „nur" eine Vorlage in der Projektgalerie und kann als solches aufgerufen werden. Visual Studio erstellt vollautomatisch ein neues Projekt, welches bereits zwei von insgesamt vier Ereignisbehandlungsroutinen enthält. Diese korrespondieren mit den vier Tätigkeiten, die man mit einem Dienst in Windows vornehmen kann. Die vier Ereignisse sind:
Dienst starten
Dienst anhalten
Dienst wiederaufnehmen
Dienst beenden
In diese vier Routinen wird jeweils der Quellcode für dieses „Ereignis" hinein gesetzt und schon ist die Funktionalität realisiert. Die ganzen Hintergrundarbeiten erledigen Visual Studio .NET und das .NET Framework.
Ein Dienst hat bedingt durch den Typ der Anwendung kein Formular oder graphische Oberfläche, da er auch dann laufen soll, wenn kein Anwender angemeldet ist. Dennoch bietet das Dienst-Projekt eine Art nonvisuelles Formular, auf dem alle Arten von Komponenten, die Funktionalitäten des Dienstes abbilden – abgelegt werden können.

Bild07

Abbildung 6: Quellcode für einen einfachen Windows-Dienst

Ein Dienst, der beispielsweise Informationen zur Performance ermittelt und dies durch Einträge in einer Datei dokumentiert, ist sehr schnell erstellt. Hierzu wird nur die entsprechende Ereignisbehandlungsroutine angepasst und mit etwas Code so erweitert, dass die Datei mit Informationen gefüllt wird. Die Informationen zur Performance werden aus der Systeminformation für Leistung – dem Performance Monitor – entnommen. Hierfür existiert eine Komponente, die direkt genutzt und auf dem non-visuellen Formular abgelegt werden kann.

 

XML Webdienste mit Visual Studio .NET?

Das Erstellen von XML Webdiensten, also Diensten die über das Internet aufgerufen und in die eigene Anwendung eingebunden werden können, ist mit Hilfe der Projektvorlage genauso einfach wie das Erstellen eines Windows-Dienstes. Dabei ermöglicht Visual Studio .NET bereits die Ablage des Projekts auf einem Webserver, um so den Dienst gleich in einer realitätsnahen Umgebung testen zu können.

Bild08

Abbildung 7: Erstellung eines Webdienst-Projektes auf dem Webserver

Der Dienst wird ohne hinzuzulernen weiterer Programmiersprachen oder neuer Technologien mit den gleichen Komponenten, Objekten und nicht zuletzt mit der bereits bekannten Programmiersprache Visual Basic/C# erstellt. Das Lernen einer neuen Programmiersprache ist nicht nötig.
Damit ist die Erstellung von Anwendungen für das Internet möglich und wird so einfach wie das Erstellen einer heutigen Anwendung für Windows.

 

Die Weitergabe von Anwendungen

Die Weitergabe der Anwendungsdatei selbst ist unproblematisch. Alles was für den Ablauf der Anwendung an Laufzeitbibliotheken von technischer Seite her vorhanden sein muss, ist durch das .NET Framework bereits vorhanden. Dieses wird per Vorgabe in die Distribution mit aufgenommen, für den Fall, dass auf dem Zielsystem kein .NET Framework installiert sein sollte.
Da eine komplexere Anwendung aber üblicherweise aus mehreren Dateien bzw. Elementen besteht und eine Reihe von Zusatzinformationen enthält, ist die Erstellung von Weitergabe-Projekten ein wichtiger Punkt in Visual Studio .NET. Hierfür existiert ebenfalls eine eigene Projektvorlage. Egal ob „gewöhnliche" Windows-Anwendung oder Webanwendung – die Kategorie für Setup- und Weitergabe-Projekte erstellt Setup-Anwendungen für jede Art von weiterzugebender Anwendung. Ein Setup-Projekt enthält drei grundlegende Einträge:

  1. Anwendungsverzeichnis: Im Eigenschaftsfenster rechts können die notwendigen Einträge vorgenommen und ein Verzeichnis angegeben werden.

  2. Desktop des Anwenders: Falls der Desktop anzupassen ist (beispielsweise mit einer Verknüpfung), werden diese Informationen hier – wieder über das Eigenschaftsfenster – eingetragen.

  3. Programm-Menü des Anwenders: Alle Einstellungen und Einträge, die im Programmmenü des Anwenders vorzunehmen sind, werden hier angegeben.

Jeder dieser Einträge kann über ein Kontextmenü konfiguriert und erweitert werden, beispielsweise kann eine Verknüpfung zur Anwendung auf dem Desktop des Anwenders erstellt werden.
Ferner können – ausgehend vom obersten Ordner – noch eine ganze Reihe an weiteren Kategorien und damit Modifikationen während der Installation vorgenommen werden. Hier nur einige Beispiele:
Systemverzeichnis
Senden An-Verzeichnis
Autostart-Ordner
Ordner für Favoriten
etc.
Die Erstellung von Setup-Anwendungen ist damit kinderleicht geworden. Statt wie früher alles über komplexe Installationsprogrammroutinen zu definieren, wird hier über Kategorien und die Eigenschaften dieser Kategorien alles definiert und eingestellt, was nötig ist, damit die neue Anwendung auf dem Zielsystem lauffähig ist. Die Installation und Weitergabe selbst geschieht über Windows-Installer, das in Windows eingebaute Installationssystem für Anwendungen. Dieser ist ab Windows 2000 bereits im Betriebssystem mit enthalten, bei den älteren Versionen von Windows wird er spätestens bei der Installation des Frameworks mit installiert.
Die Setup-Anwendung ist übrigens auch „nur" ein Projekt, welches der „Lösung", die die eigentliche Anwendung enthält, einfach als weiteres Projekt hinzugefügt werden kann. Beim Kompilieren der Anwendung wird dann gewissermaßen nebenbei auch noch die Installation mit erstellt.

 

Zusammenfassung

Visual Studio .NET ist alleine schon ein großer Schritt in die Richtung vielfältigerer und effizienterer Programmierung. Die Anwendungsoberfläche bietet alles, was der Entwickler benötigt. Vielfältige Unterstützung beim Coding, bei der Fehlersuche und die verschiedenen Informationsangebote des Hilfesystems und die Unterstützung vieler Anwendungstypen über Vorlagen machen das Programmieren noch flexibler und – es macht einfach Spaß.