RSS
StartseiteKnowledge LibraryTop 10Impressum

2.23 Kann ich meine VB6 Anwendungen nach VB.NET übernehmen?

VB6/VB.NET/VB2005/VB2008

Von:  [Home]|  [Home]

Visual Basic 6 ist ein Auslaufmodell und wurde 2001 von Visual Basic.NET abgelöst. Allerdings ist VB.NET kein technologischer Nachfolger von VB6. Dies macht sich nicht nur dadurch bemerkbar, dass VB.NET auf dem .NET Framework basiert, sondern auch in drastischen Änderungen in der Syntax. VB.NET ist als neuer BASIC Dialekt zu betrachten. Entsprechend schwierig gestaltet sich auch die Portierung von bestehenden VB6 Projekten nach VB.NET, da beide Sprachen nicht zueinander kompatibel sind.

Zwar bringt die Visual Studio.NET IDE einen Konvertierungs-Assistenten mit, der versucht VB6-Projekte nach VB.NET zu überführen, allerdings sind die Ergebnisse allenfalls als experimentelle Lernobjekte zu betrachten, bei Projekten, die dem "Hallo Welt" Stadium entwachsen sind. Diese enthalten oft Passagen, für die es keine 1:1 Entsprechung unter VB.NET gibt. An diesen Stellen werden entweder Kommentare eingefügt oder der Assistent produziert hier schlicht Unsinn. Probleme bereitet vor allem der Einsatz vieler COM Komponenten, wie externen Steuerelementen und Code-Bibliotheken. Ein sofort ablauffähiges Projekt, kommt in den seltensten Fällen am anderen Ende heraus. Es ist viel Nachbearbeitung notwendig, um ein annährend brauchbares Ergebnis zu erzielen. Fazit: Für produktiv eingesetzte Anwendungen ist dieser Assistent unbrauchbar.

Ein optimales Ergebnis erzielt man, indem man die Anwendung unter .NET komplett neu schreibt. Hierbei können neue Funktionen von VB.NET und dem .NET Framework berücksichtigt und das Anwendungsdesign entsprechend überdacht werden. Vom zeitlichen Aufwand her, fährt man mit diesem Ansatz wesentlich besser, als der Nachbearbeitung des vom Konvertierungs-Assistenten produzierten Projekts. Weitere Arbeit kann man sich sparen, indem man seine bestehende Anwendung in Komponenten aufteilt, wenn das nicht bereits geschehen ist. COM (ActiveX) Komponenten werden von .NET unterstützt und können nahezu uneingeschränkt verwendet werden. So lassen sich einzelne Bereiche Schritt für Schritt nach VB.NET übernehmen, wie es der zeitliche Rahmen zulässt.

Mit Hilfe des Interop Forms Toolkit besteht eine weitere Option, VB6 Anwendungen Schritt für Schritt nach .NET zu überführen, indem man neue Teile der Anwendung in VB.NET erstellt und über das Interop Forms Toolkit in VB6 einbindet

Abzuwägen ist natürlich, ob sich für die Anwendung eine solche Portierung lohnt, ob die Anwendung in Zukunft von den Neuerungen der .NET Plattform profitieren kann. Auch im Hinblick darauf, dass Betriebssystem Erweiterungen in Zukunft verstärkt der .NET Plattform zugänglich gemacht werden.

Auch wenn der Mainstream-Support für VB6 am 31. März 2005 ausgelaufen ist, bedeutet dies nicht, dass VB6 Anwendungen in Zukunft nicht mehr laufen werden. Sowohl unter den aktuellen Betriebssystem Versionen, als auch mindestens in der nächsten Generation von Windows, werden VB6 Anwendungen unterstützt werden.

Microsoft stellt einige Artikel zum Thema Migration von VB6 nach VB.NET bereit, die weitergehenden Informationen enthalten.

Links zum Thema