Visual Basic .NET

Visual Basic .NET
Visual Basic .NET
Microsoft NET Logo.svg
Basisdaten
Paradigmen: prozedural, vollständig objektorientiert
Erscheinungsjahr: 2002
Entwickler: Microsoft Corp.
Aktuelle Version: 2010  (12. April 2010)
Typisierung: stark, explizit (auf Wunsch auch implizit), statisch
wichtige Implementierungen: Microsoft Visual Basic .NET, SharpDevelop, MonoDevelop
Einflüsse: Visual Basic Classic, Java, C#
Betriebssystem: Windows
Lizenz: proprietär
msdn.microsoft.com/de-de/vbasic/

Visual Basic .NET (Abk. VB.NET) ist eine Programmiersprache, die auf dem Microsoft .NET Framework aufbaut. Sie wurde 2002 publiziert und ist keine einfache Weiterentwicklung des Vorgängers Visual Basic 6, sondern wurde in weiten Teilen neu konzipiert.

Visual Basic .NET produziert einen Zwischencode für eine von Microsoft entwickelte virtuelle Maschine, die Common Language Runtime (CLR). Diese Maschine ist im .NET Framework enthalten.

Der Zwischencode wird erst zur Laufzeit in Maschinencode übersetzt, durch diese Zwischenstufe der virtuellen Maschine 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 aus anderen Programmiersprachen wie Java oder C++ bekannt ist.

Inhaltsverzeichnis

Geschichte

Um die Jahrtausendwende hatte Visual Basic seinen ursprünglichen Vorteil gegenüber anderen Programmiersprachen, einfach eine Graphische Oberfläche zu erstellen, eingebüßt. Viele andere Hochsprachen boten nun ebenfalls die Möglichkeiten, einfach Windows-Benutzeroberflächen zu erstellen, zum Beispiel C++ mit den Microsoft Foundation Classes (MFC). Darüber hinaus hatte sich Visual Basic inzwischen zu einem komplexen und eher inhomogenen Produkt entwickelt, dessen Wartung und Verbesserung zunehmend schwieriger wurde. Wohl aus diesen Gründen stoppte Microsoft die Weiterentwicklung dieses Produktes (trotz des kommerziellen Erfolgs und des Protestes vieler VB-Programmierer) und integrierte die Programmiersprache Visual Basic in die hauseigene .NET-Architektur. Dabei wurde die Sprache zu einem hohen Grad verändert, um den Ansprüchen an eine .NET-Sprache zu genügen. Hierdurch wurde die vollständige Objektorientierung, sowie die Übersetzung in die Common Intermediate Language ermöglicht.

2002–2003: Visual Basic .NET

Mit Visual Studio .NET erschien 2002 erstmals eine Visual Studio Version, die auf dem .NET Framework aufbaute und somit Visual Basic .NET unterstützte. Durch das Propagieren der zu diesem Zeitpunkt noch recht jungen .NET-Technologie und die Namensbezeichnung „Visual Studio .NET“ wurde bei den Kunden jedoch der Eindruck erweckt, es handle sich um ein Produkt ausschließlich für diese Plattform. Dies hatte zur Folge, dass viele Entwickler und Unternehmen zurückhaltend weiterhin Visual Studio mit dem klassischen Visual Basic verwendeten.

Das erste Update auf Visual Basic 7.1 bzw. .NET-Framework 1.1 (build 4322) sowie „Visual Studio .NET 2003“ brachte nur kleinere Änderungen, was sich im „kleinen“ Versionssprung widerspiegelt. Etwa kann ab Visual Basic 7.1 eine Zählervariable im Kopf einer For-Schleife deklariert werden. Außerdem wurde die Unterstützung für mobile Geräte hinzugefügt. Auf diesen dient nicht das .NET-Framework 1.1 als Laufzeitumgebung, sondern das „.NET Compact Framework 1.0“.

2005–2007: Visual Basic 8 und 9

Im November 2005 erfolgte der erste große Versionssprung des .NET-Frameworks und des .NET-Compact-Frameworks auf Version 2.0, begleitet von der Veröffentlichung des neuen Visual Basic 8 als Teil von „Visual Studio 2005“ (das „.NET“ ist aus dem Namen entfallen). Mit dieser Version wurden einige Restrukturierungen an der .NET-Laufzeitbibliothek vorgenommen. Am auffälligsten ist die Unterstützung der generischen Programmierung, die den aus C++ bekannten Templates ähnelt. Viele Schnittstellen und Attribute der Laufzeitbibliothek sind auch als generische Implementation verfügbar. Weiter ist seit der Version 2005 eine kostenlose, im Leistungsumfang eingeschränkte Express Edition von Visual Basic .NET verfügbar.[1]

Mit Visual Basic 8 wurde der Operator IsNot eingeführt, der Aufsehen erlangte, als Microsoft sich diese Erfindung patentieren ließ.[2] Eine andere Neuerung ist der My-Namensraum, der unterschiedliche systemabhängige Funktionen in einer für den Programmierer übersichtlichen Weise darstellt, etwa den Zugriff auf Computerkomponenten, die Windows-Registrierungsdatenbank oder Informationen über das Betriebssystem und den aktuellen Benutzer.

2007 wurde parallel zur Veröffentlichung von Windows Vista die neue Visual Basic-Version 9[3] bzw. das „Visual Studio 2008“ veröffentlicht. Die größte sprachliche Änderung ist wohl die Unterstützung der neuen .NET-Komponente LINQ. Visual Basic 9 basiert auf dem mit Windows Vista ausgelieferten und für Windows XP erhältlichen .NET-Framework 3.0 (vormals WinFX). Der wohl bedeutendste Bestandteil des Versionsupdates ist die Windows Presentation Foundation, die nicht nur Windows Forms, sondern auch das Windows-interne Grafiksubsystem GDI ablöst.[4]

Seit November 2007 basieren alle Visual Studio 2008-Versionen auf dem .NET-Framework 3.5, mit dem die folgenden Technologien eingeführt bzw. erweitert wurden: Language Integrated Query (LINQ), neue Compiler für C#, Visual Basic und C++, ASP.NET mit AJAX, ADO.NET Entity Framework, Datenanbieterunterstützung für SQL Server 2008, Unterstützung für .NET Framework Client Profile u.a..[5]

Eigenschaften

Windows-Anwendungen

Für die Entwicklung von Windows-Anwendungen wird die Windows Forms-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 werden Windows Forms nicht in einem speziellen Format gespeichert, sondern wie normale Klassen erstellt und benutzt, die von einer entsprechenden Basisklasse (meist System.Windows.Forms.Form) 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-Anwendungen 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 Spaghetticode, 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.

Besonderheiten gegenüber anderen .NET Sprachen

Als .NET-Sprache unterliegt Visual Basic .NET den Vor- und Nachteilen dieser Plattform. Visual Basic Classic machte viele kleinere Dinge anders als andere Sprachen. Aus Gründen der Abwärtskompatibilität sind viele dieser Punkte als „Altlasten“ in Visual Basic .NET enthalten. Einige Beispiele:

  • Üblicherweise (so auch im .NET Framework) entspricht der in eine Zahl konvertierte logische Wert Falsch bzw. False dem Wert 0, Wahr oder True wird als 1 interpretiert. In Visual Basic Classic steht True aber für -1. Diese Konvention erlaubte es, nicht zwischen einem logischen und einem binären Not-Operator unterscheiden zu müssen (-1 = 11111111 in Zweierkomplementdarstellung). Daher ergeben in Visual Basic .NET die Konvertierungen CInt(True) oder CType(True, Int32) immer noch den Wert -1; der Aufruf der .NET Framework-Methode Convert.ToInt32(True) evaluiert hingegen auf 1.
  • In den meisten Programmiersprachen deklariert eine Anweisung der Form int a[5]; ein fünfelementiges Array mit Indizes von 0 bis 4 oder von 1 bis 5. In VB.NET deklariert Dim a(5) As Integer ein sechselementiges Array mit Indizes von 0 bis 5, um abwärtskompatibel zur VB Classic Syntax Dim a([lowerBound To] upperBound) zu bleiben.
  • Visual Basic .NET erlaubt es, anders als zum Beispiel C#, globale Variablen ohne Klassenzugehörigkeit zu definieren. Dies widerspricht dem objektorientierten Paradigma (keine Deklaration ohne Klasse) und kann für unübersichtlichen und schwer wartbaren Code sorgen, wenn sich globale Deklarationen über viele Module im Projekt erstrecken.

Unterschiede zu Visual Basic Classic

Um den Ansprüchen an eine .NET-Sprache zu genügen, wurde Visual Basic .NET gegenüber den vorherigen Visual Basic Versionen zu einem hohen Grad verändert. So ist die Sprache vollständig objektorientiert. Außerdem wird der Quellcode bei der Kompilierung nicht mehr in nativen Win32-Code übersetzt, sondern in Code der Common Intermediate Language, dem .NET-Pendant des Java-Bytecodes. Dieser Code wird zur Laufzeit in Maschinencode umgesetzt und kann hierdurch an die aktuelle Plattform angepasst werden.

Die Umstellung auf .NET-Technologie brachte neben diesen Änderungen im Hintergrund auch Änderungen für den Programmierer. Das .NET-Framework stellt zahlreiche Funktionsbibliotheken zur Verfügung, z. B. für Dateizugriffe oder zum Lesen und Schreiben von XML-Dateien. Am wichtigsten sind hier die Windows Forms, die das veraltete Thunder-Forms-System der vorherigen Versionen zur Erstellung von Benutzeroberflächen ablöst. Der augenscheinlichste Unterschied der Windows Forms gegenüber den Thunder Forms ist die Tatsache, dass kein spezielles Dateiformat mehr zur Speicherung verwendet wird, sondern die Formulare als Klassen durch Code erstellt werden. Dabei wird der Konstruktor der Fensterklasse verwendet, um die ebenfalls durch Klassen repräsentierten Steuerelemente zu erstellen. Moderne Integrierte Entwicklungsumgebungen ermöglichen die visuelle Erstellung von Formularen, wobei der für den Konstruktor der Fensterklasse notwendige Code von der Entwicklungsumgebung erzeugt wird. Auf der anderen Seite gab es mit dem Verlust der „Edit and Continue“-Funktion einen großen entwicklungstechnischen Rückschritt. Des Weiteren lassen sich mit Visual Basic .NET im Gegensatz zu vorigen Versionen auch Web-Anwendungen erstellen, indem man den VB-Code in einer ASP.NET-Umgebung laufen lässt. Die hier verwendete GUI-Bibliothek heißt Web Forms und ist größtenteils eine Anpassung von Windows-Forms-Elementen an die Möglichkeiten von Webbrowsern und sonstigen Webclients.

Neben diesen Vorteilen bringt die Umstellung allerdings auch einige Probleme mit sich. Da die Sprache und die Funktionsbibliothek so tiefgreifende Änderungen erfahren haben, kann ein Visual-Basic-Classic-Codeprojekt nur mit großem Aufwand auf die neue Version migriert werden. Microsoft liefert zwar mit seiner Entwicklungsumgebung Visual Studio einen sogenannten Migrationsassistenten mit. Dieser wandelt die Codestruktur meist korrekt um und beherrscht bis auf wenige Spezialfälle die Konvertierung von Thunder Forms nach Windows Forms, hat aber zum Beispiel starke Probleme mit Grafikprogrammierung, da die verwendeten Grafiksysteme von Visual Basic Classic (GDI, in Thunder-Forms-Steuerelementen gekapselt) und Visual Basic .NET (GDI+) praktisch inkompatibel zueinander sind. Zur besseren Portierung gibt es von Microsoft neben dem Migrationsassistenten eine Funktionssammlung im .NET-Framework (im Microsoft.VisualBasic-Namensraum), die einige wichtige Visual-Basic-Classic-Funktionen unter .NET zur Verfügung stellt. Bestehende COM-Komponenten können ohne Einschränkungen weiterbenutzt werden. Neben dem Problem der Inkompatibilität bedeutete der Verlust der „Edit and Continue“-Funktion in Visual Studio .NET einen großen entwicklungstechnischen Rückschritt, so konnte man im Gegensatz zu Visual Basic 6 den Code im Debug Modus nicht mehr ändern und die Ausführung ohne Unterbrechung weiterlaufen lassen. Diese Funktion wurde mit Visual Basic 2005 jedoch wieder eingeführt.

In Visual Basic .NET kann man, anders als in Visual Basic Classic, auch dann Programme erstellen, wenn man keine Entwicklungsumgebung erworben hat. Das .NET-Framework verfügt nämlich aus technischen Gründen über einen Kommandozeilencompiler namens vbc.exe.

Beispiel

Der folgende Quelltext stellt ein einfaches Visual Basic-Programm dar, das die Meldung "Hallo Welt!" auf der Standardausgabe ausgibt:

 Module Module1
   Sub Main()
     Console.WriteLine("Hallo Welt!")
   End Sub
 End Module

Erläuterungen:

Bei diesem Programm handelt es sich um eine einfache Konsolenanwendung, 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)

Ein Modul ("Module") ist ebenfalls eine Klasse, jedoch sind hier alle Mitglieder standardmäßig "Public" (öffentlich) und "Shared" (können ohne Instanzierung verwendet werden).

Entwicklungsumgebungen

Zur Entwicklung von VB.NET Programmen reicht es aus, wenn das .NET Framework auf dem Entwicklungsrechner installiert ist. Das Programm kann mit einem einfachen Text Editor geschrieben und dann mit dem in .NET enthaltenen Kommandozeilentool vbc.exe compiliert werden.

Für die professionelle Entwicklung wird dagegen der Einsatz des kostenpflichtigen 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 mit „Microsoft Visual Basic Express“ eine eingeschränktere, aber kostenfreie Variante verfügbar, die gerade für Anfänger geeignet ist. Darüber hinaus gibt es jedoch zwei freie Entwicklungsumgebungen. Das SharpDevelop (kurz: #develop), welches auch andere .NET Sprachen unterstützt, sowie das daraus abgeleitete MonoDevelop, die Entwicklungsumgebung des Mono-Projektes, welche auch für Nicht-Windows Betriebssysteme verfügbar ist.

Rechtliche Aspekte

Visual Basic Classic ist, anders als viele moderne Hochsprachen, kein offener Standard, sondern proprietär und geistiges Eigentum von Microsoft. Mit Visual Basic .NET hat sich diese Bindung gelockert, da einige Teile der .NET-Infrastruktur durch die Ecma International standardisiert worden sind. Die Patentierung des in Visual Basic .NET 8 eingeführten IsNot-Operators ist jedoch wieder ein Schritt in Richtung einer geschlossenen Umgebung.

Siehe auch

Literatur

Weblinks

Wikibooks Wikibooks: Visual Basic .NET – Lern- und Lehrmaterialien

Einzelnachweise

  1. Produktseite Visual Basic Express Edition
  2. Patent auf den IsNot-Operator (englisch)
  3. Überblick über die Änderungen in Visual Basic 9 (englisch)
  4. Zukünftige Visual Studio-Versionen (englisch)
  5. Architektur von .NET Framework 3.5 (deutsch)

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Visual Basic .NET — Paradigm(s) Structured, imperative, object oriented and declarative Appeared in 2001 Designed by Micro …   Wikipedia

  • Visual Basic .Net — Basisdaten Paradigmen: prozedural, vollständig objektorientiert Erscheinungsjahr: 2002 Entwickle …   Deutsch Wikipedia

  • Visual Basic .NET — (VB.NET) es un lenguaje de programación orientado a objetos que se puede considerar una evolución de Visual Basic implementada sobre el framework .NET. Su introducción resultó muy controvertida, ya que debido a cambios significativos en el… …   Wikipedia Español

  • Visual Basic.NET — Visual Basic .NET Visual Basic .NET Apparu en 2001 (VB9 : 2007) …   Wikipédia en Français

  • Visual Basic .NET — Apparu en 2001 (VB10 : 2010) Auteur Microsoft …   Wikipédia en Français

  • Visual Basic.NET — (VB.NET) es una versión de Visual Basic enfocada al desarrollo de aplicaciones .NET. El lenguaje de programación es Visual Basic, que apareció en el año 1991 como una evolución del QuickBasic que fabricaba Microsoft. Es un lenguaje de… …   Enciclopedia Universal

  • Visual Basic .NET — См. также: Visual Basic Visual Basic .NET Класс языка: Объектно ориентированный, Императивный, Структурный, Декларативный Тип исполнения: компилируемый, интерпретируемый Появился в: 2001 …   Википедия

  • Comparison of C Sharp and Visual Basic .NET — The correct title of this article is Comparison of C# and Visual Basic .NET. The substitution or omission of the # sign is because of technical restrictions. Programming language comparisons General comparison Basic syntax Basic instructions …   Wikipedia

  • Visual Studio .NET — Microsoft Visual Studio Внешний вид Visual Studio 2008 SP1 с программой на языке C# в Windows Vista Тип Среда разработки программного обеспечения …   Википедия

  • Visual C++ .NET — Microsoft Visual C++ (MSVC) интегрированная среда разработки приложений на языке C++, разработанная фирмой Microsoft Visual Studio, либо отдельно в виде бесплатного функционально ограниченного комплекта Visual C++ Express Edition. Содержание 1… …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”