Trabajo en una gran base de código con una gran base de instalación de usuarios. El código fue escrito originalmente en vb6 con algunos módulos COM de C++ para el trabajo de bajo nivel.¿Cómo continúa desarrollando sistemas de software grandes (a largo plazo) con código heredado y nuevo?
Es completamente inviable reescribir todo el código que ya está escrito en vb6 y que nuestros clientes lo utilizan todos los días, pero también seguimos realizando mejoras y personalizaciones para el software (grandes y pequeños).
Mi solución hasta el momento es escribir la mayor parte del código nuevo en C# (winforms e incluso wpf ahora) y luego usar la interoperabilidad COM para llamar a los módulos desde vb6.
¿Alguien por ahí tiene experiencia con paquetes de software a largo plazo como este (más de 10 años) que no se pueden detener para una reescritura completa, pero necesitan un nuevo desarrollo continuo al mismo tiempo. Además, en sistemas mixtos como este, ¿cuál es la mejor forma de interconectar los módulos? Estoy utilizando COM en este momento, pero también he considerado el IPC con procesos separados.
Estoy completamente de acuerdo con esto. Reescribir incrementalmente sus módulos VB6 en muchos lanzamientos es el camino a seguir. No hay nada que impida que su equipo haga nuevas funciones mientras que algunos de ustedes están refabricando lentamente el código anterior. –
... pero OTOH, las reescrituras incrementales también requieren mucha coordinación, instrumentación generosa y estrategias de prueba maduras si desea mantener la calidad y el costo bajo control. ¡He visto muchas soluciones monolíticas de VB6 que se oponen activamente a la refactorización! –
Pero si su aplicación es "resistente", entonces tiene problemas en cualquier caso. _That_ podría ser una buena razón para hacer una reescritura. –