Migration VB6 auf VB.NET - Herausforderungen beim Umstellen von VB6-Anwendungen

Aus unserer Erfahrung mit VB6-zu-VB.NET-Migrationen wissen wir, wieviele Herausforderungen bei der Umstellung von VB6-Anwendungen auf Entwickler-Teams warten. Viele Projekte wurden - salopp gesagt - "vor die Wand gefahren", weil eine ganze Anzahl von Punkten eine Aufwandsabschätzung und damit eine halbwegs genau Ressourcenplanung unmöglich gemacht haben:

  • Prozedurale Programmierung vs. objektorientierter Programmierung.
    Viele Entwickler bzw. Projekt-Leader unterschätzen einerseits den Lernaufwand der Entwickler für die OOP, andererseits den Nutzen, die ein von Anfang an richtig entworfenes Klassenmodell bringen kann. Bitte bedenken Sie: Visual Basic .NET ist eine vollkommen objektorientierte Programmiersprache, während es sich bei VB6 "nur" um eine objektbasierende Programmiersprache handelt. Auch wenn sich Visual Basic 6 und Visual Basic .NET in den grundlegendsten Sprachelementen zu ähneln scheinen, so sind sie dennoch sehr verschieden.
  • Kennenlernen der Möglichkeiten des .NET-Frameworks.
    Alleine das .NET-Framework 2.0 besteht aus mehr als 8.000 Klassen, die alle entsprechende Methoden, Eigenschaften und Ereignisse zur Verfügung stellen. Da gerät man schnell in die Gefahr, vorhandene "Räder neu zu erfinden". Mit den 3.0 und 3.5-Versionen des Frameworks wird das Klassenmodell auf weitere Einsatzgebiete erweitert, und dank der Windows Presentation Foundation sind grafisch anspruchsvolle Anwendungen, wie sie bislang nur mit sehr viel Aufwand in C++ mit DirectX zu entwickeln waren, erstmals auch in Visual Basic möglich.
  • Windows Forms oder Windows Presentation Foundation: Wenn Visual Basic 6-Anwendungen auf Visual Basic .NET migriert werden sollen, welche der beiden grundsätzlich in Frage kommenden Plattformen für die Benutzerschnittstellen soll dann verwendet werden? Ist es sinnvoll, die Benutzeroberfläche direkt in der Windows Presentation Foundation/mit Silverlight zu entwickeln, sind Windows Forms-Anwendungen überhaupt zukunftsorientiert? Wie "kommt" meine Anwendung später zu den Benutzern - sind Browser-Anwendungen sinnvoll oder ist Click-Once-Deployment vielleicht der bessere Weg, um mit Rich Client-Anwendungen die Rechenleistung von Client-Rechnern zu nutzen?
  • Entwickeln von Objektmodellen und Frameworks. Eine gesunde Basisplattform ist das A und O einer WinForms-, Windows Presentation Foundation oder SilverLight-Anwendung. Dabei gilt es allerdings, ein Gefühl dafür zu haben, nur soviel Basisklassen wie nötig und so wenige wie möglich zu entwickeln. Ein Fundament für ein Hochhaus auszuheben, auf dem später ein Einfamilienhäuschen ruht, macht eben keinen Sinn. Abschätzen zu können, nur soviel Arbeit wie nötig in ein Objektmodell zu investieren, dass nach Möglichkeit auch für weiterer Anwendungen wiederverwendet werden kann, ist ein großer Vorteil, der Ihnen viel Zeit, Geld und graue Haare erspart.
  • Hantieren mit Daten - ADO vs. ADO.NET vs. LINQ to SQL vs. LINQ to Entities:Schon im .NET-Framework 2.0 ist der Umgang mit Datenbanken "tricky", denn das Objektmodell von ADO.NET unterscheidet sich gewaltig vom "alten" VB6-ADO. Hier lauern gerade bei der Migration älterer Anwendungen besonders gemeine Falltüren, gerade was das Entwickeln von SmartClient-Anwendungen für verschiedene SQL-Server-Provider wie Microsoft SQL Server, Oracle, Informix, DB2, MySQL oder auch den Access-Provider anbelangt. Mit dem .NET 3.5-Framework führt Microsoft übrigens eine Spracherweiterung für Visual Basic namens LINQ (Language integrated Query) ein, mit der, bei richtiger Nutzung, der Entwicklungsaufwand von Daten und Datenbank orientierten Anwendungen enorm minimiert werden kann. Doch hier gilt es für Ihr Team und für Ihre Projekte ebenfalls die richtigen Entscheidungen zu treffen: Verwenden Sie LINQ to SQL oder LINQ to Entities. Welche Technologie ist die zukunftsträchtige, welche kommt in Frage, um so einfach wie möglich von VB6 auf ein .NET-Datenmodell zu migrieren, reicht vielleicht auch ADO.NET aus. Gibt es Tools, mit denen von ADO oder RDO auf ADO.NET migriert werden kann?

Sie sehen, dass eine genaue Kenntniss der Möglichkeiten des .NET Framework, das Wissen um "Best Practices" bei der Projektentwicklung und viel Erfahrung sowohl mit der alten als auch mit der neuen Technologien große Mengen Geld sparen kann. Und wir sind überzeugt davon, über die diese Erfahrung zu verfügen.

Darüberhinaus gibt es eine ganze Reihe von Hilfsmitteln, die Sie bei der Migration von Visual Basic 6 zu Visual Basic .NET verwenden können, und die Ihnen dabei helfen, bis 80% an manuellem Coding-Aufwand einzusparen. Die folgende Seite zeigt, welche Tools das im Einzelnen sind, und wie diese Sie bei Ihren Migrationsbestrebungen unterstützen können.

Für größere Projekte stehen wir Ihnen natürlich auch für persönliche Beratungsgespräche zur Verfügung. Wir erarbeiten mit Ihnen zusammen die für Sie günstigste Migrationsstrategie, helfen Ihnen bei der Konzeptionierung einer wiederverwendbaren .NET-Klassen-Bibliothek, schulen Ihr Entwicklerteams in .NET-Technologien, zeigen Best Practices auf und begleiten Sie im Bedarfsfall auch für die Dauer der kompletten Migration.

Kontaktieren Sie ActiveDevelop für eine VB6-Migrationsberatung telefonisch unter
+49 (29 41) / 91 09 07
oder mailen Sie uns unter info@activedevelop.de.