Eine sehr umfangreiche Anwendung begann als Access-basiertes System (zur Datenbankspeicherung). Formulare wurden in VB5 und / oder VB6 geschrieben. Als .Net zu einem festen Bestandteil der Entwicklergemeinde wurde, wurden bestimmte Module neu geschrieben. Dies scheint sehr umständlich und möglicherweise kostspielig zu sein, nur um es zu warten, da die beiden Technologien technologieübergreifend und zusätzliche Arbeit leisten, um die beiden Technologien zufrieden zu stellen. Natürlich verwendet die Anwendung eine Mischung aus ODBC OleDb und MySql.
Würden Sie denken, dass es kostengünstiger wäre, Zeit und Ressourcen für die vollständige Neuentwicklung der Anwendung unter .Net aufzuwenden? Wäre es nicht sinnvoll, .Net zu verwenden, um eine stabilere Anwendung zu entwickeln? Oder verfolgen Sie weiterhin Access-Fehler, fügen Sie neue Funktionen in .Net hinzu (wodurch möglicherweise neue Fehler zwischen .Net und Access entstehen oder nicht), und schreiben Sie alte Access-Module unter zeitlichen Einschränkungen, die ein ordnungsgemäßes Design und eine ordnungsgemäße Entwicklung verhindern, in .Net-Module um?
Update Die Anwendung verwendet OleDb und MySql - ich habe meine vorherige Anweisung korrigiert.
Um das Umschreiben weiter zu unterstützen: Ich habe seitdem herausgefunden, dass der vorhandene VBA / VB6-Code zu Beginn der "Portierung" nach .Net im Wesentlichen in das .Net-Äquivalent übersetzt wurde. Nach meinem Verständnis wurde nichts unternommen, um die Leistung zu verbessern oder neue Bibliotheken oder Technologien zu nutzen.
Meiner Meinung nach schafft dies eine sehr fragile und instabile Anwendung. Mit jedem neuen Update wird dies immer sichtbarer. Als Helpdesk-Techniker habe ich eine Zunahme der gemeldeten Probleme festgestellt. Die Kunden, die die Software verwenden, haben eine Zunahme der Probleme festgestellt und kommentieren diese.
quelle
Antworten:
Viele Leute raten davon ab, eine Anwendung von Grund auf neu zu schreiben, und manchmal stimme ich der Argumentation zu. Meistens empfinde ich das Umschreiben der App jedoch als die am wenigsten schmerzhafte Lösung, und alles, was in Access geschrieben ist, muss auf .NET - PERIOD portiert werden. Verstehen Sie mich nicht falsch, Access hat seinen Platz und kann einem Unternehmen eine Menge Funktionen bieten. Wenn es sich jedoch zu einer vollwertigen App entwickelt, auf die sich die Leute verlassen, ist Access gewachsen.
Es würde wahrscheinlich nicht viel Zeit in Anspruch nehmen, das vorhandene VBA in einer Eins-zu-Eins-Konvertierung nach .NET zu portieren. Dies ist jedoch möglicherweise keine gute Lösung, wenn der VBA zunächst nicht sehr gut ist. Ein Redesign / Rewrite dauert länger, ist aber auf lange Sicht viel einfacher zu warten.
Ich bin fast immer im Lager, es von Grund auf neu zu schreiben, wenn es um Access geht, und habe es kein einziges Mal bereut.
quelle
Ich stimme dem Refactoring-Ansatz zu. Es ist sehr wahrscheinlich, dass dies ein langsamer Prozess ist, der viele Monate dauern kann. Das Verschieben eines Features / Abschnitts zu einem Zeitpunkt hat jedoch folgende große Vorteile:
Viel Glück
quelle
Es wird im Allgemeinen davon abgeraten, eine Anwendung von Grund auf neu zu schreiben (was ein normaler Drang ist, den die meisten Programmierer mindestens einige Male in ihrem Leben verspürten), da Sie von einer App mit bekannten Funktionen (und auch bekannten Fehlern!) Ausgehen. zu einer App mit höchstwahrscheinlich weniger Funktionen und vor allem unbekannten Fehlern. Benutzer könnten frustriert sein usw.
Sie wären wahrscheinlich besser dran, wenn Sie Ihre App über einen bestimmten Zeitraum langsam umgestalten und damit ihre Architektur über einen längeren Zeitraum weiterentwickeln würden.
quelle
Eine große Herausforderung, die ich bei einem Umschreiben dieser Größenordnung erlebt habe, besteht darin, zwei Codebasen gleichzeitig zu verwalten. Wenn Sie einen Fehler im Legacy-System beheben, müssen Sie sicherstellen, dass die Funktionalität im neuen System ordnungsgemäß funktioniert, und umgekehrt. Durch das Aktualisieren von jeweils einem Modul werden die Wartungsprobleme minimiert.
Eine vollständige Regressionstestsuite, die sowohl auf dem Legacy- als auch auf dem Ersatzsystem ausgeführt wird, wäre ebenfalls hilfreich.
quelle
Ich stimme Jas zu, schreibe Apps nicht nur um zu schreiben. Sie müssen möglicherweise nie getestet oder verbessert werden. Warum also Zeit verschwenden? Wenn Sie jedoch der Meinung sind, dass sich das Fachwissen Ihrer neuen Entwickler von Access to .NET wegbewegt, müssen Sie möglicherweise migrieren, bevor es zu spät ist. Das scheint unwahrscheinlich, aber eine mögliche Überlegung.
Obwohl es aus entwicklungspolitischer Sicht möglicherweise nicht rentabel ist, wie wirken sich unterschiedliche Anwendungen auf die Benutzer aus? Benötigt es mehr Benutzerschulung? Machen sie mehr Fehler? Erhöht es die Anzahl der Supportanrufe, weil sie etwas nicht finden können?
quelle
"Würden Sie denken, dass es kostengünstiger wäre, Zeit und Ressourcen für die vollständige Neuentwicklung der Anwendung unter .Net aufzuwenden?"
Dies ist keine Frage, die hier beantwortet werden kann.
Von der Spitze der Anforderungspyramide: Jemand hat eine Entscheidung getroffen, die er hoffentlich mit einem Geschäftsplan rechtfertigen kann. In diesem Geschäftsplan sollte angegeben werden, wie viele Stunden + zusätzliche Kosten für die Konvertierung der Anwendung erforderlich sind, und in demselben Geschäftsplan werden die Vorteile auch in Geld angegeben.
Das ist der Weg, es zu tun. Wenn es keinen Geschäftsplan dafür gibt. Anschließend müssen Sie zunächst an einem Geschäftsplan arbeiten, der auf einige Anwendungsfälle auf hoher Ebene zurückgeführt werden kann, um die Auswirkungsanalyse durchzuführen und den Start des Projekts zu überprüfen.
Wenn der ursprüngliche Treiber des Geschäftsziels, das zur Änderung führt, nicht einmal auf Geld basiert, ist diese Person wahrscheinlich diejenige, die für alles bezahlt, also muss es getan werden.
Wenn es keinen Geschäftsplan gibt, aber "es ist einfach erledigt", versuchen Sie, einen zu erstellen und ihn dem oberen Management vorzulegen. Berücksichtigen Sie Anwendungsfälle auf hoher Ebene, Kosten, Stunden für Neugestaltung, Erstellung, zusätzliche Betriebskosten, neue Schulungen für Administratoren und Endbenutzer, Projektmanagement und potenzielle Risiken.
IMHO ist dies keine technische Frage.
quelle