Ich verwalte eine VB6-Anwendung und wir untersuchen, wie Sie zu .Net migrieren können. Wir erwägen dies schrittweise, indem wir neue Funktionen in COM-sichtbaren .Net-Klassen implementieren und vorhandene Funktionen langsam migrieren. Ich habe einige lehrreiche 'Hello World'-Beispiele dazu gefunden und es funktioniert gut mit unserer App. Aber wie ist das reale Verhalten dieser Hybridanwendungen? Sind sie stabil und wartbar? Unser Programm zeichnet sich insbesondere dadurch aus, dass mehr Benutzer auf demselben Computer es verwenden, indem sie die Benutzerkonten wechseln.
BEARBEITEN: Die VB6-App liest Daten von einer USB-Verbindung und speichert sie in einer Access-Datenbank. Der Benutzer kann verschiedene Ansichten der Daten aufrufen. Die Daten werden in einem Hardwaregerät zwischengespeichert, sodass Unterbrechungen beim Lesen nicht schwerwiegend sind.
EDIT 4. Oktober 2015: Zeit für ein Follow-up: Wir sind immer noch dabei, den vorhandenen VB6-Code Schritt für Schritt durch .Net zu ersetzen. Zuerst haben wir die Datenzugriffsroutinen übernommen, dann die Geschäftslogik und derzeit wird ein Formular nach dem anderen in WPF konvertiert. Wir haben zwar jeden Code neu geschrieben, den wir konvertiert haben (in VB.Net), aber wir konnten dies langsam tun und gleichzeitig die Funktionalität verbessern. Die Hybridanwendung überlebte den Übergang zu Windows 8, 8.1 und 10.
EDIT 9. März 2018: Wir werden den vollständig konvertierten Code nächsten Monat veröffentlichen. Die Hybridanwendung wird mindestens ein Jahr länger unterstützt. Es zeigt hauptsächlich Probleme auf hochauflösenden Bildschirmen, funktioniert aber ansonsten einwandfrei. Um ehrlich zu sein, haben wir aufgrund beschädigter .NET Framework-Installationen und beschädigter Abhängigkeitsinstallationen (darunter SQL Server LocalDb) mehr Probleme mit der Unterstützung als mit Kompatibilitätsproblemen mit der VB6-Codebasis ...
quelle
Antworten:
Ich hatte erstaunliche Erfolge bei der Bereitstellung von .NET für VB6 über COM-Schnittstellen. Auf diese Weise konnten wir zunächst eine große Menge an VB6-Code umgestalten und einen Upgrade-Pfad zu .NET einrichten. Denken Sie daran, dass idiomatisches VB6 nicht gut in C # oder sogar VB.NET übersetzt werden kann. Sie sollten also vorsichtig vorgehen.
Das einzige Problem, das wir hatten und das ziemlich ärgerlich war, war die übermäßige Anzahl von Neuerstellungen, die wir aufgrund von Änderungen an der öffentlichen COM-Schnittstelle durchführen mussten. Dies wurde durch Visual Make gemildert .
quelle
FWIW, meiner Erfahrung nach bietet die Notwendigkeit, eine VB6-App auf .Net zu aktualisieren, die ideale Entschuldigung für ein erneutes Schreiben. Sofern die ursprünglichen Programmierer keine brillanten Visionäre waren, lassen sich die in VB6 vorherrschenden Techniken nur selten sauber auf .Net übertragen.
Einige der Freuden, denen Sie begegnen werden:
HTH
quelle
Option Explicit
ist und alle Abhängigkeit von magischen impliziten Konvertierungen aufgehoben wird.Es sollte für Sie gut funktionieren, es gibt nichts Besonderes an schnellem Benutzerwechsel / mehreren Sitzungen, das Ihnen Probleme bereiten könnte.
Beachten Sie im Hinblick auf die Wartbarkeit, dass Hybrid-VB6 / VB.NET nur eine vorübergehende Lösung sein sollte: Ihr Plan sollte darin bestehen, im Laufe der Zeit vollständig auf VB.NET zu migrieren.
quelle