Question

Mon entreprise a des tonnes de héritage applications qui sont écrites dans VB6.

Nous sommes en transition de se déplacer des applications VB6 à .NET (3.5 spécifiquement).

Quelle serait la meilleure stratégie pour déplacer la forme VB6 vers .NET?



NOTE :. Ci-dessous la mise à jour devrait aller à "Project Management" et n'a rien à voir avec la question principale

  

[UPDATE] : Merci pour vos commentaires jusqu'à présent
Maintenant, il y a   plus question que pop-up sont

     
      
  1. comment voulez-vous attribuer aux développeurs de développer de nouvelles applications?
  2.   
  3. Faut-il être une division de mise à niveau d'un temps spécial qui convertira   des applications existantes à de nouvelles? ou devrait   chaque développeur participer sur   processus de conversion?
  4.   
  5. Si seuls les développeurs supérieurs prennent part à la conversion? Junior   les développeurs? ou mixte?
  6.   
     

Il semble que, plus je pense   ce problème, d'autres questions montrent que   vers le haut.

Était-ce utile?

La solution

Il est clair que cela est une grande entreprise qui impliquera beaucoup de travail.
Donc, mon conseil serait de le traiter comme un projet à très long terme.

Avoir un objectif clair à l'esprit, qui traite des questions importantes comme la sécurité, la résilience, la maintenabilité et l'avenir de vos applications.

Une fois que cela a été convenu par les parties prenantes, développer un système prototype pour tester vos hypothèses, vous pouvez essayer C # ou VB.net vrs MVC vrs Webforms. J'assignerais vos meilleurs développeurs pour cela.

Ensuite, commencer par un de vos petits systèmes existants et construire les composants de base que vous réutiliser dans d'autres domaines.
A ce stade, commencez par vos développeurs expérimentés, mais tout le monde doit participer et se familiariser avec le nouveau cadre.
Cela permettra d'assurer tout le monde est formé en même temps, et personne ne reste derrière.
Selon le nombre d'applications que vous avez je tourner les développeurs, afin que tous les systèmes peuvent bénéficier.

Aussi tout nouveau travail doit être fait dans votre langue .net pas dans VB6.

Peu à peu, convertir chacun de vos applications existantes. (Je ne les convertir si elles changent ou s'il y a un avantage évident pour les mettre à jour.)

Cela devrait vous donner un cadre solide à utiliser à l'avenir, tout en assurant la fonctionnalité des utilisateurs ne soit pas entravée par votre migration.

Par exemple:
Je travaille dans une entreprise qui avait à peu près quelque 40 applications VB.
Au fil du temps, nous avons migré tous ces C # et maintenant (5 ans plus tard), nous avons environ 150 applications C # (tous en .net 2.).

Ces tous partagent un cadre commun, ce qui les rend faciles à entretenir et étendre le cas échéant.

Autres conseils

Essayez de remplacer les fonctionnalités de base avec COM activé .NET bibliothèques. « Creuser » vos applications VB6 existantes en fonction de passer à peu .NET par bit.

Méfiez-vous des réécritures complètes. Bien qu'ils sont tentantes « parce qu'il est une coupe nette » - généralement la folie met en avant! Lire « Travailler efficacement avec Legacy Code » par Michael plumes comme une préparation. Bien que le livre ne va pas spécifiquement dans « passer d'une langue à l'autre », il montre beaucoup de pièges du monde réel que vous rencontrerez.

Je pense que tout développeur aurait dû définir les intervalles de temps où ils font un travail de migration sur les applications existantes développées avant qu'elles. Comme ils ont déjà des connaissances de domaine et connaissent l'espace problème, ils devraient être les plus productifs.

Voici une adaptation de mon réponse à une question similaire.

Conversion de grands programmes est automatiquement un meilleur choix que la réécriture. Il est un écueil commun pour commencer la réécriture avec optimisme un grand morceau de logiciel, faire un bon début progrès fixer quelques-uns des défauts bien connus dans l'ancienne architecture, puis s'enliser dans la fonctionnalité que vous venez d'être prenez pour acquis années. À ce stade, votre gestion commencent à se twitchy et tout peut être très mal à l'aise.

... et voici un blog par un Microsofty que d'accord avec moi :

  

De nombreuses entreprises avec lesquels je travaillais dans les premiers jours de NET a d'abord examiné à la réécriture en partie grâce à une forte volonté d'améliorer les structures d'architecture et de code sous-jacent en même temps que ils ont déménagé à .NET. Malheureusement, bon nombre de ces projets en difficulté et a couru plusieurs ont jamais été achevés. Le problème qu'ils essayaient de résoudre était trop grand

Cette page excellente Microsoft recommande deux outils de migration tiers comme meilleure que l'assistant de mise à niveau underpowered VB.NET intégré - Artinsoft et CodeArchitects VBMigration . Artinsoft a écrit le construit dans l'assistant de mise à niveau VB.NET, c'est leur version améliorée. Et CodeArchitects a été fondée par Francesco Balena, qui a écrit une partie de la noreferrer livres classiques sur VB6 et VB.NET.

La même page Microsoft dit aussi:

  

Effectuer une réécriture complète de .NET est beaucoup plus coûteuse et difficile à bien faire [que la conversion] ... nous ne recommandons cette approche pour un petit nombre de situations.


EDIT: Sung dit dans les commentaires: « Je ne suis pas un grand fan de génération automatique de code, car il est plus difficile à déboguer au départ et peut prendre aussi longtemps que nécessaire pour réécrire tout ». Je dois tout d'accord. En général, je suis trop pas fan de génération de code, mais dans ce cas, le code résultant sera structuré de manière identique à votre VB6 originale et devrait être presque totalement fonctionnelle. Je ne l'ai pas vraiment essayé ces outils encore moi-même, mais de leur client témoignages cette promesse est remplie.

Et je le répète, les conseils Microsoft juste au-dessus, en fonction de leur expérience d'aider de nombreuses migrations - « une réécriture complète est beaucoup plus coûteux et difficile que la conversion [je souligne] » - une contradiction de la supposition qu'il pourrait prendre en même temps. Si vous voulez améliorer la structure du VB6, la migration progressive puis refactoring est susceptible d'être beaucoup plus rentable qu'une réécriture.

Voir ceci:
https://stackoverflow.com/ des questions / 507291 / devrait-on-select-vb-net ou c-en-mise à niveau-nos-legacy-apps

Bien sûr, C # vs VB.Net est seulement une partie de celui-ci.

Par exemple, une autre chose à considérer sont si vous voulez profiter de cette occasion pour déplacer ces applications à un intranet, si vous avez pas déjà. Ou à quelle profondeur voulez-vous plonger dans la pile de Microsoft. Est-ce assez Winforms ou voulez-vous utiliser WPF, par exemple.

Je commencerais avec les outils de Microsoft:

http://msdn.microsoft.com/en-us/library /aa480541.aspx

Vous trouverez peut-être l'article suivant utile: http://www.vsj.co.uk/articles/display. asp? id = 756

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top