Migrar programa de VB6

Iniciado por madumo, 26 Enero 2018, 12:12 PM

0 Miembros y 1 Visitante están viendo este tema.

madumo

Buenas a todos.
Tengo un programa de gestión de muchas muchas líneas de código, hecho en Visual Basic (muchos años de trabajo). Se me plantea la cuestión de que en unos años no funcionará, y quisiera migrarlo a otra plataforma estable, económica, fiable y estéticamente apetecible.
He intentado migrarla a vb.net, pero me resulta muy costoso de programar, y no obtengo mejores resultados que los actuales, ya que al final no es más rápido ni tampoco más estético.
He leído algo sobre Velneo, pero no estoy segura de que sea lo que necesito, tampoco sé precios.
Me gustaría que me orientasen sobre este asunto.

Muchas gracias.

Serapis

Es una pregunta muy genérica, para abordarla en detalle.
Si no logras mejor rendimiento, a buen seguro es poque traduces línea por línea, a su equivalente en NET, y no debe ser así.

En general recuerdo que para vb2003 y vb2005 había un asistente de importación, que entre otras cosas te daba sugerencias que en efecto servían para optimizarlo. Aunque los mejores resultados se obtienen refactorizando el código para NET y para ello debes haber adquirido cierto dominio de NET, o al menos saber qué tienes a disposición para solucionar qué problemas.

Si tienes cuestiones concretas pregunta...

Eleкtro

#2
Cita de: madumo en 26 Enero 2018, 12:12 PM
He intentado migrarla a vb.net, pero me resulta muy costoso de programar, y no obtengo mejores resultados que los actuales, ya que al final no es más rápido ni tampoco más estético.

VB.NET es un lenguaje de programación, en lo que debes reflexionar es cual tecnología de .NET Framework elegir, me explico, probablemente hayas decidido migrar tu programa a la tecnología Windows Forms y por eso quizás no hayas notado diferencias estéticas apreciables a simple vista, pero si quieres mirar hacia el futuro y con todas las ventajas y beneficios en comparación, entre ellos estéticos, entonces deberías migrar tu programa a la tecnología WPF (Windows Presentation Foundation), haciendo uso de VB.NET y XAML.

Cita de: madumo en 26 Enero 2018, 12:12 PMya que al final no es más rápido

Migrar de VB6 a VB.NET o mejor dicho a la máquina virtual de .NET Framework ya es un gran paso de optimización, claro que todo depende de como sea tu código fuente original en VB6 y como sea la adaptación y refactorizaciones que hagas en VB.NET. Un fallo muy común en este tipo de escenarios de migración o simplemente de gente nueva en VB.NET es ponerse a utilizar los miembros de compatibilidad de VB6 en VB.NET (ej. Len(), Left(), Mid(), etc), que aunque es puro código .NET te puedo asegurar que el código fuente es pura moralla, muy poco óptimo, así no vas a mejorar mucho el rendimiento general del código, tienes que utilizar siempre los equivalentes actuales, no los miembros de compatibilidad para la migración de VB6. En general lo mejor que puedes hacer viniendo de VB6 es ignorar/evitar utilizar (casi)cualquier miembro del namespace Microsoft.VisualBasic, dicho de otro modo: no sigas programando al estilo de VB6 en VB.NET, ese no es el camino correcto para optimizar nada... que es lo que a ti te interesa conseguir.

Ten en cuenta que de forma opcional siempre puedes recurrir a la herramienta NGEN (Native Image Generator) de Microsoft para impulsar de forma muy notable la velocidad de inicio (startup) de tu aplicación, eso sí, como contra afectará negativamente a la velocidad general de respuesta de los controles de la UI, pero el impacto negativo en ese sentido no se suele apreciar a menos que tu app sea muy..."pesada". Tú decides si te compensa ese tipo de mejora.

Por supuesto creo que no hace falta mencionar que para obtener beneficios en el rendimiento/velocidad, y suponiendo que en tu caso sea factible, siempre puedes adaptar tu código fuente antiguo para intentar hacer uso de la programación asíncrona / multi hilo / paralelismo en .NET.

Saludos.








madumo

#3
En primer lugar, muchas gracias por contestar.
Es cierto que pasé el asistente para migración de VB6 a .NET, y que supongo que se ha traducido todo "línea a línea", pero llevo ya unos años trabajando con .NET y he hecho algunos cambios al programa, como conexiones, accesos a datos y tal. Debe ser que los cambios que le he hecho no son suficientes, y que tendré que hacerlos a mayor escala. He utilizado Windows Forms, porque es lo que me resultó tras pasar el asistente, y es que no sabía que hubiera alguna otra opción. Trataré de buscar información sobre XAML y WPF, a ver si puedo adaptarlo a mi proyecto.
Es que he leído algo sobre Velneo, pero parece que sería empezar desde cero, y estamos hablando de un programa de muuuchas líneas, y de muuchos años, que quizás si hablamos de empezar de cero buscaríamos otra opción y olvidarnos del código escrito.
Muchas gracias por vuestras aportaciones y me pondré a investigar por esta línea que me indicáis.
¿Para convertir mi programa en WPF, tendría que empezar de cero? o puedo "importar" o copiar-pegar o alguna otra solución?