cover

In Kürze erscheint:

Klaus Werner Wirtz

Visual Basic .NET 2010 praxisorientiert

Band 2: Datenbanken und Web-Anwendungen

Klaus Werner Wirtz

Visual Basic .NET 2010
praxisorientiert

Band 1: Programmieren für Windows

Books on Demand

© 2010 – Klaus Werner Wirtz

Herstellung und Verlag: Books on Demand GmbH, Norderstedt

ISBN 978-3-8482-7630-1

Bibliografische Information der Deutschen Nationalbibliothek:

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über dnb.d-nb.de abrufbar.

Vorwort

Visual Basic .NET ist eine moderne, objektorientierte Programmiersprache, die sich durch folgende Eigenschaften auszeichnet:

Dieses Buch enthält eine Einführung in Visual Basic .NET für Wirtschaftsinformatiker, die sowohl für das Selbststudium als auch zur Begleitung eines Programmierkurses an einer Hochschule geeignet ist. Im Rahmen eines Moduls in einem Bachelor-Studiengang mit vier Semesterwochenstunden Präsenz, davon zwei Stunden Praktikum, zuzüglich Vor- und Nachbereitungszeit kann man den Inhalt gut vermitteln.

Präsentiert wird eine didaktisch motivierte Auswahl aus dem gesamten Visual Basic .NET-Sprachumfang, der so groß ist, dass er in einem Band nicht komplett dargestellt werden kann. Die getroffene Auswahl verzichtet zum einen auf weniger wichtige Details bei der Vermittlung von Sprachelementen; dabei wird aber stets Wert darauf gelegt, den Leser auf die Möglichkeiten hinzuweisen, diese Details bei Bedarf selbst herauszufinden. Visual Studio enthält dazu eine umfangreiche, nach Stichworten durchsuchbare Dokumentation, die durch zusätzliche Texte und Programmbeispiele im Internet ergänzt und erweitert wird. Zum anderen werden zwei große Anwendungsbereiche, nämlich Datenbank- und Web-Anwendungen, für einen zweiten Band ausgespart. Im vorliegenden Band werden folgende Themen behandelt:

Bei Ihnen als Leser werden nur geringe Vorkenntnisse vorausgesetzt: Sie sollten wissen, was ein Computer ist und wozu Programme eigentlich gut sind. Kenntnisse einer anderen Programmiersprache werden nicht erwartet – obwohl sie nie schaden.

Programmieren ist eine praktische Tätigkeit, die man am besten dadurch lernt, dass man selbst Programme schreibt. Deshalb enthält das Buch zahlreiche Übungen, in denen Sie Programme zur Vertiefung des Gelernten entwickeln und testen sollen. Ein zentrales Anwendungsbeispiel, das mehrfach verfeinert und erweitert wird, zieht sich durch das ganze Buch hindurch.

Im WWW finden Sie unter der URL <http://vbnet1.notlong.com/> weiteres Material zum Buch, u.a. Lösungen zu den Aufgaben.

Über das Buch verstreut werden – meist in Fußnoten – URLs angegeben, die zu vertiefenden Informationen führen. Diese URLs haben zum Zeitpunkt der Erstellung des Manuskripts (Mitte 2010) gestimmt; wie lange sie gültig bleiben, entzieht sich meinem Einfluss. Die im Buch abgedruckten Bildschirmfotos, die Hinweise zur Handhabung von Windows und Visual Studio einschließlich der Menübefehle beziehen sich auf meine Standardinstallation der Visual Basic 2010 Express Edition und des .NET Framework 4.0 auf der Basis von Windows 7 Professional. Unter anderen Versionen von Visual Studio und/oder anderen Windows-Versionen können sich kleinere Abweichungen ergeben.

Was ist neu?
Dieses Buch ist eine Überarbeitung und Aktualisierung meines 2008 erschienenen Buchs “Objektorientierte Programmentwicklung mit Visual Basic .NET – Grundlagen”, ISBN 978-3-486-58603-9. Die wesentlichen Änderungen sind:

Dank

Gern danke ich den Personen, die für das Zustandekommen dieses Buchs wichtig waren und sind:

Trotzdem sind natürlich alle Fehler in diesem Buch ganz allein meine! Schreiben Sie mir eine E-Mail, wenn Sie einen finden.

Mönchengladbach-Rheydt, im Juli 2010 Klaus Werner Wirtz
<mailto:wirtz@hs-niederrhein.de>

Inhalt

Vorwort

  1. Einführung
  2. Grundkonzepte und Sprachelemente von Visual Basic .NET
  3. Klassen und Objekte, Vererbung und Schnittstellen
  4. Ereignisse
  5. Fehlerbehandlung
  6. Fenster und Menüs
  7. Eingabe und Ausgabe
  8. .NET-Programmdateien (Assemblies)

Literatur

Index

1 Einführung

Lernziel
In diesem Kapitel erfahren Sie, was hinter dem Begriff .NET steckt und wie die Programmiersprache Visual Basic .NET in die .NET-Landschaft passt. Als Vorbereitung für die praktische Anwendung wird erläutert, was man zum Entwickeln von Programmen in Visual Basic .NET benötigt und wo man es her bekommt.

1.1 Was ist .NET?

.NET ist eine Plattform für die Software-Entwicklung, die von Microsoft für PCs, die mit dem Betriebssystem Windows laufen, entwickelt wurde. .NET umfasst unter anderem

.NET kann auch gesehen werden als radikaler Neuanfang von Microsoft im Bereich der Windows-Entwicklungsumgebungen. Leitideen sind

Um diese Visionen umzusetzen, enthält .NET mehrere neue Programmiersprachen wie C# und Visual Basic .NET, um das es in diesem Buch geht. Diese und alle weiteren .NET-Sprachen werden in eine gemeinsame .NET-Zwischensprache (IL – Intermediate Language) übersetzt, die von einer einheitlichen Laufzeitumgebung (CLR – Common Language Runtime) unterstützt wird. Im Vergleich zu früheren Sprachen und Sprachversionen wie z.B. Visual Basic 6 sind neue Klassenbibliotheken hinzugekommen, die neue Programmiermodelle unterstützen (so z.B. der Datenzugriff in ADO.NET) oder ganz neue Anwendungen ermöglichen (so z.B. ASP.NET mit der Möglichkeit, Web-Anwendungen und Web Services zu erstellen). Dazu kommt mit Visual Studio eine komfortable Entwicklungsumgebung, die viel mehr ist als nur eine grafische Bedienoberfläche für die Übersetzer.

Abb. 1.1 Die Intermediate Language

Abb. 1.1 verdeutlicht das Konzept der Integration verschiedener Sprachen in .NET: Für jede Sprache wird ein Übersetzer benötigt, der in eine einheitliche Zwischensprache, die Intermediate Language (IL), übersetzt. Zur Ausführungszeit wird dieser Code dann in Maschinencode übersetzt und ausgeführt.

In Abb. 1.2 wird die Architektur von .NET zusammengefasst: Mehrere Sprachen werden in eine gemeinsame Zwischensprache nach der Common Language Specification übersetzt; diese wird vom .NET-Framework unterstützt. Visual Studio als Entwicklungsumgebung hilft bei allen diesen Aufgaben.

Abb. 1.2 Die Architektur von .NET

Die Klassenbibliotheken, die im .NET-Framework enthalten sind, unterstützen zahlreiche Entwicklungsaufgaben durch vorgefertigte Lösungen für immer wiederkehrende Probleme; einige davon sind:

1.2 Versionen und Varianten von Visual Basic .NET und Visual Studio

Die folgende Tabelle zeigt in knapper Form die Geschichte von .NET. Eine ausführlichere Darstellung finden Sie z.B. in der Wikipedia1.

Tab. 1.1 Geschichte von .NET

Jahr .NET Framework-Version Visual Studio-Version
2002 1.0 2002
2003 1.1 2003
2005 2.0 2005
2006 3.0 -
2008 3.5 2008
2010 4.0 2010

Aktuell2 ist also Visual Studio 2010 mit dem .NET Framework Version 4.0. Diese Version wurde im April 2010 veröffentlicht.

Visual Studio 2010 wird in mehreren Varianten (Editions) angeboten:

Die Express-Variante enthält alles, was ein Einsteiger in die Welt der Windows-Programmentwicklung braucht. Sie ist dauerhaft kostenlos. Ursprünglich hatte Microsoft angekündigt, Visual Studio Express für die Dauer eines Jahres kostenfrei zur Verfügung zu stellen; dieser Zeitraum ist aber inzwischen ins Unendliche verlängert worden. Die anderen Varianten enthalten mehr Funktionen, mehr Dokumentation, weniger Einschränkungen und/oder spezielle Integrationshilfsmittel; einen Vergleich der Varianten findet man auf den Microsoft-Seiten3. Sie sind kostenpflichtig.

Visual Studio Express wird weiter nach unterstützten Programmiersprachen bzw. Anwendungstypen unterschieden:

Von den Microsoft-Seiten4 können Sie eine (oder alle) dieser Sprachversionen herunterladen5. Wir benutzen die

Visual Basic 2010 Express Edition in deutsch.

Laden Sie auch verfügbare Aktualisierungen (Service Packs, Updates) herunter.

1.3 Alternativen zu .NET und Visual Studio

Da Visual Studio in der Express-Edition seit 2005 kostenfrei ist, ist der Bedarf an kostengünstigen Alternativen überschaubar. Daher nur zwei kurze Hinweise:

1.4 Übungen: Erste Schritte mit .NET und Visual Studio

Diese Übungen gehen davon aus, dass Sie die Visual Basic 2008 Express Edition in deutsch mit allen verfügbaren Aktualisierungen installiert haben. In den ersten Übungen benutzen wir den Kommandozeilen-Compiler vbc.exe, danach die Visual Studio-Entwicklungsumgebung.

Falls Sie der Kommandozeilen-Compiler nicht interessiert, können Sie die ersten Übungen ohne jeden Verlust überspringen. Lesen Sie aber unbedingt den Abschnitt zur zeichen- und zeilenorientierten Ein-/Ausgabe, da die dort behandelten Befehle auch in vielen anderen Übungen vorkommen!

Der Kommandozeilen-Compiler vbc.exe

Suchen Sie auf Ihrer Festplatte nach der Datei vbc.exe (eventuell müssen Sie die “Erweiterte Suche” benutzen). Bei einer Standard-Installation finden Sie sie im Verzeichnis C:\Windows\Microsoft.NET\Framework64\v4.0.303198. Das zeigt, dass der Übersetzer zum .NET Framework gehört, nicht zu Visual Studio – letzteres wird standardmäßig in C:\Program Files (x86)\Microsoft Visual Studio 10.0 installiert.

Um den Übersetzer nutzen zu können, müssen Sie sein Verzeichnis dem Verzeichnispfad hinzufügen. Öffnen Sie das Programm Eingabeaufforderung (in Start > Alle Programme > Zubehör) und geben Sie den Befehl

ein. Jetzt können Sie den Befehl

ausführen. Da Sie keine Quellprogrammdatei zum Übersetzen benannt haben, zeigt Ihnen der Compiler nur, mit welchen Optionen man ihn benutzen kann – siehe Abb. 1.3. Wir werden die Standardeinstellungen verwenden.

Abb. 1.3 vbc.exe

Lassen Sie das Programm Eingabeaufforderung für die nächsten Schritte geöffnet! (Wenn Sie es schließen und später wieder öffnen, müssen Sie den set-Befehl erneut eingeben.)

Zeichen- und zeilenorientierte Ein- und Ausgabe

Programme müssen mit ihren Benutzern kommunizieren, d.h. Eingabewerte entgegen nehmen und Ausgabewerte anzeigen. Hier werden nur die einfachsten Befehle erläutert, um Ihnen simple Ein- und Ausgabeoperationen in der zeichen- und zeilenorientierten Umgebung des Programms Eingabeaufforderung zu ermöglichen.

Console.Write(zeichenkette) und Console.WriteLine(zeichenkette) geben eine Zeichenkette aus. Bei Write bleibt die Einfügemarke hinter dem letzten ausgegebenen Zeichen stehen; bei WriteLine wird danach die Zeile beendet, so dass der Cursor anschließend auf der ersten Position einer neuen Zeile steht. Eine Zeichenkette wird in Anführungszeichen eingeschlossen, z.B. "Hallo Welt!". Die Zeichenkette kann sich auch als Ergebnis eines Ausdrucks ergeben, in dem der Operator & verwendet wird, der zwei Zeichenketten miteinander verbindet. Wenn x und y numerische Variablen sind, dann ist z.B. folgende Anweisung möglich:

Hier wird die Summe ausgerechnet, das Ergebnis von einer Zahl in eine Zeichenkette umgewandelt, mit der ersten Zeichenkette verbunden und ausgegeben.

Console.WriteLine() ohne Zeichenkette bewirkt nur einen Zeilenumbruch.

Console.ReadLine() liest alle Zeichen bis zum Zeilenende, das durch Drücken der Eingabetaste angezeigt wird, ein und gibt die gelesenen Zeichen – ohne das Zeilenende – als Zeichenkette an das Programm weiter. ReadLine muss also mit einer Variablen zusammen verwendet werden, die die gelesenen Zeichen aufnimmt; z.B. so

Erwartet man, dass der Benutzer eine ganze Zahl eingibt, dann muss man die von ReadLine gelesene Zeichenkette in eine ganze Zahl umwandeln; die Funktion CInt und ihre Verwandten lernen Sie in Abschnitt 2.7 näher kennen:

Wartet man am Ende eines Programms nur noch auf eine Bestätigung, dass der Benutzer das angezeigte Ergebnis zur Kenntnis genommen hat, dann fügt man noch ein ReadLine ein. Der Benutzer muss dann die Eingabetaste drücken, damit das Programm endet.

“Hallo Welt!” mit zeichenorientierter Ausgabe

Öffnen Sie den Windows-Editor (Start > Alle Programme > Zubehör > Editor) und geben Sie folgendes Programm ein:

Das Programm enthält eine Ausgabe- und eine Eingabeanweisung, eingebettet in eine Prozedur (Sub – Subroutine), die wiederum in einen Modul (Module) eingebettet ist.

Speichern Sie das Programm unter dem Dateinamen Test1.vb an einem Ihnen genehmen Ort ab, z.B. auf dem Schreibtisch, im Ordner Dokumente oder einem Unterordner. Wechseln Sie dann zum Programm Eingabeaufforderung. Machen Sie den Ordner mit Test1.vb zum aktuellen Ordner und starten Sie den Visual Basic .NET-Compiler mit

Wenn Sie keine Schreibfehler in Ihr Programm eingebaut haben, gibt der Compiler nur einige Identifikationszeilen aus und beendet sich nach kurzer Zeit wieder. Das ist gut; geben Sie

ein. Sie sehen u.a. eine Zeile für Ihr Quellprogramm Test1.vb und eine Zeile für das vom Compiler erzeugte ausführbare Programm Test1.exe. Letzteres können Sie mit dem Befehl

starten. Der Text “Hallo Welt!” wird angezeigt; danach wartet das Programm darauf, dass Sie die Eingabetaste drücken, und beendet sich. Abb. 1.4 zeigt die letzten drei Schritte. Glückwunsch zum ersten Programm!

Abb. 1.4 Übersetzung und Ausführung von Test1.vb

Abb. 1.5 Fehlermeldung des Compilers

Bauen Sie nun einige Schreibfehler in Ihr Quellprogramm ein; ändern Sie beispielsweise im Editor Module zu Madule und WriteLine zu WritLine. Speichern Sie die Datei und übersetzen Sie sie erneut; Sie erhalten nun Fehlermeldungen, die mehr oder weniger deutlich auf Ihre Fehler hinweisen. Im Fall Madule heißt die Fehlermeldung Deklaration erwartet, was nicht sehr aufschlussreich ist; neben anderen Fehlermeldungen wird aber zu End Module die Fehlermeldung Vor 'End Module' muss ein zugehöriges 'Module' stehen erzeugt, die Sie auf die richtige Spur bringen sollte. Nach der Korrektur dieses Fehlers wird bei der nächsten Übersetzung dann auch der zweite Fehler bemerkt, wie in Abb. 1.5 zu sehen.

“Hallo Welt!” mit Ausgabe in ein Fenster

Legen Sie eine Kopie von Test1.vb an, nennen Sie sie Test2.vb und öffnen Sie sie im Editor. Ändern Sie den Text wie folgt:

Neben der Ausgabezeile soll nun mit dem Messagebox.Show-Befehl ein Text in einem Fenster angezeigt werden. Bei der Übersetzung des Programms erhalten Sie die Meldung, dass der Name Messagebox nicht deklariert wurde. Messagebox ist ein Bestandteil einer .NET Framework-Bibliothek namens System.Windows.Forms, die man explizit ansprechen (importieren) muss, wenn man sie verwenden möchte. Fügen Sie vor der Module-Zeile eine neue Zeile hinzu:

Abb. 1.6 Ausgabe von Test2.vb

Die Übersetzung klappt dann; der Aufruf des Programms erzeugt, wie in Abb. 1.6 zu sehen, die Ausgabezeile und ein Fenster, in dem der Text und eine OK-Schaltfläche angezeigt werden. Wenn Sie auf OK klicken, beendet sich das Programm.

“Hallo Welt!” mit einer Klasse und mehreren Quelldateien

Kopieren Sie Test2.vb nach Test3.vb und ändern Sie den Quellcode:

Statt der Messagebox-Zeile wird hier eine Variable namens h vereinbart, die ein Objekt der Klasse HalloFenster ist. Anschließend wird die Methode Zeigen dieses Objekts aufgerufen. Die Klasse wird in einer weiteren Quellprogrammdatei namens Test3a.vb angelegt:

Diese beiden Dateien müssen nun zusammen übersetzt werden. Man kann in einem Aufruf des Compilers mehrere Quelldateien angeben:

Das ausführbare Programm heißt dann Test3.exe – nach der ersten Quelldatei. Rufen Sie es auf.

Die Visual Studio-Entwicklungsumgebung

Die bisherigen Übungen sollten Ihnen zeigen, dass man im Prinzip mit dem .NET Framework allein auskommen kann; Visual Basic .NET-Programme kann man vollständig von Hand erstellen und mit dem Compiler übersetzen. Trotzdem ist es aus vielen Gründen schön und komfortabel, eine Entwicklungsumgebung zu haben, die dem Programmierer Arbeit abnimmt und Fehler zu vermeiden hilft. Eine kurze Tour durch Visual Studio soll diese Punkte beleuchten.

Nach dem Start der Visual Basic 2010 Express Edition, wie der volle Name lautet, erscheint eine Startseite, die u.a. zuletzt geöffnete Projekte (Programme) auflistet und Online-Ressourcen anbietet. Mit dem Menübefehl Datei > Neues Projekt erhält man ein Fenster, in dem man unter verschiedenen Projekttypen wählen kann. Wir werden in diesem Buch behandeln:

Abb. 1.7 Fenster “Neues Projekt”

In diesen Projektvorlagen sind bereits geeignete Voreinstellungen und Ressourcen enthalten, die man dann nicht mühsam selbst zusammenstellen muss. Erstellen Sie nun eine Konsolenanwendung namens Test4 und klicken Sie auf OK. Das Hauptfenster der Entwicklungsumgebung erscheint; es sollte in etwa so aussehen wie Abb. 1.8.

Abb. 1.8 Hauptfenster der Entwicklungsumgebung

Das Hauptfenster ist in mehrere kleinere Fenster unterteilt; daneben enthält es noch eine Menüzeile und eine Symbolleiste, deren Funktionen bei Bedarf erläutert werden. Der Projektmappen-Explorer im oberen rechten Fenster zeigt die Bestandteile Ihres Programms an, die unter dem Projektnamen gruppiert werden; dies entspricht in etwa der Speicherung Ihrer Projektdaten in einem Ordner auf der Festplatte, der nach Ihrem Projekt benannt ist9. Das – noch leere – Projekt besteht aus einem Symbol My Project, das – vereinfacht gesprochen – für die Eigenschaften und Einstellungen des Projekts steht, und aus dem Quellprogramm, das standardmäßig Module1.vb heißt10. Im Eigenschaften-Fenster unten rechts werden die Eigenschaften des jeweils ausgewählten Objekts angezeigt. Hier sehen Sie die – nicht sehr interessanten – Eigenschaften von Module1.vb; ein Hilfetext dazu findet sich weiter unten. In dem großen Fenster auf der linken Seite kann über die Karteireiter am oberen Rand etwas zur Anzeige ausgewählt werden; hier sehen Sie den Code-Rahmen für Module1, der für Sie generiert worden ist.

Wenn Sie auf My Project doppelklicken, öffnet sich links ein Fenster, in dem Sie zahlreiche Einstellungen verändern können. Die meisten sind gut so, wie sie sind; achten Sie aber unter dem Punkt Kompilieren darauf, dass Folgendes eingestellt ist (Abb. 1.9):