Beste Strategie für den Wechsel von VB6 zu .NET
Mein Unternehmen hat Tonnen von legacy Anwendungen in VB6 geschrieben.
Wir sind die übergänge von beweglichen VB6-Anwendungen auf .NET (3.5 spezifisch).
Was wäre die beste Strategie für die bewegte form VB6 zu .NET?
HINWEIS: Unten-update sollte gehen Sie zu "Projekt-Management" und hat nichts zu tun mit der wichtigsten Frage.
[UPDATE]: Danke für dein feedback so far
Jetzt gibt es
weitere Frage, die pop-up
- wie würden Sie sich zuordnen Entwicklern, neue Anwendungen zu entwickeln?
- Sollte es ein spezielles " one-time-upgrade-division konvertieren
legacy-apps zu neue? Oder sollte
jeder Entwickler teilnehmen
Konvertierung?- Sollte nur senior-Entwickler teilnehmen, die bei der Umwandlung? Junior
Entwickler? oder gemischt?Wie es scheint, je mehr ich überlege
dieses problem, mehr Fragen einfach zeigen
bis.
- Haben Sie gesehen, die anderen Fragen auf VB6-migration? Ich denke, es sollte ein vb6-migration-tag. Ich werde erfinden Sie jetzt & nehmen Sie Ihr "übergangs" - tag, das scheint zu viele Bedeutungen in dem moment, IMHO.
- Danke. Es sieht eher beschreibenden
- Kein problem. Ich denke, es ist mehr beschreibend, und es verbindet alle VB-migration-Fragen zusammen. Ich habe einige Recherchen und oben markiert alle Fragen, die relevant erschienen.
- Es war interessant dabei die sucht -, die ich verpasst hatte einige dieser anderen Fragen. Wenn ich eine chance habe, ich werde einige Antworten auf Sie mit meinem üblichen witterings zu diesem Thema.
- Dank mark
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klar ist dies ein großes Unterfangen werden, der mit viel Arbeit.
Also mein Rat wäre, um es zu behandeln wie ein sehr langfristiges Projekt.
Haben ein klares Ziel vor Augen, die Adressen wichtige Themen wie Sicherheit, Ausfallsicherheit, Wartbarkeit und die Zukunft Ihrer Anwendungen.
Einmal vereinbart haben, diese von den Anspruchsgruppen, die Entwicklung eines Prototyp-Systems zu testen Sie Ihre Annahmen mit, wo Sie ausprobieren können, C# vrs VB.net oder MVC vrs Webforms.
Ich würde ordnen Sie Ihre besten Entwickler für dieses.
Dann starten Sie mit einem Ihrer kleinen legacy-Systemen, und bauen Sie die core-Komponenten, die Sie wird die Wiederverwendung in anderen Bereichen.
In dieser Phase beginnen Sie mit Ihren mehr senior Entwickler, aber jeder muss sich engagieren und vertraut sein mit den neuen Rahmens.
Dies wird sicherstellen, dass jeder ausgebildet ist, zur gleichen Zeit, und niemand wird zurückgelassen.
Je nachdem, wie viele Anwendungen, die Sie haben, würde ich drehen-Entwickler, so dass alle Systeme profitieren können.
Auch alle neuen arbeiten, die getan werden muss, in Ihr .net-Sprache, die nicht in VB6.
Schrittweise konvertieren Sie alle Ihre legacy-Anwendungen.
(Ich würde nur konvertieren wenn Sie ändern oder wenn es einen klaren nutzen für Sie zu aktualisieren.)
Sollten Sie auf ein solides Gerüst zu verwenden, gehen nach vorne, während immer noch die Gewährleistung der Benutzer-Funktion wird nicht behindert durch Ihre migration.
Beispielsweise:
Ich habe gearbeitet bei einer Firma, die hatte ungefähr 40 oder so, VB-Anwendungen.
Im Laufe der Zeit haben wir alle migriert diese zu C# und jetzt (5 Jahre später), wir haben rund 150 von c# - Anwendungen (alle in .net 2.).
Diese, Sie alle teilen einen gemeinsamen Rahmen, so dass Sie leicht zu pflegen und zu erweitern, wo nötig.
Versuchen, anstelle der core-Funktionalität mit COM aktiviert .NET-Bibliotheken. "Aushöhlen" das vorhandene VB6-apps von beweglichen Funktionalität .NET Stück für Stück.
Hüten Sie sich komplett neu geschrieben. Obwohl Sie verlockend sind ", weil es ein sauberer Schnitt" - Regel madness legt vor! Lesen Sie "Working effectively with Legacy Code" von Michael Feathers in Vorbereitung. Obwohl das Buch nicht speziell gehen Sie in die "bewegte Sprache" es zeigt sich aber auch eine Menge von realen Welt fallen, die Sie stoßen werden.
Ich denke, dass alle Entwickler sollten über definierte Zeitfenster in denen Sie die migration der Arbeit auf der legacy-Anwendungen, die Sie vorher entwickelt hat. Da Sie bereits Branchenkenntnisse und kennen das problem Raum, den Sie sollten zu den produktivsten.
Hier ist eine Anpassung an meine Antwort zu einer ähnlichen Frage.
Umwandlung von großen Programmen automatisch die bessere Wahl, als das umschreiben. Es ist ein häufiger Fehler, um zu starten, optimistisch umschreiben ein großes Stück software, gute baldige Fortschritte Fixierung einige der bekannten Fehler, die in der alten Architektur, und dann verzetteln in der Funktionalität, dass Sie gerade nehmen für bewilligt für die Jahre. An diesem Punkt Ihrer management beginnen nervös und alles kann sehr unangenehm werden.
...und hier ist ein blog-post von einem Microsofty, dass stimmt mit mir:
Diese ausgezeichnete Microsoft Seite empfiehlt zwei Dritten Migrations-tools besser als die unterlegenen built-in VB.NET Aktualisierungs-Assistent - Artinsoft und CodeArchitects VBMigration. Artinsoft schrieb die eingebaute VB.NET upgrade-Assistenten ist dies die bessere version. Und CodeArchitects wurde gegründet von Francesco Balena, schrieb einige der klassische Bücher auf VB6 und VB.NET.
Dem gleichen Microsoft-Seite sagt auch:
EDIT: Sung sagt in den Kommentaren: "ich bin kein großer fan von automatischen Generierung von code, da ist es schwieriger zu Debuggen zunächst und dauern nur so lange, wie es dauert, um zu umschreiben, die ganze Sache". Ich Stimme dem nicht zu stark. Im Allgemeinen bin ich auch kein fan von code-Generierung, aber in diesem Fall ist der resultierende code wird identisch aufgebaut zu Ihrem original VB6 und sollte fast völlig funktionsfähig. Ich habe nicht wirklich versucht, diese tools selbst noch nicht, aber aus Ihrer Kunden Erfahrungsberichte dieses Versprechen ist erfüllt.
- Und ich wiederhole das Microsoft Beratung nur vor, basierend auf Ihrer Erfahrung in der Unterstützung von vielen Migrationen - "eine komplette Neuentwicklung ist weit mehr teuer und schwierig, als die Konvertierung [meine Hervorhebung]" - eine Wohnung, ein Widerspruch zu der Annahme, es könnte in der gleichen Zeit. Wenn Sie wollen verbessern Sie die Struktur der VB6, migration dann schrittweise Umgestaltung ist wahrscheinlich wesentlich kostengünstiger als eine Neuentwicklung.
Sehen:
https://stackoverflow.com/questions/507291/should-we-select-vb-net-or-c-when-upgrading-our-legacy-apps
Natürlich C# vs VB.Net ist nur ein Teil davon.
Beispielsweise eine andere Sache, um zu betrachten, wenn Sie wollen diese Gelegenheit nutzen, um diese apps zu einem intranet wenn Sie nicht bereits getan haben. Oder wie tief willst du eintauchen in die microsoft-stack. Ist Winforms genug, oder willst du mit WPF, zum Beispiel.
Ich würde start mit Microsoft tools:
http://msdn.microsoft.com/en-us/library/aa480541.aspx
Finden Sie vielleicht die folgenden Artikel interessant:
http://www.vsj.co.uk/articles/display.asp?id=756