Visual Basic
aus Wikipedia, der freien Enzyklopädie
Visual Basic | |
---|---|
{{{Logo}}} |
|
Basisdaten | |
Paradigmen: | prozedural, vollständig Objekt- und Ereignis-orientiert |
Erscheinungsjahr: | 1991 |
Designer: | |
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 |
Lizenz: | proprietär |
Website: |
Visual Basic (Abk. VB) ist der Sammelbegriff für verschiedene Programmiersprachen, die auf der Sprache BASIC basieren und aus der MS-DOS-Anwendung „Microsoft QuickBasic“ hervorgegangen sind. Visual-Basic-Programme laufen vornehmlich auf Windows und anderen Microsoft-Plattformen.
Inhaltsverzeichnis |
[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–1993: Integrierung des Entwicklungsprozesses
Die Firma Microsoft, die in ihren frühen Jahren vor allem durch BASIC-Interpreter groß geworden war, 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. Für Visual Basic 1 war als einzige Version ebenfalls eine DOS-Version erhältlich. Anders als QuickBasic gab es Visual Basic in zwei verschiedenen Ausführungen, der „Standard Edition“ und der „Professional Edition“.
Der Quellcode von Visual-Basic-1-Programmen wurde interpretiert, d. h. die Programme werden während der Ausführung, d. h. zur Laufzeit, in Maschinencode übersetzt. Zur Ausführung mussten deshalb sogenannte Laufzeitbibliotheken separat mitgeliefert werden; diese Bibliotheken übernahmen die erwähnte Übersetzung in Maschinencode.
Mit den 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: 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: Die .NET-Revolution
Visual Basic .NET | |
---|---|
Basisdaten | |
Paradigmen: | prozedural, vollständig objektorientiert |
Erscheinungsjahr: | 2002 |
Designer: | |
Entwickler: | Microsoft Corp. |
Aktuelle Version: | 8.0.50727 (27. November 2005) |
Typisierung: | stark, explizit (auf Wunsch auch implizit), statisch |
wichtige Implementierungen: | Microsoft Visual Basic .NET, SharpDevelop |
Dialekte: | |
Einflüsse: | Visual Basic, Java, C# |
Beeinflusste: | |
Betriebssystem: | Windows |
Lizenz: | proprietär |
Website: | http://msdn.microsoft.com/vbasic/ |
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: 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. Weiters ist seit der Version 2005 eine kostenlose, leistungsfähig eingeschränkte Express Edition von Visual Basic .NET (siehe Weblinks) verfügbar.
Mit Visual Basic 8 wurde der Operator IsNot eingeführt, der Aufsehen erlangte, als Microsoft sich diese Erfindung patentieren ließ.[1] 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 wird parallel zur Veröffentlichung von Windows Vista die neue Visual-Basic-Version 9[2] bzw. das „Visual Studio 2007“ 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.[3]
[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 Visual-Basic-Variante, die zum Erstellen von dynamischen Webseiten oder kleineren Scripts eingesetzt wird. VBS wird interpretiert, nicht kompiliert, und kann deshalb mit einem Texteditor erstellt werden. 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), die dem großen Vorbild in der aktuellen Version 2 fast in nichts nachsteht.
[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.
Module Hello Public Sub Main() MsgBox "Hallo, Welt!" End Sub End Module
In diesem Beispiel befindet sich in dem Modul Hallo die Startfunktion Main des Programmes. Der Befehl MsgBox erstellt das Meldungsfeld. Man beachte, dass der Parameter "Hallo, Welt!" hier nicht in Klammern stehen darf.
[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] Kritische Betrachtung
Visual Basic spaltet die Gemüter. Manche schätzen die einfache Erlernbarkeit, andere machen sich über die aus ihrer Sicht eingeschränkten Möglichkeiten [4] lustig.
Als .NET-Sprache unterliegt Visual Basic .NET den Vor- und Nachteilen dieser Plattform.
[Bearbeiten] Vorteile
- 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++). Viele erfahrenere Programmierer bevorzugen hingegen aus genau diesem Grund C#, da der Leistungsumfang VB.NET sehr ähnlich ist, die Sprache jedoch 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 weniger Zeitaufwand erstellt werden. Dadurch eignet es sich für Rapid Application Development. Vor allem Visual Basic Classic wurde oft eingesetzt, um erste Prototypen für Programme zu bauen, die später z.B. in C++ implementiert werden.
- Vor allem Visual Basic .NET ist 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 Informationssammlungen für Programmierer.
- Visual Basic unterstützt sowohl statische als auch dynamische Typisierung über den Datentyp Variant (bzw. „Object“ in .NET).
[Bearbeiten] Nachteile
- Visual Basic ist, anders als viele moderne Hochsprachen, kein offener Standard, sondern proprietär und geistiges Eigentum von Microsoft. Dadurch ist Visual Basic auch an Microsoft Windows gebunden, also nicht portabel. Mit Visual Basic .NET hat sich diese Bindung gelockert, da einige Teile der .NET-Infrastruktur durch die European Computer Manufacturers Association standardisiert worden sind.
- 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 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. Daher ergeben in Visual Basic .NET die Konvertierungen
CInt(True)
oderCType(True, Int32)
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.
- Üblicherweise 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. Daher ergeben in Visual Basic .NET die Konvertierungen
[Bearbeiten] Nachteile von Visual Basic Classic
- Für Anfänger konzipiert, bietet Visual Basic Classic nur wenige fortgeschrittene Eingriffsmöglichkeiten ins System, die von Profis meistens über Aufrufe von API-Funktionen realisiert werden müssen.
- Es wird oft behauptet, dass Visual Basic-Anwendungen langsamer ausgeführt würden als etwa in reinem C geschriebene Programme. Diese Behauptung ist zum Teil darauf begründet, dass bis zur Version 4 VB-Programme zwangsläufig interpretiert wurden. Für die Versionen VB5 und VB6, die Compileroptimierungen für nativen Code anbieten (ohne damit die Laufzeitdateien zu erbringen), sind solche Unterschiede reduziert worden.
- Visual-Basic-Programme benötigen auf dem Zielsystem, also dem Rechner des Kunden, zusätzliche Komponenten zur Ausführung. Bei Visual Basic Classic sind das die „Visual Basic X Runtime Files“, wobei X für die jeweilige Visual-Basic-Version steht, zum Beispiel 5 oder 6. Diese Runtime Files sind in neueren Windows-Version (ab Windows 2000) bereits in einer Standardinstallation des Betriebssystems enthalten.
- Visual Basic Classic verfügt über nur rudimentäre objektorientierte Fähigkeiten und eignet sich damit nur bedingt für professionelle Projekte.
- In Visual Basic Classic kann die Untergrenze von Feldern (Arrays) durch eine dem Code vorangestellte Anweisung auf 0 oder 1 gesetzt werden. Da diese Einstellung pro Codedatei gilt, wird so die Übernahme von Code aus anderen Dateien erschwert. In Visual Basic .NET haben alle Arrays die Untergrenze 0.
[Bearbeiten] Quellenangaben
- ↑ Patent auf den IsNot-Operator (englisch)
- ↑ Überblick über die Änderungen in Visual Basic 9 (englisch)
- ↑ Zukünftige Visual-Studio-Versionen (englisch)
- ↑ 13 Wege, Visual Basic zu hassen (englisch)
[Bearbeiten] Literatur
Wikibooks: Visual Basic Classic – Lern- und Lehrmaterialien |
Wikibooks: Visual Basic .NET – Lern- und Lehrmaterialien |
- 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.
[Bearbeiten] Weblinks
- Visual Basic bei Microsoft (englisch)
- MSDN Developer Center - Visual Basic
- Kostenlose Microsoft Visual Basic 2005 Express Edition
- Kostenloses Tutorial: Get the BASICs. VB.NET für Einsteiger und Umsteiger in zehn Teilen
- Visual Basic Tutorials and Source Code Samples (englisch)
- Visual Basic Tutorials (englisch)
- Beispiele VB
- Komplette Liste der Visual Basic 6 Funktionen