Pregunta

Mi empresa tiene un montón de legado aplicaciones escritas en Visual Basic 6.

Estamos en las transiciones de mover aplicaciones VB6 a .NET (3.5 específicamente).

¿Cuál sería la mejor estrategia para avanzar forma VB6 a .NET?



Nota: . A continuación actualización debe ir a "Gestión de Proyectos" y no tiene nada que ver con la cuestión principal

  

[ACTUALIZACIÓN] : Gracias por su colaboración hasta ahora
Ahora hay   pregunta más que pop-up son

     
      
  1. ¿cómo asignar a los desarrolladores crear nuevas aplicaciones?
  2.   
  3. ¿Debería haber una división de actualización de una sola vez especial que convertirá   aplicaciones de versiones anteriores por otros nuevos? O deberia   todos los desarrolladores participan en   proceso de conversión?
  4.   
  5. En caso de que sólo los desarrolladores de alto nivel participarán en la conversión? Júnior   los desarrolladores? o mezclado?
  6.   
     

Parece que, cuanto más lo pienso   este problema, simplemente muestran más preguntas   arriba.

¿Fue útil?

Solución

Es evidente que esto es un compromiso importante que implicará un montón de trabajo.
Así que mi consejo sería que tratarlo como un proyecto a muy largo plazo.

Tener un objetivo claro en mente, que aborda cuestiones importantes como la seguridad, resistencia, facilidad de mantenimiento y el futuro de sus aplicaciones.

Una vez que esto ha sido acordado por las partes interesadas, desarrollar un sistema prototipo para probar su hipótesis con, donde se puede probar C # o VB.NET vrs MVC vrs formularios web. Me asignar sus mejores desarrolladores para esto.

A continuación, iniciar con uno de sus pequeños sistemas heredados, y construir los componentes del núcleo que va a re-uso en otras áreas.
En esta etapa, se inicia con los desarrolladores más altos, pero todos deben participar y estar familiarizado con el nuevo marco.
Esto se asegurará de que todos se entrenó al mismo tiempo, y nadie se quede atrás.
Dependiendo del número de aplicaciones que tiene me gire desarrolladores, por lo que todos los sistemas se pueden beneficiar.

También todo nuevo trabajo debe hacerse en su idioma .NET no en VB6.

Poco a poco convertir cada una de sus aplicaciones heredadas. (Yo sólo convertirlos si están cambiando o si hay un claro beneficio para su actualización.)

Esto debe darle un marco sólido para usar en el futuro, sin dejar de garantizar a los usuarios la funcionalidad no se ve obstaculizada por la migración.

Por ejemplo:
He trabajado en una compañía que tenía más o menos 40 o más aplicaciones de VB.
Con el tiempo hemos migrado todos ellos a C # y ahora (5 años después), tenemos aproximadamente 150 C # aplicaciones (todos en .NET 2.).

Estos comparten un marco común, haciendo que sean fáciles de mantener, y ampliar cuando sea necesario.

Otros consejos

Trate de reemplazar la funcionalidad básica con COM habilitado .NET bibliotecas. "Vaciar" sus aplicaciones existentes de Visual Basic 6, moviendo la funcionalidad de .NET poco a poco.

Cuidado con las reescrituras completas. A pesar de que son tentadoras "ya que es un corte limpio" - por lo general la locura está por delante! Leer "trabajar eficazmente con el código heredado" por Michael plumas como una preparación. Aunque el libro no entra en concreto en "pasar de un idioma a otro" sí muestra una gran cantidad de trampas del mundo real que se encontrará.

Creo que todo desarrollador debería haber definido los intervalos de tiempo en los que hacen el trabajo de migración en las aplicaciones heredadas que desarrollaron antes. Puesto que ya tienen conocimiento del dominio y conocer el espacio del problema que debe ser el más productivo.

Aquí es una adaptación de mi a una pregunta similar.

La conversión de grandes programas de forma automática es una mejor opción que volver a escribir. Es un error común para comenzar con optimismo la reescritura de una gran pieza de software, hacer un buen progreso temprana fijación de algunos de los defectos conocidos de la arquitectura antigua y, a continuación, enredarse en la funcionalidad que sólo ha estado tomando por sentado durante años. En este punto su gestión comienzan a llegar nervioso y todo lo que puede ser muy incómodo.

... y aquí es un blog por un Microsofty que acuerdo conmigo :

  

Muchas compañías con las que trabajé en los primeros días de .NET miraron por primera vez en la reescritura impulsado en parte por un fuerte deseo de mejorar las estructuras de la arquitectura y el código subyacentes al mismo tiempo que se trasladaron a .NET. Por desgracia, muchos de estos proyectos topó con la dificultad y varios no se completaron. El problema que estaban tratando de resolver era demasiado grande

Esta excelente Microsoft página recomienda dos terceras herramientas de migración partido como mejor que la poca potencia incorporado en el asistente de actualización VB.NET - Artinsoft y CodeArchitects VBMigration . Artinsoft escribió el construido en el asistente de actualización VB.NET, este es su versión mejorada. Y CodeArchitects fue fundado por Francesco Balena, que escribió algunos de los noreferrer libros clásicos en VB6 y VB.NET.

La misma página Microsoft también dice:

  

Realización de una reescritura completa de .NET es mucho más costoso y difícil de hacer bien [que convertir] ... que sólo recomendaría este enfoque para un pequeño número de situaciones.


EDIT: Sung dice en los comentarios: "No soy un gran fan de la generación automática de código porque es más difícil de depurar al principio y podría tomar el mismo tiempo que se tarda en volver a escribir todo el asunto". Tengo muy en desacuerdo. En general yo también soy fan de la generación de código, pero en este caso el código resultante se estructurará de forma idéntica a su VB6 original y debería ser casi totalmente funcional. En realidad no he probado estas herramientas a mí mismo, sin embargo, sino de su cliente testimonios esta promesa se ha cumplido.

Y repito el consejo Microsoft justo por encima, sobre la base de su experiencia de ayudar a muchas migraciones - "una reescritura completa es mucho más costoso y difícil que convertir [el énfasis es mío]" - una contradicción plana de la suposición de que podría tomar al mismo tiempo. Si se quiere mejorar la estructura de la VB6, a continuación, la migración es probable que sea mucho más rentable que una reescritura refactorización gradual.

Vea esto:
https://stackoverflow.com/ preguntas / 507291 / debería-que-select-vb-net-o-c-cuando-mejora-nuestros-legacy-aplicaciones

Por supuesto, C # y VB.Net es sólo una parte de ella.

Por ejemplo, otra cosa a tener en cuenta son si se quiere aprovechar esta oportunidad para mover estas aplicaciones a una intranet, si no lo ha hecho. O ¿A qué profundidad se desea profundizar en la pila de Microsoft. Winforms es suficiente o si desea utilizar WPF, por ejemplo.

Me gustaría empezar con las herramientas de Microsoft:

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

Usted puede encontrar el siguiente artículo útil: http://www.vsj.co.uk/articles/display. asp? id = 756

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top