Migration in Phasen, Komplettmigration oder hybride Anwendung?

Überblick über die verschiedenen Ansätze

Beim Einsatz von .NET im Kontext von existierenden Anwendungen ergeben sich drei prinzipielle Möglichkeiten:

  • Komplett-Migration: Zum einen kann in Erwägung gezogen werden, die komplette Anwendung von VB6 auf Visual Basic 2008 zu migrieren. Dieses Vorgehen zieht allerdings einige Änderungen am existierenden Quellcode nach sich. Gegebenenfalls kann es sogar einfacher sein, gewisse Teile komplett neu zu schreiben - da VB 2008 es Ihnen ermöglicht, Code deutlich schneller und vor allem kürzer zu formulieren. Der gewichtigste Vorteil ist, dass die Anwendung so vollständig auf .NET basiert und damit auf einer zukunftssicheren Technologiebasis steht, die über viele Jahre hinweg weiter supported und weiterentwickelt wird. Dabei kann man auch die Anwendungsarchitektur gegebenenfalls neu gestalten, um die Technologien und ggf. geänderten Anforderungen umzusetzen. Der größte Nachteil ist allerdings, dass die Umstellung auf einmal durchgeführt werden muss und die Anwendung in der neuen Fassung erst nach der kompletten Umstellung wieder ausgeliefert werden kann.
  • Hybride Anwendung: Eine Alternative ist es, eine hybride Anwendungsarchitektur zu nutzen, in der die existierende VB6-Anwendung beibehalten und nur neue Funktionalität in .NET (VB2008) entwickelt und integriert wird. Dieser Weg ist sinnvoll, falls es sich um eine Anwendung handelt, die nur gering erweitert werden soll und nicht langfristig - also nicht über den Vista oder Windows 2008 Life-Cycle hinaus supported werden muss.
  • Migration in Phasen: Die dritte Option nennt sich "Phased-Migration": Sie setzen dabei zunächst auf eine hybride Anwendungsarchitektur und realisieren zunächst nur neue oder geänderte Funktionalität in VB 2008, um diese dann in die existierende VB6-Anwendung einzubetten. Nachdem Sie so erste Kundenanforderungen mit VB 2008 umgesetzt und Erfahrung mit .NET gesammelt haben, machen Sie sich daran, weitere existierende Formulare zu migrieren. Dieser Ansatz ist neu und inzwischen sehr gut unterstützt. Der Vorteil des Ansatzes ist, dass die Anwendung jederzeit auslieferbar ist und gleichzeitig das Endziel, komplett auf .NET zu setzen, weiterverfolgt wird. In vielen Fällen ist es auch innerhalb dieses Ansatzes möglich, die Architektur der Anwendung neu zu gestalten. Es handelt sich hier also um einen im allgemeinen sehr gut gangbaren Weg, der auch von Microsoft voll unterstützt wird.

 

Wie funktioniert eine hybride Anwendung und die Migration in Phasen?

Hybride Anwendungen können sehr einfach mit dem Interop-Forms-Tookit erstellt werden. Dabei werden die in VB.NET entwickelten Forms als COM-Komponente bereitgestellt und lassen sich dann in Visual Basic 6.0 wie ein UserControl verwenden. Ferner können gemeinsame Daten in .NET und in VB6 sowohl im Speicher als auch über eine externe Datenbank genutzt werden.

Da viele existierende VB6-Anwendungen im wesentlichen nur die Strukturelemente Module und Form verwenden, berücksichtigt das Interop-Forms-Toolkit genau diese Struktur auch bei einer Migration in Phasen. Mit dem Interop-Forms-Toolkit können Sie tatsächlich je nach Bedarf und zeitlichen Möglichkeiten Formular für Formular auf VB2008 umstellen und dennoch jederzeit Ihre Anwendung ausliefern.

Hier finden Sie ein durchgängiges Beispiel in Form einer How-To-Video-Serie, welches das Vorgehen erklärt. In der Visual Studio 2008 Hilfe gibt es weiterhin ein extra Kapitel für VB6-Umsteiger.

 

Was ist im Gegenzug dazu bei einer Komplett-Migration auf .NET zu beachten?

Bei der Komplett-Migration einer Anwendung oder Code-Fragmenten von VB6 nach VB2008 sollten Sie sich zunächst über die Sprachunterschiede informieren (Typen und Typsicherheit, Objekt-Orientierung, Funktionsbibliotheken). Die Visual Studio 2008 Hilfe umfasst ein extra Kapitel, dass Ihnen als VB6-Entwickler die Unterschiede zur VB6-Version aufzeigt weiterhin kann Ihnen der Webcast Know-How: Tricks und Tips zur Code-Migration und Einführung in die OOP einen ersten Einblick geben.

Im ersten Schritt einer Migration sollten Sie den vorhandenen Code zur Migration vorbereiten. Das bedeutet, dass gewisse Code-Konstrukte oder Bibliotheken, die unter VB.NET nicht zur Verfügung stehen, durch andere im VB6 Code ersetzt werden sollten. Ein hilfreiches Werkzeug bei der Vorbereitung des Codes ist der Visual Basic 6.0 Code Advisor. Es handelt sich dabei um ein kostenloses Visual Basic 6.0 Add-in, das Ihren Code analysiert und Hinweise für die Vorbereitung zur Migration gibt. Zusätzlich ist es empfehlenswert, bei komplexeren Projekten die Informationen der Microsoft Patterns und Practices Group zur Migration zu rate zu ziehen.

Im zweiten Schritt öffnen Sie Ihr VB6 Projekt mit Visual Studio 2008, wodurch der Aktualisierungs-Assistent gestartet wird. Dieser erstellt eine Kopie Ihres Projektes und passt dabei den Code gleich an die Visual Basic 2008 Syntax an. Er erstellt einen Bericht über manuell vorzunehmende Änderungen.

Die größte Hürde bei einer Migration sind die unterschiedlichen Bibliotheken von VB6 und VB2008. Einen guten Überblick über die Unterschiede und Vorkehrungen finden Sie in der MSDN-Library. Ihre Erwartungen an die Unterstützung durch den integrierten Migration-Assistenten sollten Sie nicht zu hoch setzen, da insbesondere mit LINQ oder ADO.NET gegenüber DAO/RDO komplett andere APIs zur Verfügung gestellt wurden. Dadurch ist der manuelle Anteil der Migrationsarbeit durchaus signifikant.

Es gibt auch Werkzeuge von Drittanbietern, die die gesamte Code-Migration unterstützen. Hier sei insbesondere der VB Companion von Artinsoft genannt, der nach Herstellerangaben den Prozess der Migration gerade in komplexen Fällen deutlich vereinfacht. Unterstützungsdienstleistungen erhalten Sie auch durch unsere Migrationspartner.

 

Zusammenfassung

Die Migration in Phasen ist sicher ein guter Weg, um seine Anwendung auf VB2008 umzustellen und sich zunächst mit .NET im überschaubaren Rahmen zu befassen. So kann man einfach die neue Funktionalität in VB 2008 realisieren und in die bestehende VB6 Anwendung integrieren. Ferner kann man später die existierende Anwendung Form für Form migrieren. Das ausliefern der Anwendung ist so jederzeit möglich und auch Änderungen der Architektur sind in eingeschränktem Umfang machbar. Falls Sie also Ihre Anwendungsarchitektur nicht komplett ändern möchten, ist die Migration in  Phasen ein guter Einstiegspunkt, der durch unsere How-To-Serie begleitet wird.