Vorteile der Migration von Visual Basic 6.0 auf Visual

Werbung
Vorteile der Migration von Visual Basic 6.0
auf Visual Basic .NET
Whitepaper
Ken McNamee
Eric Cherng
James Duff
Scott Stanfield
Vertigo Software, www.vertigosoftware.com
Jay Roxe
Microsoft Corporation
August 2004
Betrifft:
Microsoft Visual Basic 6.0
Microsoft Visual Basic .NET
Microsoft Visual Studio .NET 2003
Microsoft .NET Framework 1.1
Zusammenfassung
Eine kürzlich durchgeführte Studie von Doculabs hat gezeigt, dass Visual Basic .NETWebanwendungen deutlich mehr Anwender unterstützen als vergleichbare VB 6Anwendungen. Dieses Dokument fasst die Ergebnisse der Studie zusammen.
Hervorgehoben werden insbesondere die Steigerung der Anwendungsleistung sowie der
Entwicklerproduktivität. Wir zeigen einige dieser Vorteile, in dem wir die
Vergleichsanwendung von der ASP/Visual Basic 6.0-Version auf die ASP.NET/Visual Basic
.NET-Version migrieren.
Im Durchschnitt haben wir allein durch die Migration von Visual Basic 6.0 nach Visual
Basic .NET eine Steigerung des Systemdurchsatzes um 300 Prozent notiert. Alle anderen
Systemkomponenten blieben dabei unverändert. Dieses Dokument fasst die Ergebnisse
der Studie zusammen und erläutert einige der neuen Funktionalitäten von Visual Basic
.NET, wie etwa Output-Caching, die zu diesen Ergebnissen geführt haben.
1 von 13
Einführung
Die Ergebnisse des Vergleichstests verdeutlichen, dass ein Upgrade auf Visual Basic .NET
zu einer Leistungssteigerung um wenigstens das Doppelte der ursprünglichen Visual
Basic 6.0-Anwendung führen kann. Wie aber kann ein Technologie-Upgrade zu einem
solch drastischen Performancegewinn führen? Dieses Dokument untersucht die Leistung
einer realen Anwendung und diskutiert die neuen Technologien in ASP.NET und Visual
Basic .NET, die zu solchen signifikanten Verbesserungen in Performance und
Skalierbarkeit führen.
Visual Basic .NET verkörpert die neueste Version der Visual Basic-Programmiersprache.
Bereits seit der ersten Version ist Visual Basic als einfache, produktive Sprache bekannt,
die für die Erstellung leistungsstarker Anwendungen eingesetzt wird. Visual Basic .NET
führt diese Tradition fort, in dem es die Sprache weiterentwickelt, doch aber vieles
derselben, vertrauten Syntax beibehält. Zusätzlich wird Visual Basic .NET durch das .NET
Framework unterstützt. Dadurch erhalten Entwickler Zugang zu vielen weiteren
leistungsstarken Funktionalitäten, die die vorangehenden Versionen nicht beinhalteten.
Etwas so Komplexes beispielsweise wie der Aufruf eines Webdienstes in Visual Basic 6.0
bedarf in Visual Basic .NET jetzt nur noch zweier Codezeilen.
Um die Leistungsgewinne darzustellen, die sich durch die Migration von Visual Basic 6.0
nach Visual Basic .NET ergeben, werfen wir einen Blick auf Vergleichstests der NileWebanwendung. Bei Nile handelt es sich um eine Beispielanwendung eines OnlineBuchhandels (E-Commerce), die von zahlreichen unabhängigen, testenden Unternehmen
viel genutzt wird, um Anwendungsplattformen zu bewerten. Diese Anwendung, die
ursprünglich von Doculabs und dem PC Magazine verwendet wurde, um diverse
Anwendungsplattformen zu testen, wurde nach Visual Basic 6.0 und Visual Basic. NET
portiert. Obwohl es sich bei Nile nur um ein Beispiel handelt, kann es doch als wertvoller
Vergleichsmaßstab genutzt werden, da es viele reale Webanwendungselemente
verwendet. So ist Nile zu 90 Prozent datengetrieben, nutzt Session States und
Anwenderauthentifizierungs-Logins.
Wir betrachten die Vergleichstests der beiden Visual Basic-Versionen der NileAnwendung: die eine, die in ASP mit Visual Basic 6.0 COM+ Komponenten geschrieben
wurde, und die andere, die in ASP.NET 1.1 unter Verwendung von Visual Basic .NET
geschrieben wurde. Durch den Vergleich von Visual Basic 6.0 und Visual Basic .NET in
derselben Anwendung mit derselben Rechnerkonfiguration, wird es uns möglich sein, die
erheblichen Leistungsverbesserungen zu erkennen, die Visual Basic .NET bietet.
Um den Vergleichstest durchzuführen, wurde ein Skript verwendet, das simulierte, der
Anwendung alle zwanzig Minuten gleichzeitig 250 virtuelle Anwender hinzuzufügen. Der
Vergleichstest galt als beendet, wenn zu viele HTTP-Fehler auftraten oder die
durchschnittliche Response-Zeit von drei Sekunden überschritten wurde. Der folgende
Abschnitt zeigt die Ergebnisse des Vergleichstests. Weitere Informationen über die
Hardware und Softwareeinstellungen finden sich am Ende desselben Abschnittes.
Bei den in diesem Dokument aufgeführten Ergebnissen handelt es sich um die
Zusammenfassung einer Studie. Die kompletten Ergebnisse können Sie hier finden.
2 von 13
Spitzendurchsatz
Der Spitzendurchsatz (Peak Throughput) wird definiert als der maximale Durchsatz, den
eine bestimmte Konfiguration unterstützen kann. Die folgende Abbildung zeigt den
Spitzendurchsatz für vier verschiedene CPU-Konfigurationen, die sowohl mit der Visual
Basic 6.0- als auch der Visual Basic .NET-Nile-Anwendung getestet wurden.
Wie Sie an der Abbildung oben erkennen können, überragt die ASP.NET/VB.NET-Version
die entsprechende ASP/VB6-Version um wenigstens 200 Prozent. Dies ist tatsächlich
eine bescheidene Zahl, denn die höheren CPU-Konfigurationen zeigen, dass die Visual
Basic .NET-Version die Visual Basic 6.0-Version um mehr als das Dreifache des
Spitzendurchsatzes übertrifft.
In dem Fall von Visual Basic 6.0 bedeutet die Steigerung der CPU-Zahl die Steigerung
der Anwendungsleistung um durchschnittlich 48 Prozent. Dem gegenüber steht die
Visual Basic .NET-Version der Anwendung, bei der die Leistung um durchschnittlich 70
Prozent gesteigert wird. Das zeigt, dass es besser möglich ist, zusätzliche Ressourcen zu
nutzen und skalierbarere Lösungen zu erstellen, wenn Anwendungen mit Visual Basic
.NET geschrieben werden.
Kleinunternehmen und Hobby-Entwickler verwenden üblicherweise keine MultiprozessorServer für den Betrieb ihrer Webanwendungen. Aufgrund der
Performanceverbesserungen in Visual Basic .NET übertrifft die ASP.NET/VB.NETAnwendung deutlich die ASP/VB6-Anwendung – selbst im Fall der 1-CPU- und 2-CPUKonfiguration. Die Möglichkeit der Performanceskalierung gestattet es, die
Webanwendung mit einer minimalen Hardwareanforderung zu starten. Es besteht die
Option, weitere Hardware entsprechend wachsender Performanceanforderungen später
flexibel hinzuzufügen.
Anders als bei Kleinunternehmen laufen die meisten Unternehmensanwendungen
üblicherweise mit mehreren CPUs, um eine optimale Performance zu erzielen. Die
folgende Abbildung betrachtet die 8-CPU-Konfiguration. Sie zeigt, dass die
Spitzendurchsatzleistung der Visual Basic .NET-Anwendung mehr als drei Mal besser ist
als die der Visual Basic 6.0-Anwendung.
3 von 13
Vergleich der Skalierbarkeit
Der Spitzendurchsatz ist eine Zahl, die man kennen sollte. Wichtiger aber ist, wie der
Durchsatz bei Anwenderbelastung variiert. Ein Durchsatzvergleich zeigt Ihnen das
Maximum erhaltener Transaktionen, die vom System unterstützt werden, ehe das
System übersättigt ist und Fehler erzeugt. Die nachstehende Abbildung zeigt einen
Durchsatzvergleich für die ASP/VB6- und die ASP.NET/VB.NET-Nile-Version auf einem 8CPU-Konfigurationsserver.
Die oben stehende Abbildung zeigt, dass die Visual Basic 6.0-Anwendung bis zu 4.500
virtuelle Anwender mit ca. 500 Transaktionen pro Sekunde unterstützen kann, ehe sie
die Testkriterien nicht mehr erfüllen kann. Das ist eine große Nutzeranzahl. Ist aber
4 von 13
nicht vergleichbar mit der Visual Basic .NET-Version, die 13.000 virtuelle User mit ca.
2.200 Transaktionen pro Sekunde unterstützen kann. Das bedeutet, dass bei derselben
Anwendung ein Upgrade von Visual Basic 6.0 auf Visual Basic .NET die Unterstützung
von mehr als zwei Mal so vielen Anwendern mit einem mehr als vier Mal so hohen
Durchsatz erlaubt. Während alle anderen Elemente die gleichen sind, wie etwa die
Hardware oder das Betriebssystem, zeigen der Durchsatz und die Zunahme der
Benutzer, dass Anwendungen, die in Visual Basic .NET geschrieben wurden, Ressourcen
wesentlich effizienter nutzen. Dadurch erhöhen sie den Wert bestehender Investitionen
mehr als Anwendungen, die in Visual Basic 6.0 geschrieben wurden.
Durch alle Vergleichstestergebnisse hindurch zeigt der allgemeine Trend, dass die
Migration von Visual Basic 6.0-Anwendungen nach Visual Basic .NET – insbesondere die
Migration von Webanwendungen – zu enormen Zuwächsen hinsichtlich Leistung und
Skalierbarkeit führt. In einem späteren Abschnitt diskutieren wir die technologischen
Verbesserungen in Visual Basic .NET, die solch dramatische Leistungssteigerungen
ermöglichten.
Setup
Bei den Hardware- und Software-Beschreibungen in diesem Abschnitt handelt es sich um
eine Zusammenfassung der kompletten Informationen, die in der vollständigen Studie
zu finden sind.
Hardware
Für die Server in diesem Vergleichstest wurde die Compaq ProLiant-Serie verwendet. Für
den Datenbankserver wurde ein Compaq ProLiant DL580-Server mit 4-CPUs (733 MHz
Pentium III Xeon) und 3.6 GB RAM genutzt. Als Webanwendungsserver wurde ein
Compaq ProLiant 8500R mit 4- und 8-CPUs (700 MHz Pentium III Xeon) und 2 GB RAM
eingesetzt. Um den notwendigen Workload auf dem Server zu generieren, wurden
insgesamt fünfzig Single-Prozessor-Dell-Client-Workstations verwendet. Um den Test zu
verwalten und die Ergebnisse zu sammeln, wurde schließlich ein Mercury Interactive
Controller eingesetzt.
Software
Als Betriebssystem für die Vergleichstests wurde Windows Server 2003 Enterprise
Edition verwendet. Auf diesem Betriebssystem wurde SQL Server für die Datenbank
eingesetzt, Internet Information Services (IIS) 6.0 wurde verwendet, um die NileWebanwendung zu hosten. Um die VB.NET-Version von Nile zu betreiben, wurde das
integrierte .NET Framework 1.1 eingesetzt. Um die notwendige Auslastung zu erzeugen
und die Ergebnisse zu erfassen, wurde die Mercury Interactive LoadRunner 7.5Testumgebung verwendet.
5 von 13
Sechs herausragende Gründe, um nach
Visual Basic .NET zu migrieren
Visual Basic .NET bietet die zurzeit einfachste und zugleich produktivste Sprache und
Tools, um Anwendungen für Microsoft Windows und das Web schnell zu erstellen. Visual
Basic .NET ist die ideale Wahl für bestehende Visual Basic-Entwickler ebenso wie für
neue Entwickler, die auf die Microsoft .NET-Entwicklungsumgebung migrieren wollen.
Visual Basic .NET bietet erweiterte Visual Designer, eine gesteigerte
Anwendungsperformance, bessere Deployment-Möglichkeiten, verbesserten
Datenbankzugriff und eine leistungsstarke Integrated Development Environment (IDE,
integrierte Entwicklungsumgebung), mit der Entwickler ihre Anwendungsentwicklung
deutlich beschleunigen können.
Einfachere, leistungsstärkere webbasierte
Anwendungsentwicklung
Als erstklassige ASP.NET-Sprache ermöglicht es Visual Basic .NET Entwicklern,
Webanwendungen einfach zu erstellen, die gegenüber klassischen ASPWebanwendungen gewaltige Verbesserungen in Leistung und Produktivität bieten. Visual
Basic-Entwickler können jetzt ihre bestehenden Kenntnisse einsetzen, um schneller als
je zuvor hoch performante, skalierbare und zuverlässige Webanwendungen zu erstellen.
Wie also erlangt Visual Basic .NET solch deutliche Leistungsgewinne für die
Webentwicklung gegenüber Visual Basic 6.0? Einer der ersten Punkte, der hier erwähnt
werden muss, ist die Tatsache, dass das schwerfällige Interpreted Scripting-Modell, das
vom klassischen ASP verwendet wurde, verstoßen wurde. Bei ASP.NET-Seiten handelt es
sich tatsächlich um vollständig kompilierte Klassen innerhalb der Webanwendung. Sie
laufen drei bis fünf Mal schneller als interpretierte ASP-Seiten. Eine Seite wird von der
ASP.NET Runtime automatisch einmalig kompiliert und an einem temporären Ort
zwischengespeichert, bis die Seite verändert und neu kompiliert wird.
Ein zweiter Punkt ist, dass ASP.NET eine Funktionalität beinhaltet, die Output Caching
genannt wird. Sie erlaubt es der Runtime, die Verarbeitung einer Seite zu überspringen,
wenn bereits eine zwischengespeicherte Kopie des Output im Speicher besteht. Dadurch
kann die Zeit, die notwendig ist, um den HTML-Output an den Anwender
zurückzusenden, drastisch reduziert werden. Gleichzeitig kann die Durchsatzleistung des
Webservers deutlich gesteigert werden. Zudem ist das ASP.NET Output Caching sehr
konfigurierbar. Seiten können für jeden beliebigen Zeitraum zwischengespeichert
werden, basierend auf jeglicher Anzahl individuell anpassbarer Parameter. Output
Caching unterstützt auch das Zwischenspeichern einzelner Teile von Seiten. Das
bedeutet, dass der Großteil einer Seite zwischengespeichert werden kann, während nur
ein Bereich der Seite wirklich dynamisch bleibt. Schließlich haben Visual Basic .NETEntwickler Zugriff auf eine noch leistungsstärkere Caching API, die zusätzlich zu HTML
das Zwischenspeichern von Objekten und Daten erlaubt. Diese technologischen
Verbesserungen sind die wesentlichen Gründe, warum die Leistungsdiagramme, die
oben als Ergebnisse der Vergleichstests gezeigt wurden, solch deutliche Vorteile von
ASP.NET-Webanwendungen, die in Visual Basic .NET erstellt wurden, zeigen können.
Abgesehen von der Performance bietet ASP.NET einen weiteren Vorteil: die Einfachheit
der Sprache. Bei vorangehenden Versionen von Visual Studio (insbesondere Visual
6 von 13
InterDev) war es für die Webentwicklung erforderlich, dass Entwickler verschiedene
Sprachen beherrschten: VBScript für ASP-Seiten, Visual Basic 6.0 für COMKomponenten, HTML für die Benutzerschnittstelle und JScript für den Client-Browser.
Durch Verwendung der in ASP.NET integrierten Funktionalitäten und Steuerelemente
und von Visual Basic .NET als Programmiersprache, ist es Entwicklern möglich, schnell
und einfach eine Thin-Client-Benutzerschnittstelle zu erstellen, die von jedem Browser
und auf jeder Plattform intelligent wiedergegeben werden kann. Die Steuerelemente
reichen von grundlegenden Text-Feldern und -Buttons hin zu umfassenden
Steuerelementen wie Kalendern, DataGrids, Field Validators und mehr. ASP.NET
entscheidet automatisch, welches die beste Weise ist, diese Steuerelemente als HTML
und JScript auszugeben (obwohl die Möglichkeit, mit HMTL und JScript zu
programmieren, weiterhin vollständig unterstützt wird). Zusätzlich erkennt ASP.NET
automatisch, welcher Browsertyp eine Seite anfordert und gibt den angemessenen
HTML/JScript für diesen Browser aus. Es besteht also nicht länger der Bedarf,
angepassten Code zu schreiben, um die spezifischen Browsertypen zu unterstützen.
ASP.NET hat außerdem deutliche Verbesserungen im Bereich der Code-Wartbarkeit mit
sich gebracht. Klassische ASP-Webanwendungen verfügten ziemlich häufig über eine
äußerst unorganisierte Struktur. Die Seiten beinhalteten nicht nur den HTML-Output für
den Browser, sondern auch die Geschäftslogik in Form von serverseitigem VBScript.
Wohl konnten Code und HTML durch Kompilierung der Geschäftslogik in eine separate
COM-Komponente getrennt werden. Dafür war es allerdings erforderlich, ein neues
Projekt in einem anderen Tool zu erstellen und eine weitere Sprache zu beherrschen –
und schließlich war es immer noch notwendig, VBScript-Zeilen zu integrieren, um die
COM-Komponenten aufzurufen. ASP.NET-Seiten, die mit Visual Basic .NET oder einer
anderen .NET-Sprache erstellt wurden, bieten ein Konzept, das „Code Behind“ genannt
wird. Damit wird es möglich, HTML in einer Datei zu belassen, während der serverseitige
Code sich in einer anderen Datei befindet. Da der Code wesentlich einfacher zu lesen
und zu warten ist, erlaubt dieses Konzept eine weit effizientere Team-basierte
Entwicklung und gesteigerte Entwicklerproduktivität. Durch die Verwendung von Code
Behind wird es möglich, dass ein Webdesigner die einfache ASP.NET-Syntax verwendet,
um das Layout der Seite zu erstellen, während ein Visual Basic .NET-Entwickler
gleichzeitig an der Geschäftslogik arbeiten kann. Der gleichzeitige Zugriff auf Quellcode
wird damit wesentlich weniger häufig.
Session State wurde für ASP.NET umgeschrieben. Dabei wurden viele der Punkte
einbezogen, von denen man im klassischen ASP gelernt hatte, das sie ein echtes Manko
darstellten und die Nützlichkeit des Session-Objekts in einer Webfarm-Umgebung
reduzierten. Zusätzlich zum klassischen ASP-Modell beinhaltet ASP.NET zwei neue
Möglichkeiten, die es erlauben, Anwendungen einfach von einem einzigen Server zu
einer Multiserverfarm zu skalieren und gleichzeitig weiterhin die Vorteile von Session
State zu nutzen. Der Session State kann jetzt in einem dedizierten State-Server oder
auch in einer SQL Server-Datenbank gespeichert werden. Auf beide Möglichkeiten kann
von allen Servern in der Webfarm zugegriffen werden, und es besteht der zusätzliche
Vorteil, dass der Session State nicht verloren geht, sollte die Webanwendung aus
irgendeinem Grund gestoppt und neu gestartet werden. ASP.NET Session State bietet
außerdem eine wesentlich bessere Unterstützung für Cookie-lose Operationen. All diese
Optionen sind konfigurierbar, so dass die Art des verwendeten Session State im Betrieb
verändert werden kann, ohne irgendwelche Ausfallzeiten in Kauf nehmen zu müssen.
7 von 13
Erstellung leistungsstarker Windowsbasierter Anwendungen
Visual Basic .NET ist das aktuell produktivste Tool für die Erstellung leistungsstarker
Microsoft Windows-basierter Anwendungen und Dienste. Es bietet eine erstklassige
Umgebung für die Erstellung von Windows Forms-Anwendungen mit Unterstützung für
XML-Webdienste, den erweiterten Windows Form Designer und viele zusätzliche
Steuerelemente.
Datenzentrische Windows-basierte Anwendungen können in einer verteilten Architektur
durch Verwendung von XML-Webdiensten für die Vermittlung ihrer Datenanfragen
skalierbarer gemacht werden. Das .NET Framework bietet einen hohen
Unterstützungsgrad für Webdienste, indem es die Methode zur Abfrage an einen
Webdienst über das Internet so einfach macht wie eine lokale Abfrage.
Der neue Windows Forms Designer stellt eine deutliche Verbesserung gegenüber dem
Visual Basic 6.0 Forms Designer dar. Er ermöglicht es Entwicklern, ihre DesktopAnwendungen in geringerer Zeit auf den Markt zu bringen. Die Form-Klasse verfügt jetzt
über viele neue Eigenschaften und Steuerelemente, die den Code, den Visual Basic
.NET-Entwickler schreiben müssen, deutlich reduzieren, und gleichzeitig eine
umfassende, moderne Benutzerschnittstellenerfahrung bieten. Beispielsweise erfordert
die Unterstützung für Control Anchoring und das flexible Docking nicht länger komplexen
Code im Resize Event Handler.
Das Formular kann mit der Eigenschaft „Opacity“ teilweise transparent gemacht werden
– oder sogar nicht-rechteckig, wenn die Eigenschaft „TransparencyKey“ verwendet wird.
Durch Verwendung der Eigenschaft „TopMost“ kann das Formular über jedes andere
Anwendungsfenster gestellt permanent sichtbar gemacht werden.
Visual Basic 6.0 beinhaltete eine umfassende Sammlung von Steuerelementen, die ein
Reichtum an Funktionalitäten mit einem einfachen Drag&Drop von der Toolbox bot.
Visual Basic .Net erweitert diese Sammlung um einige weitere Steuerelemente wie
CheckedListBox, PrintPreviewControl und LinkLabel, das als anzuklickender WebbrowserLink angezeigt wird.
Nehmen wir als Beispiel die Erstellung einer Anwendung, die ein Systemablage-Icon
unterstützt. Das NotifyIcon-Steuerlement in Visual Basic .NET erlaubt es Entwicklern, ein
Anwendungs-Icon in der Systemablage einfach anzuzeigen, ohne zu komplexen Win32
API-Aufrufen umsortieren zu müssen. Dem könnten wir das ContextMenu-Steuerelement
hinzufügen, um für das Systemablage-Icon ein Rechte-Mausklick-Menü anzubieten oder
es sonst wo in der Hauptbenutzerschnittstelle der Anwendung zu verwenden. Mit Visual
Basic wäre für diese einfache Aufgabe einiges an Fähigkeiten und Kenntnissen der reinen
Win 32-APIs notwendig gewesen.
Durch die leistungsstarken neuen Objekt orientierten Möglichkeiten von Visual Basic
.NET ist es einfacher denn je, bestehende UserControls mit weniger und leichter zu
wartendem Code zu erweitern.
Visual Basic .NET bietet zudem eine fundiertere und integriertere Unterstützung
zahlreicher Win32 API-Funktionen, für die zuvor komplexer Code mit DeclaresStatements erforderlich war. Die Klassen im System.Drawing Namespace bieten eine
einfache API für die Durchführung komplexer Window-Zeichnungen. Es besteht
außerdem eine integrierte Unterstützung für die meisten bekannten Image-Typen wie
8 von 13
GIF, JPG und PNG. Dieser Namespace ermöglicht es Entwickler auch, ihre eigenen
Images einfach programmatisch zu erstellen oder sogar ein bestehendes Image mit Text
zu überlagern.
Dank integrierter Unterstützung für reale Windows-Dienste, Multi-Threading und Zugriff
auf Webdienste können Visual Basic .NET-Entwickler jetzt komplexere und
leistungsfähigere Anwendungen erstellen. Visual Basic .NET bietet eine ServiceBaseKlasse, die die Erstellung von Windows-Diensten zu einem Klacks machen – ohne den
Bedarf einer Drittanbieterlösung. Schließlich wird die Anwendungsleistung und Reaktionszeit durch die neuen Threading-Fähigkeiten für den Anwender deutlich spürbar
und messbar verbessert.
Die Visual Basic-Sprache an sich wurde dramatisch verbessert und modernisiert. Visual
Basic .NET hat sich zu einer vollständig Objekt orientierten Sprache gewandelt, die einen
leistungsfähigeren, wieder verwendbaren und letztlich besser zu wartenden Code
ermöglicht. Eine konsequente Typenkontrolle sorgt für weniger aufwändig zu suchende
Bugs und eine eindeutigere Schnittstelle, wodurch die Wiederverwendbarkeit verbessert
wird. Eine konsequente Ausnahmehandhabung macht die Fehlersuche deutlich effizienter
und genauer – und sorgt somit für eine ganzheitlich stabilere Anwendung.
Nahtlose Bereitstellung
Einer der Bereiche, in denen Visual Basic .NET dramatische Vorteile gegenüber Visual
Basic 6.0 zeigt, ist der Bereich der Bereitstellung (Deployment). Visual Basic 6.0Entwickler sind mit dem Prozess vertraut, der gemeinhin „DLL-Hölle“ genannt wird: dem
Prozess der Installierung einer Anwendung, Registrierung der Komponenten und der
Frage, wie verschiedene Versionen derselben Komponente über verschiedene
Anwendungen hinweg gemeinsam genutzt werden können. Im besten Fall kann man
davon sprechen, dass dieser Prozess lästig ist. Im schlimmsten Fall jedoch davon, dass
er ein Alptraum ist. Das .NET Framework bietet eine Funktion, die „XCOPY Deployment“
genannt wird. Sie ermöglicht es, sowohl Windows- als auch Webanwendungen ganz
einfach zu installieren, indem sie in das Zielverzeichnis kopiert werden.
In den Fällen, in denen sich XCOPY Deployment nicht eignet, ermöglicht es das neue
Auto-Download-Deployment, Windows-basierte Anwendungen auszuführen, indem
lediglich mit einem Webbrowser auf eine URL gezeigt wird. Windows-Anwendungen, die
mit Visual Basic .NET erstellt wurden, können jetzt genauso installiert und gewartet
werden wie eine HTML-Seite: indem der Server mit der neuen Anwendung oder
Anwendungskomponente aktualisiert wird. Dieses Konzept wird „No-Touch-Deployment“
genannt und stellt sicher, dass Anwender immer über die neueste Version einer
Windows-Anwendung verfügen. Dadurch kann der Anwender seine gewohnte
Benutzerschnittstelle nutzen, und gleichzeitig werden viele der Probleme eliminiert, die
im Zusammenhang mit dem Deployment von Windows-basierten Anwendungen
auftreten. Microsoft bietet darüber hinaus weitere Komponenten wie bspw. den Updater
Application Block for .NET Applications, der es Entwicklern erlaubt, leistungsstarke und
flexible Anwendungen zu erstellen, die sich selbst intelligent aktualisieren können.
Auch im Fall von Webanwendungen ist ASP.NET nicht knapp an bemerkenswerten
Deployment-Fähigkeiten. So besteht bspw. nicht länger der Bedarf, COM-Komponenten
zu registrieren – und dadurch einige Minuten an Ausfallzeit in Kauf zu nehmen, während
denen der Webserver gestoppt und neu gestartet werden muss, um verschlossene DLLs
auszulesen. ASP.NET-Anwendungen, die mit Visual Basic .NET erstellt wurden, brauchen
9 von 13
lediglich über die laufende Webanwendung kopiert zu werden. Weder muss der
Webserver angehalten noch der Server rebootet werden. Alle bestehenden HTTPAnfragen an den Webserver werden auch weiterhin von der alten, gespeicherten Version
der Webanwendung verarbeitet, während alle neuen HTTP-Anfragen bereits durch die
neue Version gehandhabt werden. Diese Funktion ermöglicht tatsächlich eine
Webanwendung mit Null Ausfallzeit.
ASP.NET verfügt außerdem über ein neues Konzept für eine WebanwendungsKonfigurationsdatei, genannt „web.config“. Anwendungsspezifische Einstellungen können
sicher in dieser Datei gespeichert und zusammen mit dem Rest der Webseiten
bereitgestellt werden. Die Einstellungen werden von der Datei einmalig gelesen und in
der Memory gespeichert. Wird die web.config-Datei verändert, so liest ASP.NET diese
Einstellungen erneut aus der neuen Datei aus und beginnt einen neuen Prozess, um
neue Anfragen zu verarbeiten. Auch in diesem Fall ist keine Webserver-Ausfallzeit
erforderlich, wenn Änderungen an der Anwendung vorgenommen werden.
Leistungsstarker, flexibler Datenzugriff mit
ADO.NET
Mit ADO.NET erhalten Entwickler Zugriff auf leistungsstarke Komponenten wie die
DataSet-Klasse und ein stark typisiertes Programmiermodell, das über IntelliSense und
eine Befehlsvervollständigung für Data Access Code verfügt. Anders als klassisches ADO
ist ADO.NET optimiert, um sowohl für verbundene als auch für getrennte
datenzentrische Anwendungen die beste Performance und Skalierbarkeit zu bieten.
Die DataSet-Klasse stellt eine hervorragende Möglichkeit dar, um Daten abzufragen und
zu aktualisieren und gleichzeitig die notwendige Zeit zu reduzieren, während der eine
kostenintensive Verbindung zur Datenbank gehalten werden muss. Klassisches ADO
eignete sich hervorragend für das Senden und Empfangen von Daten. Gleichwohl gab es
nur begrenzte Möglichkeiten, mit den Daten zu arbeiten, sobald der Entwickler die
Verbindung beendet hat. Das führte viele Entwickler zu einem Weg, der die Leistung,
Reaktionszeit und Skalierbarkeit ihrer Systeme begrenzte. Das DataSet fungiert wie eine
gespeicherte Kopie der Datenbank, inklusive zahlreicher Tabellen, Beziehungen und der
Möglichkeit, ursprüngliche und neue Werte nachzuverfolgen. Auf diese Weise kann ein
Teil der Datenbank über die DataSet-Klasse zum Client gebracht, mit neuen Daten
aktualisiert und zurück zum Server gesendet werden, wo er wieder in die Datenbank
eingespeist wird. Durch Verwendung von Visual Basic .NET und ADO.NET können
Entwickler schnell produktiv werden und mit minimalem Codeaufwand eine
Datenmanagementanwendung erstellen. Der Data Adapter Configuration Wizard kann
allen notwendigen Code generieren, um Daten aus jeder Tabelle der Datenbank
auszuwählen, einzufügen, zu aktualisieren und zu löschen. Darüber hinaus bietet er –
anders als klassisches ADO – dem Entwickler die Möglichkeit, jeden SQL-Befehl
anzupassen und sogar Stored Procedures zu erstellen.
Das klassische ADO ist in seiner XML-Unterstützung beschränkt. ADO.NET indes wurde
von Grund auf für die Verwendung von XML in so gut wie jeder vorstellbaren Weise
erstellt. Beispielsweise kann die DataSet-Klasse mit nur einer Codezeile in ein gut
gestaltetes XML-Dokument umgewandelt werden – einschießlich des XML-Schemas, das
die Struktur des Dokuments beschreibt. Das DataSet kann außerdem transparent in eine
Datei serialisiert und später wieder in ein DataSet deserialisiert werden, ohne
irgendwelche Daten oder Schema-Information zu verlieren. Schließlich kann das DataSet
10 von 13
sich selbst in XML konvertieren, wenn es als Teil einer Webdienstanfrage über das
Internet transportiert wird.
ADO.NET beinhaltet neue Data Provider, die speziell dafür erstellt wurden, direkt mit
Datenbanken wie SQL Server 7.0 oder größer zu kommunizieren. Dies kann zu einem
Leistungsanschwung führen, da es für den Visual Basic .NET-Code nicht erforderlich ist,
vielzählige API-Layer zu durchlaufen, ehe er zu der aktuellen Datenbank gelangt. Das
macht Datenbankabfragen schneller und wesentlich effizienter. Es besteht auch ein Data
Provider für OLEDB-unterstützte Datenbanken und sogar einige neue Data Provider, die
direkten Zugriff zu anderen Datenbank wie Oracle anbieten.
ADO.NET baut auf früheren Versionen von Datenzugriffsmodellen auf. Und da es fest in
das .NET Framework und die Visual Studio .NET IDE integriert ist, bietet es die Leistung
und Produktivität, die Entwickler erfordern.
Bestehende Investitionen fortführen
Die Migration auf Visual Basic .NET bedeutet nicht, dass vergangene Investitionen in
Visual Basic 6.0-COM-Komponenten oder sogar die Visual Basic-Sprache selbst unnötig
waren. Durch die Verwendung eines einfachen Werkzeugs namens „Type Library
Importer“ ist es Visual Basic .NET möglich, COM-Komponenten sowohl in Windows- als
auch Webanwendungen zu verwenden, als wären es wirkliche .NET-Assembler. Aus
diesem Grund ist es möglich, Geschäftslogikkomponenten, die seit Jahren werden, erst
dann als .NET-Komponenten neu zu entwickeln, wenn Zeit und Budget dies erlauben.
Und wenn diese Zeit gekommen ist, werden es Tools wie VB6 Code Advisor und der
Visual Basic .NET Upgrade Wizard Entwicklern ermöglichen, 60 bis 90 Prozent ihres
bestehenden Visual Basic 6.0-Codes nach Visual Basic .NET zu migrieren.
Um die Interoperabilität zwischen Visual Basic 6.0 und Visual Basic .NET noch flexibler
zu machen, besteht außerdem ein Werkzeug namens Type Library Exporter, das aus
einer .NET Assembly eine komplementäre COM-Komponente erstellt. Auf diese Weise
können Entwickler, die Visual Basic .NET verwenden, getrost weiterhin ihre COMbasierten Anwendungen erweitern – so werden bestehende Investitionen gewahrt und
gleichzeitig die neue Entwicklung gefördert.
Schließlich wird auch die Investition in die Visual Basic-Sprache gewahrt. Visual Basic
.NET erhält viele der syntaktischen Funktionalitäten und den besonderen Klang der
Sprache Visual Basic 6.0, während es gleichzeitig die Leistung und Flexibilität einer
wirklich modernen Programmiersprache bietet.
Gesteigerte Produktivität mit Visual Studio
.NET 2003
Visual Studio .NET unterstützt Visual Basic-Entwickler mit mehr Leistung denn je zuvor,
um äußerst schnell sehr produktiv zu werden. Der Bereich der Projekttypen umfasst
jetzt Konsolenanwendungen, Windows GUI-Anwendungen, Klassen- oder
Steuerelement-Bibliotheken, Webanwendungen, Webdienst-Anwendungen, WindowsDienste und sogar Anwendungen, die für den Betrieb auf mobilen Endgeräten wie dem
Pocket PC und Smartphone gedacht sind.
Das Server Explorer-Werkzeugfenster bietet Entwicklern eine Möglichkeit, auf einen Blick
schnell die laufenden Rechnerressourcen zu sehen – wie Message Queues, Performance
11 von 13
Counter, SQL Server-Datenbanken, Windows-Dienste und Ereignisberichte. Diese
Dienste können schnell und einfach auch in eine Anwendung integriert werden. Dafür ist
es lediglich notwendig, ein Element auf die Designoberfläche eines Webform oder
Windows Form zu ziehen, die sich daraufhin in programmierbare Objekte wandeln und
so eine beispiellose Produktivität ermöglichen. Ziehen Sie beispielsweise eine SQL
Server-Tabelle auf die Designoberfläche, so fügt die Visual Studio .NET IDE
augenblicklich allen notwendigen Code hinzu, um die Tabelle in Laufzeit mit der
Datenbank zu verknüpfen. Damit wird es möglich, jede beliebige Spalte der Tabelle
auszuwählen, hinzuzufügen, aktualisieren oder zu entfernen. Ziehen Sie den
Performance Counter auf die Designoberfläche, so kann der aktuelle Wert des Counters
mit nur einer Codezeile zu jeder beliebigen Zeit abgefragt werden.
Der Visual Studio .NET Debugger wurde deutlich verbessert, um Entwicklern einen sehr
genauen Speicherauszug des aktuellen Betriebsstatus der Anwendung und aller
beteiligten Variablen und Objekte zu geben. Das Call Stack-Fenster bietet eine Liste aller
Funktionsaufrufe, die bis zu einem bestimmten Punkt in der laufenden Anwendung
gemacht wurden. Das Task List-Fenster hilft Entwicklern bei der Organisation und
Verwaltung der mit der Anwendungserstellung verbundenen Aufgaben. Mithilfe dieses
Fensters können Entwickler Probleme, die bei der Code-Kompilierung oder -Erstellung
automatisch erkannt wurden, einfach sortieren, filtern, erkennen und lokalisieren. Das
Command-Fenster kann verwendet werden, um Visual Studio .NET-Befehle auszugeben,
Ausdrücke zu bewerten, Statements auszuführen oder variable Werte zu drucken und
editieren. Sogar IntelliSense wird vollständig unterstützt. Das Debug-Fenster kann
gefiltert und flexibel angepasst werden, um nur die passendsten Informationen
anzuzeigen – wie in-scope Variablen oder nur solche Variablen, an denen der Entwickler
ein spezielles Interesse hat. Daraus folgend können der Entwickler Probleme schneller
und genauer aufzeigen, ohne dass er eine Reihe irrelevanter Daten durchsuchen muss,
ehe er die Information findet, die er benötigt.
Die Visual Studio .NET IDE ist zudem hoch konfigurierbar und erweiterbar, wodurch das
Tool leicht an die Weise angepasst werden kann, wie der Entwickler am liebsten arbeitet
– und nicht anders herum. Die Entwicklungsumgebung ist vollständig anpassbar – von
Schriftarten und Farben zu Anzeige, Platzierung und Verhalten des Werkzeugfensters.
Mühselige Entwicklungsaufgaben lassen sich durch Verwendung des erweiterten, Visual
Basic-basierten Macro Recorder und Editor vereinfachen. Entwickler können sogar ihre
eigenen leistungsstarken Add-in Tools erstellen, die direkt in die IDE eingebunden
werden. Visual Studio bietet einen Projekttypen genau zu diesem Zweck, wodurch der
Prozess sogar noch einfacher wird.
Schließlich beinhaltet Visual Studio .NET das herausragende IntelliSense, eine
vollständig integrierte, kontextsensible Hilfe und einen schnellen Zugang zur ganzen
Bandbreite des im Microsoft Developer Network (MSDN) verfügbaren Wissens, um neue
Visual Basic .NET-Enwickler so schnell als möglich produktiv werden zu lassen.
Zusammenfassung
Visual Basic .NET ist das jüngste einer langen Reihe von produktiven und leicht zu
erlernenden Entwicklerwerkzeugen. Es hat die bekannte, vom Menschen zu lesende
Syntax, das Drag&Drop-Benutzerschnittstellendesign und die Einfachheit einer Sprache
beibehalten und weiterentwickelt, um die herum eine der stärksten
Entwicklergemeinschaften weltweit entstanden ist. Darüber hinaus haben Performance
12 von 13
und Skalierbarkeit mit Visual Basic .NET den gleichen Stand erhalten wie Produktivität
und einfache Nutzung. In dem in diesem Dokument beschriebenen Fall, haben wir
gesehen, dass die Migration der Nile-Webanwendung von Visual Basic 6.0 nach Visual
Basic .NET zu einer mehr als dreihundertprozentigen Durchsatzsteigerung geführt hat.
Visual Basic .NET nimmt das Beste aus Visual Basic 6.0 und verbindet es mit der
Performance des .NET Framework, um Entwicklern einen bestechenden Grund für das
Upgrade zu liefern.
13 von 13
Herunterladen