Visual Basic .NET

Visual Basic .NET ist eine Weiterentwicklung von Visual Basic 6. Visual Basic .NET wurde 2002 publiziert und baut auf das Microsoft .NET Framework auf.

Sie produziert einen Zwischencode für eine von Microsoft konstruierte virtuelle Maschine - Common Language Runtime genannt. Diese Maschine ist im .NET Framework enthalten.

Der Zwischencode wird erst zur Laufzeit in Maschinencode compiliert, durch diese Zwischenstufe der CLR bleibt sie mit anderen .NET-Sprachen interoperabel. Zur Ausführung wird jedoch das .NET Framework benötigt.

Visual Basic .NET unterstützt die objektorientierte Programmierung vollständig und verfügt über eine Ausnahmebehandlung, wie sie auch in den Programmierspchen Java bzw. C++ bekannt ist.

Inhaltsverzeichnis

Hallo-Welt-Programm in Visual Basic .NET

Der folgende Quelltext stellt ein einfaches Visual Basic-Programm dar, das eine Meldung auf der Standardausgabe ausgibt:

Module Module1
  
   Sub Main()
  
     Console.WriteLine("Hello World")
  
   End Sub
  
 End Module
 

Erläuterungen:

Bei diesem Programm handelt es sich um eine einfache Konsolen-Anwendung, die aus einem einzigen Modul besteht. Ein Modul wird unter Visual Basic .NET wie eine Klasse behandelt, die nur statische Elemente enthalten kann.

In diesem Fall enthält das Modul nur die Prozedur Main, die standardmäßig beim Start des Programms aufgerufen wird.

Die Ausgabefunktion Console.WriteLine stammt aus der .NET-Klassenbibliothek und ermöglicht die Ausgabe auf der Standardausgabe, wobei die Ausgabe mit einem Zeilenumbruch abgeschlossen wird.

Obwohl der Befehl "Module" aus Kompatiblitätsgründen in Visual Basic .NET erhalten blieb gibt es eine konformere Schreibweise für das Hallo Welt Programm:

Class HalloWelt
  
   Shared Sub Main()
  
     Console.WriteLine("Hello World")
  
   End Sub
  
 End Class
 

Zwei Dinge fallen dabei auf. Der "Module" Befehl wurde durch den Class Befehl ersetzt und vor der Definition der Hauptmethode Main steht ein Shared (engl. "gemeinsam") Das Kommando "Shared" gibt dem Compiler an, dass die Methode ohne Instanzierung der Klasse verwendet werden kann. Das Schlüsselwort "Class" sagt dem Compiler dass es eine Klasse ist.

Unterschied zwischen "Class" und "Module" : In einer Klasse ("Class") sind alle Mitglieder standardmäßig Private (privat) und nicht "Shared" (Man muss diese Schlüsselwörter voranstellen)

"Module" erstellt auch eine Klasse in der alle Mitglieder standardmäßig Public (öffentlich) und Shared sind

Windows-Anwendungen

Für die Entwicklung von Windows-Anwendungen wird die Winforms-Technologie benutzt. Hierbei handelt es sich um ein ereignisorientiertes Programmiermodell, bei dem entsprechende Ereignisprozeduren aufgerufen werden, wenn das Betriebssystem eine entsprechende Benutzeraktion, wie z. B. das Betätigen einer Schaltfläche, meldet.

Im Gegensatz zu Visual Basic 6 handelt es sich bei den WinForm-Formularen nicht um Dateien, die in einem spezielen Format gespeichert werden. Stattdessen werden normalen Klassen benutzt, die von einer entsprechenden Basisklasse abgeleitet werden.

Bei der Instanzierung einer solchen Klasse werden im Konstruktor die Objekte erzeugt, die innerhalb des Fensters dargestellt werden sollen. Dieses Modell wird auch in der Programmiersprache Java benutzt.

Moderne Entwicklungsumgebungen ermöglichen die visuelle Erstellung von Formularen, wobei der für den Konstruktor notwendige Code von der Entwicklungsumgebung erzeugt wird.

Web-Anwendungen

Für die Entwicklung von Web-Anwendugen wird ASP.NET benutzt. Hierbei erfolgt eine Trennung zwischen der Darstellung der Webseite und dem auszuführenden Code, der sich in einer VB.NET-Klasse befindet. Dies hat den Vorteil, dass der von ASP bekannte Spaghetti-Code, der gerade die Wartung größerer Projekte erschwert, vermieden wird.

Für die Ausführung von ASP.NET-Anwendungen wird der IIS von Microsoft oder der Apache HTTP Server mit dem mod_mono-Modul benötigt.

ASP.NET ermöglicht auch die Entwicklung von so genannten Webservices. Die für die Publizierung von Webservices benötigten Informationen werden von der Entwicklungsumgebung auf Basis von Attributen, die der Programmierer in das Programm einfügt, generiert.

Für den Zugriff auf einen Webservice kann von der Entwicklungsumgebung auf Anforderung eine Klasse generiert werden, die den Zugriff auf die Methoden des Webservices kapseln.

Entwicklungsumgebung

Zur Entwicklung von VB.NET Programmen reicht es aus, wenn das .NET Framework auf dem Entwicklungsrechner installiert ist.

Für die professionelle Entwicklung wird dagegen der Einsatz von Visual Studio .NET empfohlen. Hierbei handelt es sich um eine IDE, die das komfortable Erstellen von Windows- und Web-Anwendungen ermöglicht.

Für Hobbyisten ist auch eine so genannte Standard-Edition der Entwicklungsumgebung von Microsoft verfügbar. Alternativ lässt sich auch die Open-Source-Software SharpDevelop unter Windows verwenden.

Für Linux gibt es ebenfalls eine IDE namens MonoDevelop, die, wie der Name schon sagt, auf der Mono-Portierung von .NET auf Linux aufbaut.

Migration von bestehenden Anwendungen

Obwohl VB.NET eine Weiterentwicklung von Visual Basic 6 darstellt, ist eine Portierung bestehender Anwendungen mit einem erheblichen Aufwand verbunden, da VB.NET nicht mehr die unter Visual Basic bekannte Laufzeitumgebung benutzt, sondern auf das .NET Framework aufbaut.

Bestehende COM-Komponenten können unter VB.NET weiterbenutzt werden. Hierzu wird von der Entwicklungsumgebung ein Proxy generiert, der als Schnittstelle zwischen der .NET-Welt und der COM-Komponente dient.

Der Aufruf einer .NET-Komponente aus einem Visual Basic 6 Programm ist auch möglich. In diesen Fall wird ein Wrapper erzeugt, der für die Visual Basic 6 Anwendung eine passende COM-Schnittstelle anbietet.

Zukunft

Für das Jahr 2005 wird die Verfügbarkeit von VB.NET 2005 erwartet. Eine der wichtigsten Neuerungen soll die Verfügbarkeit von so genannten Generics sein. Generics erlauben die typsichere Implementierung von Containern.

Außerdem soll die Aufteilung einer Klasse über mehrere Dateien möglich sein, dies ist insbesondere für die Entwicklung von Code-Generatoren sinnvoll, um die vom Benutzer durchgeführten Änderungen von dem generierten Code trennen zu können.

Auch das Überladen von Operatoren soll unter VB.NET 2005 möglich sein.

Innerhalb der Entwicklungsumgebung soll insbesondere das Feature "Edit and Continue" verfügbar sein. Das heißt, man kann ein Programm, das während einer Debugging-Sitzung angehalten wurde, ändern und mit der Ausführung fortfahren, ohne das der Debugger hierzu verlassen werden muss.

Für Hobbyisten soll auch eine "Express-Edition" von VB.NET 2005 als Entwicklungsumgebung von Microsoft verfügbar sein.

Verweise

Siehe auch: Visual Basic

Weblinks

See also: Visual Basic .NET, .NET, .NET-Klassenbibliothek, .NET Framework, 2005, ASP.NET, Active Server Pages, Apache HTTP Server, Attribut, Ausnahmebehandlung