Visual-Basic-6-Anwendungen, ins Web migriert
In vielen Unternehmen steuern Visual-Basic-6-Programme noch immer Aufträge, Produktion, Termine und Buchhaltung, mehr als fünfundzwanzig Jahre nach Erscheinen der letzten Version. Wir migrieren sie zu Webanwendungen in C#, mit denselben Daten und Geschäftsregeln, mit oder ohne den ursprünglichen Quellcode.
Warum jetzt
Microsoft hat den Support für die Entwicklungsumgebung von Visual Basic 6 am 08/04/2008 beendet. Die Laufzeitumgebung wird weiterhin mit Windows ausgeliefert und für die gesamte Lebensdauer der Windows-Versionen unterstützt, die sie enthalten, darunter Windows 11. Das gilt aber nur als 32-Bit-Komponente und nur für schwerwiegende Regressionen und kritische Sicherheitsprobleme. Steuerelemente, die nicht zu Windows gehören, etwa MSCOMCTL.OCX, MSFLXGRD.OCX und fast alle OCX-Dateien von Drittanbietern, müssen mit der Anwendung installiert werden und sind nicht durch Microsoft abgedeckt.
In der Praxis liegt die Schwierigkeit bei Menschen und Werkzeugen. Microsoft unterstützt die IDE nicht auf 64-Bit-Windows, Entwickler mit VB6-Kenntnissen werden jedes Jahr weniger, und jeder neue PC bedeutet eine weitere Installation mit von Hand registrierten Komponenten.
- Entwicklungsumgebung Visual Basic 6Ende des Microsoft-Supports
- Windows 10Ende des Microsoft-Supports
Was wir migrieren
Das ganze Programm, einschließlich dessen, wovon es außerhalb des eigenen Codes abhängt.
Formulare und Steuerelemente
Fenster mit Textfeldern, Kombinationsfeldern, Tabellen, Registerkarten und Steuerelementfeldern, auch MSFlexGrid, ListView und TreeView. Sie werden zu Webseiten, die das gewohnte Layout beibehalten.
Logik in Modulen und Klassen
Berechnungen, Prüfungen und Abläufe, verteilt auf .bas- und .cls-Dateien und Formularereignisse. Wir überführen sie in serverseitige Dienste mit Tests.
Datenzugriff
DAO-, RDO- und ADO-Code für Access, SQL Server, Oracle oder andere Datenbanken, einschließlich SQL, das durch Aneinanderhängen von Zeichenketten entsteht. Die Daten wandern nach SQL Server oder MySQL oder bleiben, wo sie sind, wenn andere Systeme davon abhängen.
Berichte und Druck
Crystal Reports, DataReport und Ausdrucke, die Zeile für Zeile mit dem
Printer-Objekt gezeichnet werden. Daraus wird jeweils ein PDF-Dokument mit demselben Inhalt.COM-Komponenten und DLLs
Selbst geschriebene ActiveX-DLLs, Komponenten von Drittanbietern und Aufrufe der Windows-API über
Declare. Wir identifizieren jede davon und entscheiden, ob sie ersetzt, neu geschrieben oder nicht mehr gebraucht wird.Dateien, Einstellungen und Geräte
Konfiguration in INI-Dateien oder der Registry, Importe aus Textdateien und Anbindungen an Waagen, Etikettendrucker oder serielle Geräte über MSComm. Wir prüfen, welche davon weiterhin eine lokale Installation brauchen.
So sieht die Web-Version aus
- Übersicht
- Kalender
- Patienten
- Behandlungen
- Berichte
| Zeit | Dr Valdrin | Dr Sato | Prophylaxe |
|---|---|---|---|
| 08:30 | L. Moreau - Kontrolle | A. Bianchi - PZR | |
| 09:00 | K. Novak - Füllung | ||
| 09:30 | S. Haddad - Krone | J. Lindqvist - PZR | |
| 10:00 | P. Ortega - Wurzelbehandlung | ||
| 10:30 | E. Kowalski - Kontrolle | ||
| 11:00 | N. Ferri - Extraktion | R. Dimitrov - PZR | |
| 11:30 | T. Brennan - Füllung | ||
| 12:00 | C. Duval - Kontrolle | H. Ito - PZR |
Ein Terminbuch, wie es in einem VB6-Programm am Empfang aussehen könnte, und dieselbe Woche im Browser.
Ziehen Sie den Regler oder nutzen Sie die Pfeiltasten.
Was woraus wird
- In VB6: Formulare (.frm) und ihre Ereignisse
- In der Webanwendung: Webseiten, mit der Logik auf dem Server
- In VB6: Module (.bas) und Klassen (.cls)
- In der Webanwendung: C#-Dienste mit automatischen Tests
- In VB6: OCX-Steuerelemente, auf jedem PC registriert
- In der Webanwendung: Standard-Webkomponenten, nichts zu installieren
- In VB6: ADO- oder DAO-Recordsets
- In der Webanwendung: Parametrisierte Abfragen auf SQL Server oder MySQL
- In VB6: Crystal Reports oder DataReport
- In der Webanwendung: PDF-Dokumente, erzeugt vom Server
- In VB6: Ein Setup für jeden Arbeitsplatz
- In der Webanwendung: Eine Adresse, im Browser geöffnet
So läuft die Migration ab
Analyse innerhalb von 48 Stunden
Sie schicken uns das installierte Programm und seine Datenbank, dazu den Quellcode (.vbp, .frm, .bas, .cls), falls vorhanden. Innerhalb von 48 Stunden erhalten Sie einen schriftlichen Bericht: was das Programm heute leistet, wo die Risiken liegen, wie die Web-Version aufgebaut wäre, einen Festpreis für ein Pilotmodul und eine Schätzung für den Rest. Die Analyse ist kostenlos und verpflichtet Sie zu nichts.
Pilotmodul
Wir bauen einen Teil der Anwendung auf einer Kopie Ihrer echten Daten, meist den Teil, der am häufigsten genutzt wird. Ihre Mitarbeiter arbeiten damit im Alltag, bevor Sie über den Rest entscheiden.
Automatische Vergleichstests zwischen Alt und Neu
Wir halten fest, was das VB6-Programm bei einer Reihe echter Fälle liefert, etwa Preise, Summen und erzeugte Dokumente, und prüfen die neue Anwendung gegen diese Ergebnisse. Für jede Regel, die wir finden, gibt es einen automatischen Test, der dem alten Programm und der neuen Anwendung dieselben Eingaben gibt und prüft, ob die Ergebnisse übereinstimmen. Sie erhalten die Testergebnisse.
30 Tage Parallelbetrieb
Wenn die vollständige Anwendung fertig ist, bleibt das VB6-Programm 30 Tage lang parallel in Gebrauch. Jede Abweichung zeigt sich, solange das alte Programm noch da ist, und wir beheben sie im Rahmen des vereinbarten Preises.
Typische Stolperstellen und wie wir damit umgehen
OCX- und ActiveX-Abhängigkeiten
Viele VB6-Programme stützen sich auf Steuerelemente, die nicht mit Windows ausgeliefert werden, teils von Herstellern, die es nicht mehr gibt, und Microsoft führt Dateien wie
GRID32.OCXundTHREED32.OCXals nicht unterstützt. Die Analyse listet jede Abhängigkeit auf, ihre Aufgabe im Programm und ihren Ersatz.Variant, Standardeigenschaften und stille Umwandlungen
VB6 wandelt stillschweigend zwischen Zeichenketten, Zahlen und Datumswerten um, und eine Zeile wie
Text1 = rs!Summeverlässt sich auf Standardeigenschaften. Eine wörtliche Übersetzung nach C# oder VB.NET verhält sich in Grenzfällen anders, etwa bei leeren Feldern oder Datumswerten in einem anderen Länderformat. Wir schreiben diese Stellen bewusst neu und sichern sie mit Tests ab.On Error Resume NextIn VB6-Code verbreitet, verschluckt diese Anweisung Fehler und lässt das Programm mit halb geschriebenen Daten weiterlaufen. Wo wir sie finden, klären wir, was der ursprüngliche Autor vermeiden wollte, und behandeln diesen Fall ausdrücklich. Sonst würde die neue Anwendung entweder mit einem Fehler abbrechen oder dieselben stillen Fehler wiederholen.
16-Bit-
Integerund RundungEin
Integerendet in VB6 bei 32.767, die Ursache vieler Überlauffehler, sobald eine Tabelle wächst.Currencyhat vier Nachkommastellen, undRoundrundet nicht kaufmännisch, sondern mathematisch auf die nächste gerade Ziffer. Wir bilden die Rundung nach, die das Geschäft erwartet, und vermerken, wo das alte Programm falsch lag.SQL aus aneinandergehängten Zeichenketten
Abfragen, die mit
&aus Benutzereingaben zusammengesetzt werden, sind anfällig für SQL-Injection und scheitern an Namen mit Apostroph. In der neuen Anwendung verwendet jede Abfrage Parameter.Fehlender oder veralteter Quellcode
Manchmal ist der Quellcode verloren, oder die vorhandene Kopie passt nicht zum Programm im Einsatz. Aus einem kompilierten VB6-Programm lässt sich kein verlässlicher Quellcode zurückgewinnen. Wir arbeiten daher vom laufenden Programm, seiner Datenbank und seinen Masken aus, und die Analyse sagt klar, welche Teile mit mehr Unsicherheit behaftet sind.
Preis und Zahlung
Analyse
Kostenlos
schriftlich, innerhalb von 48 Stunden
Pilotmodul
1.000–1.500 €
meist, zu 50 % bei Beginn und zu 50 % nach Abnahme
Die Analyse ist kostenlos. Wenn Sie sich gegen das Projekt entscheiden, behalten Sie den Bericht und schulden uns nichts.
Die Preise sind fest und werden vor Projektbeginn schriftlich vereinbart. Ändert sich der Umfang, schicken wir ein neues schriftliches Angebot und warten auf Ihre Freigabe, bevor wir die zusätzliche Arbeit erledigen.
Bei einer kompletten Migration wollen wir 40 bis 60 % unter dem üblichen Angebot einer Agentur liegen. Das ist möglich, weil wir ein kleines Studio sind, ohne teure Büros und ohne Vertriebsabteilung.
Preise zzgl. MwSt.
Eine echte Migration, durch Tests belegt
Northwind ist die Beispieldatenbank, die Microsoft mit Access ausgeliefert hat, kein Kunde von uns. Wir haben eine öffentliche Kopie zu SQLite und PostgreSQL migriert, jede Tabelle und jede Abfrage mit automatischen Tests gegen das Original geprüft und auf dem Ergebnis eine funktionierende Webanwendung gebaut. Die Fallstudie nennt die Zahlen, der Äquivalenzbericht führt jede Prüfung auf.
Northwind ist eine Access-Datenbank, bei Visual Basic 6 gehen wir aber genauso vor: migrieren, gegen das Original testen, beides parallel betreiben.
Äquivalenzbericht (auf Englisch) · Klickbare Vorschau und Beispielanalyse (Demo)

Häufige Fragen
Wir haben den Quellcode nicht. Können Sie das Programm trotzdem migrieren?
Oft ja. Wir arbeiten vom Programm im Einsatz aus, von seiner Datenbank und von Screenshots oder Aufzeichnungen, wie es genutzt wird. Die Analyse nennt, welche Teile wir sicher nachbilden können und wo wir Ihre Angaben brauchen.
Warum den Code nicht automatisch nach VB.NET oder C# konvertieren?
Konvertierungswerkzeuge erzeugen Code, der kompiliert, aber die Desktop-Struktur beibehält, oft auf Kompatibilitätsbibliotheken angewiesen ist und die alten Probleme mitnimmt. Für eine Webanwendung bauen wir die Masken neu und verlagern die Logik, und der VB6-Code dient uns als Spezifikation dessen, was das Programm tut.
Hört unser VB6-Programm unter Windows 11 auf zu funktionieren?
Nicht von selbst: Microsoft unterstützt die VB6-Laufzeitumgebung unter Windows 11. Was meist versagt, ist alles drumherum: nicht registrierte OCX-Dateien, verlorene Setup-Pakete, alte Datenbanktreiber und die IDE, die Microsoft auf 64-Bit-Windows nicht unterstützt.
Unser Programm spricht mit einer Waage oder einem Etikettendrucker. Kann eine Webanwendung das?
Meist ja, aber das ist der eine Teil, für den eventuell ein kleines Programm auf dem PC nötig ist, an dem das Gerät hängt. Wir prüfen das in der Analyse und berücksichtigen es im Preis.
Können wir Schritt für Schritt migrieren?
Ja. Das Pilotmodul ist der erste Teil, der Rest kann in Etappen folgen. Wo es möglich ist, teilen sich VB6-Programm und Webanwendung während der Übergangszeit dieselbe Datenbank.
In welcher Sprache wird die neue Anwendung geschrieben?
Meist in C# mit ASP.NET Core, das jeder .NET-Entwickler warten kann. PHP mit MySQL ist eine Alternative, wenn Ihr IT-Dienstleister damit arbeitet.
Weitere Leistungen
- Microsoft Access als WebanwendungTabellen, Abfragen, Formulare, Berichte und VBA in einer Webanwendung auf SQL Server oder MySQL.
- Excel VBA als WebanwendungArbeitsmappen mit Makros, UserForms und verknüpften Blättern als mehrbenutzerfähige Webanwendung.
- Migration von Delphi-AnwendungenDelphi-Programme auf BDE, Paradox oder dBase als Webanwendung auf einer SQL-Datenbank.
- Modernisierung älterer .NET-AnwendungenWinForms- und ASP.NET-Web-Forms-Anwendungen auf ASP.NET Core gebracht, mit allem, was noch taugt.
- Individualsoftware und SchnittstellenNeue Unternehmensanwendungen, REST-API-Schnittstellen, Datenmigration und Wartung.
Kontakt
Per E‑Mail:
riccardo@Schicken Sie uns das Programm und seine Datenbank, gern mit Testdaten, oder eine kurze Beschreibung, was es leistet. Wir antworten innerhalb eines Werktags.
Wir arbeiten von Italien aus.