Visual Basic
aus Wikipedia, der freien Enzyklopädie
Visual Basic .NET | |
---|---|
![]() |
|
Paradigmen: | prozedural, vollständig objektorientiert |
Erscheinungsjahr: | 2002 |
Entwickler: | Microsoft Corp. |
Aktuelle Version: | 9.0.21022.8 (16. November 2007) |
Typisierung: | stark, explizit (auf Wunsch auch implizit), statisch |
wichtige Implementierungen: | Microsoft Visual Basic .NET, SharpDevelop |
Einflüsse: | Visual Basic Classic, Java, C# |
Betriebssystem: | Windows |
Lizenz: | proprietär |
Website: | http://msdn.microsoft.com/vbasic/ |
Visual Basic (Abk. VB) ist eine proprietäre objektorientierte Programmiersprache, deren neuere Versionen auf dem Microsoft .NET Framework basieren. Um zwischen den alten nicht vollständig objektorientierten und den neuen auf dem .NET Framework basierenden Versionen zu unterscheiden, werden erstere bis inklusive Visual Basic 6.0 als Visual Basic Classic, die letzteren hingegen als Visual Basic .NET (Abk. VB.NET) bezeichnet.
[Bearbeiten] Einführung
Der historisch wichtigste Vorteil von Visual Basic ist die einfache Erlernbarkeit der Sprache. Die Sprache ist bewusst an die englische Sprache angelehnt und benutzt Wörter (z. B. And, Or, Mod) anstelle von Symbolen (z. B. &&, ||, % in C++). Aus genau diesem Grund bevorzugen jedoch einige Programmierer C#, da der Leistungsumfang dem von VB.NET gleich ist, die Sprache jedoch teilweise kompaktere Formulierungen ermöglicht.
Da Visual Basic von Anfang an zum Einsatz mit einer integrierten Entwicklungsumgebung konzipiert wurde, können Visual-Basic-Programme in der Regel mit geringem Zeitaufwand erstellt werden. Dadurch eignet es sich für Rapid Application Development. Visual Basic Classic, das noch nicht die objektorientierten Fähigkeiten von VB.NET hatte, wurde oft eingesetzt, um erste Prototypen für Programme zu bauen, die später z. B. in C++ implementiert wurden.
Visual Basic gilt als sehr gut dokumentiert. Die MSDN Library, die die .NET-Architektur, die Standard-.NET-Sprachen, darunter Visual Basic .NET, sowie Visual Studio .NET dokumentiert und beschreibt, ist eine der größten (Auslieferung auf drei CDs / 1 DVD) Informationssammlungen für Programmierer.
Visual Basic unterstützt sowohl statische als auch dynamische Typisierung über den Datentyp Object (bzw. „Variant“ in VB Classic).
[Bearbeiten] Geschichte
In den frühen 1990ern hatte BASIC, das damals zusammen mit vielen Betriebssystemen geliefert wurde, gegenüber anderen Hochsprachen wie C und C++ an Bedeutung verloren. BASIC bot eine viel eingeschränktere Funktionalität und Erweiterbarkeit, wodurch es für den professionellen Einsatz nicht geeignet war.
Der spätere historische Erfolg von Visual Basic beruht vor allem auf der einfachen Erlernbarkeit, visuellen Entwicklungsumgebungen und der unkomplizierten Ausbaufähigkeit der zugehörigen Programmbibliotheken. Kritiker bemängeln die mangelhafte Funktionalität. Oft ist auch von langsamen Ausführungsgeschwindigkeiten bei leistungsschwachen Rechnern (meist nur während der Interpretation) die Rede, welche jedoch heute bei modernen Rechnern nach der Übersetzung vernachlässigbar ist.
[Bearbeiten] 1991: Visual Basic 1 und Visual Basic für DOS - Die Anfänge
Die Firma Microsoft, deren Firmengeschichte mit der Entwicklung eines BASIC-Interpreters begann, verband im Jahre 1991 ihren QuickBasic-Compiler mit einer Umgebung zur interaktiven Gestaltung von Benutzeroberflächen. Diese Umgebung, die auf Alan Cooper (manchmal als „Vater“ von Visual Basic bezeichnet) zurückgeht, erlaubte es zum ersten Mal, schnell und einfach Anwendungen für Windows zu erstellen.
Visual Basic Classic | |
---|---|
Paradigmen: | prozedural, objekt- und ereignis- orientiert |
Erscheinungsjahr: | 1991 |
Entwickler: | Microsoft Corp. |
Aktuelle Version: | 6.0 (1998) |
Typisierung: | stark, statisch, implizit und explizit (auf Wunsch nur explizit) |
wichtige Implementierungen: | Microsoft Visual Basic |
Dialekte: | VBA, VBScript |
Einflüsse: | QuickBasic |
Beeinflusste: | Gambas |
Betriebssystem: | Windows MS DOS (nur Version 1) |
Lizenz: | proprietär |
Dieser Abschnitt ist ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) ausgestattet. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und gute Belege einfügst. Bitte entferne zuletzt diese Warnmarkierung. |
Der Quellcode von Visual-Basic-1-Programmen wurde interpretiert, d. h. der Quellcode wurde während der Ausführung (also zur Laufzeit) abgearbeitet. Zur Ausführung mussten deshalb sogenannte Laufzeitbibliotheken separat mitgeliefert werden. Alternativ konnten auch eigenständige ausführbare Dateien erzeugt werden, die ohne die zusätzliche Laufzeitdatei auskamen. Diese waren dementsprechend größer. Das Verfahren ist identisch mit den Vorgängern Microsoft BASIC PDS und QuickBasic.
Visual Basic für Windows kam vor Visual Basic für MS-DOS (Abk. „VBDOS“) auf dem Markt. Während die Windows-Variante eine graphische Benutzeroberfläche hatte und auch Bitmaps anzeigen konnte, lief VBDOS im Textmodus. Die Formulare bestanden aus ASCII-Zeichen und es gab die Möglichkeit, auch in QuickBasic geschriebene Programme zu interpretieren und kompilieren. VBDOS war nicht so erfolgreich wie die Version für Windows, sodass es nie eine deutsche Version, geschweige denn eine Nachfolgeversion gab.
Anders als QuickBasic gab es Visual Basic in zwei verschiedenen Ausführungen, der „Standard Edition“ und der „Professional Edition“. Es waren Beispielprogramme enthalten, die zum Beispiel die Einbindung eines Hilfesystems, die Unterstützung von Windows-Schriftarten und die Verwendung von Präsentationsgrafiken demonstrierten.
[Bearbeiten] 1992–1993: Visual Basic 2-3 - Integrierung des Entwicklungsprozesses
Mit den nur noch unter Windows erschienenen Folgeversionen „Visual Basic 2“ (1992) und „Visual Basic 3“ (1993) wurden vor allem Erweiterungen der Sprache und der Entwicklungsumgebung umgesetzt. Unter anderem wurden Objekte eingeführt. Ab Visual Basic 2 wurden außerdem so genannte Zusatzsteuerelemente (Controls) unterstützt, mit denen Dritthersteller die Funktionalität von Visual Basic erweitern konnten und die ein wichtiger Faktor beim Erfolg von Visual Basic waren.
[Bearbeiten] 1996–1998: Visual Basic 4-6 - Erste Schritte ins 21. Jahrhundert
Das nach einer längeren Pause im Jahre 1996 veröffentlichte Visual Basic 4 gab es erstmals nicht nur in einer 16-Bit-Version für Windows-Systeme bis Version 3.1, sondern auch als 32-Bit-Version, mit der man für Windows NT und Windows 95 optimierte Programme erstellen konnte. Dem Sprung von 16 auf 32 Bit folgte im darauffolgenden Jahr die nächste große Neuerung: Visual-Basic-5-Programme wurden erstmals in nativen Code kompiliert. Damit war es – im Gegensatz zu den Vorgängerversionen – nicht mehr möglich, den Quelltext von Visual-Basic-Programmen aus der ausführbaren Datei zu extrahieren. Außerdem ergab sich ein erheblicher Performancegewinn. Durch diese Neuerungen eignete sich Visual Basic 5 erstmals auch zum Erstellen zeitkritischer Anwendungen. Trotzdem waren Visual-Basic-Programme immer noch langsamer als etwa C++-Programme.
Mit Visual Basic 4, 5 und 6 (1998) wurden der Sprache objektorientierte Elemente hinzugefügt, jedoch ohne alle Kriterien der objektorientierten Programmierung zu erfüllen. Visual Basic 6 war dabei die letzte Visual-Basic-Version, die die Erstellung von nativen Win32-Programmen ermöglichte.
Visual Basic 4 erweiterte das Konzept von „Standard Edition“ und „Professional Edition“ um die „Enterprise Edition“. Mit Visual Basic 5 wurde außerdem eine „Control Creation Edition“ (CCE) veröffentlicht, die zwar kostenlos war, jedoch nur zur Erstellung von Steuerelementen genutzt werden konnte.
[Bearbeiten] 2002–2003: Visual Basic.NET
Um die Jahrtausendwende hatte Visual Basic Vorsprung eingebüßt. Viele andere Hochsprachen boten nun auch die Möglichkeit, einfach Windows-Benutzeroberflächen zu erstellen, zum Beispiel C++ mit den Microsoft Foundation Classes. Aus diesem Grund zum Handeln gezwungen, integrierte Microsoft 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. Visual Basic .NET ist deshalb vollständig objektorientiert. Der Quellcode wird 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 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. So konnte man noch in der Version 6 im Debug-Modus den Code ändern und die Ausführung ohne Unterbrechung weiterlaufen lassen, was in VB.NET 2002 nicht mehr möglich war, in der übernächsten Version (Visual Basic 2005) jedoch wieder eingeführt wurde.
Mit Visual Basic .NET kann man 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.
Die Umstellung von früheren Visual-Basic-Versionen, welche in Abgrenzung zu Visual Basic .NET Visual Basic Classic genannt werden, bringt 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 Thunderforms 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 in der .NET-Umgebung (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.
Seit Visual Basic .NET wird Visual Basic nur noch als Teil von Microsoft Visual Studio angeboten. Visual Basic 7 wurde mit „Visual Studio .NET 2002“ ausgeliefert und basiert auf dem .NET-Framework, Version 1.0 (build 3705). 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“.
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.
[Bearbeiten] 2005–2007: Visual Basic 8 und 9 - Gegenwart und Zukunft von Visual Basic
Im November 2005 erfolgte der erste große Versionssprung des .NET Framework und des .NET Compact Framework 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 mit Templates. Viele Schnittstellen und Attribute der Laufzeitbibliothek sind auch als generische Implementation verfügbar. Weiter ist seit der Version 2005 eine kostenlose, leistungsfähig 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 SQL-Einbindungstechnologie 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]
[Bearbeiten] Ableger
Aufgrund seiner Popularität und einfachen Erlernbarkeit wurde Visual Basic Classic von Microsoft für verschiedene spezifische Umgebungen adaptiert.
[Bearbeiten] Visual Basic Script
Hauptartikel: Visual Basic Script
Visual Basic Script (kurz: VBScript oder VBS) ist eine interpretierte Visual-Basic-Variante, die zum Erstellen von dynamischen Webseiten oder kleineren Scripts eingesetzt wird. Die Sprache verwendet die gleiche Syntax wie Visual Basic Classic. Oberflächen können nicht direkt, sondern nur indirekt durch Einbetten des VBScript-Codes in HTML über den Windows Scripting Host erstellt werden. Dabei kann VBS auf alle COM-Objekte mit IDispatch-Schnittstelle zugreifen. VBS wurde außer für Windows- und clientseitige Web-Scripts auch für serverseitige Web-Scripts in einer ASP-Umgebung verwendet. Mit ASP.NET wurde VBS jedoch durch VB.NET verdrängt.
[Bearbeiten] Visual Basic for Applications
Hauptartikel: Visual Basic for Applications
Visual Basic for Applications (kurz: VBA) ist ebenfalls eine auf Visual Basic Classic basierende interpretierte Skriptsprache. Sie wurde speziell zum Automatisieren wiederkehrender Aufgaben innerhalb anderer Programme entwickelt und hat große Popularität erlangt, seit Microsoft es mit seinem Büroprogramm Office ausliefert. Über die ältesten VBA-Anbindungen verfügen Microsoft Excel, Microsoft Access (beide seit 1995) und Microsoft Word (seit 1997). Auch VBA konkurriert mit .NET, da Visual Studio .NET mit den Visual Studio Tools for Applications (vormals Visual Studio Tools for Office) ausgeliefert wird, die eine ähnliche Funktion wie VBA übernehmen.
[Bearbeiten] Entwicklungsumgebungen
Die (historisch bedingt) populärste integrierte Entwicklungsumgebung für Visual Basic ist „Microsoft Visual Basic“ bzw. „Microsoft Visual Studio“, zu der es lange Zeit keine Alternative gab. Für Visual Basic .NET gibt es jedoch eine freie Entwicklungsumgebung namens SharpDevelop (kurz: #develop).
[Bearbeiten] Syntaxbeispiele
Um einen Vergleich zu ermöglichen, erfüllen alle der folgenden Programme denselben Zweck: Sie geben alle ein Hinweisfeld mit dem Inhalt „Hallo Welt!“ aus.
[Bearbeiten] Syntax von Visual Basic Classic
Die Syntax von Visual Basic Classic ist sehr stark an QuickBasic angelehnt. Dieses Beispiel enthält die Startfunktion Main des Programmes. Der Befehl MsgBox erstellt das Meldungsfeld.
Sub Main() MsgBox "Hallo Welt!" End Sub
Das untere Beispiel zeigt eine Formular-Ereignisbehandlungsroutine für die Schaltfläche Command1.
Private Sub Command1_Click() ' Wenn man auf den Button klickt erscheint in einem Bezeichnungsfeld Label1.Caption = "Hallo Welt!" ' die Nachricht Hallo Welt End Sub
[Bearbeiten] Syntax von Visual Basic .NET
Visual Basic .NET verfügt über Befehle, die denen von Visual Basic Classic sehr ähnlich sind. Diese VB.NET-spezifischen Zusatzfunktionen erleichtert vor allem die Konvertierung von Visual-Basic-Classic-Code nach Visual Basic .NET. So ist das folgende Visual-Basic-.NET-Codebeispiel dem vorangehenden sehr ähnlich. Die MsgBox-Funktion befindet sich hier im Microsoft.VisualBasic-Namensraum, der eine Kompatibilitätsschicht zwischen der .NET-Laufzeitbibliothek und der alten Visual-Basic-Funktionsbibliothek darstellt.
Module Hello Public Sub Main() MsgBox("Hallo Welt!") End Sub End Module
Mit Visual-Basic-.NET-Mitteln lässt sich dieser Code statt als Modul auch als Klasse realisieren. Diese Vorgehensweise hat den Vorteil, dass sie sich leichter erweitern lässt und sich besser in das Konzept von .NET einfügt. In der Klasse ist die Main-Funktion ein statisches Mitglied, kann also ohne Instanz aufgerufen werden. (Siehe auch Objektorientierte Programmierung.)
Class Hello Public Shared Sub Main() MessageBox.Show("Hallo Welt!") End Sub End Class
[Bearbeiten] Besonderheiten
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)
oderCType(True, Int32)
immer noch den Wert -1; der Aufruf der .NET Framework-MethodeConvert.ToInt32(True)
evaluiert hingegen auf 1. - In den meisten Programmiersprachen deklariert eine Anweisung der Form
int a[5];
ein fünfelementiges Array. In VB.NET deklariertDim a(5) As Integer
ein sechselementiges Array mit Indizes von 0 bis 5, um abwärtskompatibel zur VB Classic SyntaxDim a([lowerBound To] upperBound)
zu bleiben.
[Bearbeiten] Rechtliche Aspekte
Visual Basic Classic ist, anders als viele moderne Hochsprachen, kein offener Standard, sondern proprietär und geistiges Eigentum von Microsoft. Dadurch ist Visual Basic Classic normalerweise auch an Microsoft Windows gebunden, also nicht portabel zu anderen inkompatiblen Betriebssystemen. Mit Visual Basic .NET hat sich diese Bindung gelockert, da einige Teile der .NET-Infrastruktur durch die Ecma International offen standardisiert worden sind. Die Patentierung des in Visual Basic .NET 8 eingeführten IsNot Operators hat diese Bedenken jedoch wieder verstärkt.
[Bearbeiten] Quellenangaben
- ↑ Produktseite Visual Basic Express Edition
- ↑ Patent auf den IsNot-Operator (englisch)
- ↑ Überblick über die Änderungen in Visual Basic 9 (englisch)
- ↑ Zukünftige Visual-Studio-Versionen (englisch)
[Bearbeiten] Literatur
- Thomas Theis: Einstieg in Visual Basic 2008. Galileo Computing, 2008, ISBN 978-3-8362-1192-5.
- René Martin: Einstieg in VB.NET. Galileo Computing, 2003, ISBN 3-89842-277-1.
- Dr. Joachim Fuchs, Andreas Barchfeld: Das Visual Basic 2005 Codebook. Addison Wesley in Pearson Education Deutschland, München 2006, ISBN 3-8273-2272-3.
- Peter Monadjemi: Visual Basic 2005 Kompendium, 2006 Markt-und-Technik
[Bearbeiten] Weblinks
- MSDN Developer Center - Visual Basic
- Get the BASICs. VB.NET für Einsteiger und Umsteiger in zehn Teilen – MSDN Webcast
- Bills Neunte – Artikel zu den Neuerungen bei Visual Basic 9
- Links zum Thema Visual Basic im Open Directory Project