Comparaciones de herramientas de conversión para Visual Basic 6.0

¿Alguien ha utilizado alguna de las siguientes (o alguna otra herramienta) para convertir su código vb6 a un idioma .net?

Compañero de actualización de Artinsoft (se convierte a c # y vb.net)

socio vbmigration (se convierte a vb.net)

¿Qué tan efectivos fueron ellos y qué tamaño de proyecto convirtió?

¿Cuánto trabajo queda por hacer después? Qué feliz eres con el proyecto .net resultante. ¿Cómo era el soporte? ¿Existe algún foro de soporte para usuarios de herramientas como esta, ninguno de los proveedores parece ofrecer uno?

¿Qué cobraron, sus precios no se publicaron y he escuchado precios muy diferentes de diferentes fonts para ambos ejemplos anteriores?

    Creo que ya has visto la pregunta sobre las herramientas para migrar VB6 a VB.NET.

    Ambos han publicado precios de oferta especiales para el mercado del Reino Unido sobre sus productos básicos en esta página de Microsoft UK. Por supuesto, necesita conocer las limitaciones de los productos básicos y los precios de su mercado para hacer un juicio realista, por lo que probablemente necesite contactarlos 🙁

    • Artinsoft Upgrade Companion Developer Edition £ 199 para hasta 50,000 líneas de código. EDITAR Ahora ofrece una versión gratuita que puede hacer hasta 10,000 líneas de código.
    • Code Architects ‘Visual Basic Migration Partner Professional Edition £ 399 . Me dijeron que esto también era para hasta 50,000 líneas de código.

    El asistente de actualización de Microsoft incorporado es patético, según el tipo que lo escribió , por supuesto que es de Artinsoft, por lo que quiere venderte algo mejor. Microsoft UK también dice que las herramientas Artinsoft y Code Architects son mejores que el asistente de actualización incorporado.

    EDITAR : Me puse en contacto con Code Architects para obtener una cotización, respondieron muy rápido. A diferencia de esta pregunta de Overflow Stack por Angry Hacker que tuvo una peor experiencia. Pero luego apareció Francesco Balena en Stack Overflow para responder su pregunta en 12 horas, lo que es más alentador.

    Soy Eugenio La Mesa, gerente general de Code Architects. Leí algunos comentarios sobre nuestro socio de migración VB y las herramientas de conversión en general, y pensé que podría agregar algunos consejos útiles.

    Primero, nuestro software de conversión es compatible con todas las propiedades y métodos gráficos de VB6, con la única excepción de DrawMode y ClipControls. Incluso admitimos la propiedad AutoRedraw y las coordenadas ScaleMode definidas por el usuario, por lo que la migración de un progtwig similar a CAD a VB.NET está bastante al scope de nuestro software. La sección de ejemplos de código en http://www.vbmigration.com contiene muchos ejemplos de aplicaciones VB6 intensivas en gráficos que se han convertido a .NET con el mínimo esfuerzo.

    En segundo lugar, permítame aclarar nuestra estructura de precios. Vendemos dos ediciones diferentes de VB Migration Partner: Professional Edition puede convertir aplicaciones VB6 con max. 50,000 líneas de código, mientras que Enterprise Edition no tiene limitaciones de tamaño y es compatible con algunas características avanzadas adicionales, como la integración con el software de control de código fuente y la generación de componentes .NET que son compatibles binariamente con la DLL VB6 original, lo que le permite implementar migraciones escalonadas de aplicaciones basadas en COM de N niveles.

    El precio de Professional Edition por £ 399 es una promoción especial hasta el 30 de junio de 2009, durante una campaña de marketing de Microsoft UK, solo para el Reino Unido y para aplicaciones de hasta 50,000 líneas de código (LOC). El precio de Enterprise Edition puede variar porque depende de varios factores, incluido el número de licencias y el número de LOC que se migrarán. Esto explica por qué puede ver diferentes cotizaciones de precios. Además, recientemente hemos disminuido ligeramente el precio de lista como nuestra respuesta a la situación económica. También estamos planeando sacar algunas características del producto principal y ofrecerlas por separado, lo que daría como resultado una estructura de precios más flexible.

    Honestamente, para aplicaciones con LOC de 25-50K generalmente recomendamos una reescritura manual. De hecho, nuestra atención se centra en el segmento del mercado empresarial, donde a menudo se encuentran aplicaciones VB6 con cientos de miles de LOC, si no millones. En esos casos, una reescritura manual rara vez es una opción viable: requiere demasiados desarrolladores expertos de VB6 / .NET, lleva demasiado tiempo o simplemente cuesta demasiado. Recientemente hemos publicado un estudio de caso relacionado con una aplicación con 650K LOCs; ¡uno de nuestros clientes está migrando actualmente una aplicación monstruosa con aproximadamente 15 millones de LOC!

    “updrading” VB6 a .NET es un nombre inapropiado. Todo lo que obtienes es código VB6 en .NET; en general, puede obtener resultados mucho mejores con un refactor / re-architecture, utilizando un modelo de clase diferente, por ejemplo. Tal vez diseñando para ser probado por la unidad, por ejemplo. O usando IoC.

    Si solo quieres que el código funcione (y estás seguro de que puedes probarlo), está bien.

    Personalmente, consideraría seriamente un puerto más manual. Y tengo un montón de código VB6 heredado, así que sé el dolor involucrado.

    Cada vez que nos hemos enfrentado a esto, simplemente lo hemos reescrito en C # – como un enfoque, se ha demostrado muchas veces.

    De hecho, recomiendo el desarrollo de aplicaciones de Brownfield (Manning), puede brindar algunas ideas valiosas sobre las cosas que se deben implementar antes de comenzar.

    Brownfield

    El problema es que las herramientas de conversión no ofrecen soporte para los comandos de gráficos VB6 o el modelo de impresora VB6. Además, te metes en muchos casos de esquina cuando lidias con controles ActiveX. Sé que nuestras propias aplicaciones de CAD / CAM no se trasladarán con ninguna herramienta de conversión, ya que muchos ajustes se integran en la interfaz de usuario para que funcione sin problemas con el motor de formularios VB6.

    Estas son las cosas que fallan las herramientas de conversión, ya que el motor de WinForm requiere sus propios ajustes. Lo mismo ocurrió cuando nuestro software pasó de DOS a VB3. A veces no hay sustitución para la conversión manual.

    Dicho esto, hay algunas cosas que puedes hacer para facilitar la conversión. Primero asegúrese de que su aplicación esté construida en capas. De esta forma puede convertir una capa a la vez, probar y continuar. También tiene la ventaja de dejarte un software utilizable en cada paso. Recomiendo comenzar en la capa superior (forma) y trabajar hacia abajo.

    Asegúrese de que todo lo que está centrado en VB6 y no Basic Centric está detrás de una interfaz. Cuando .NET apareció por primera vez hace varios años, creé una interfaz Canvas e implementé eso usando el comando de gráficos VB6. Uso la misma interfaz de Canvas en VB.NET, excepto que ahora usa el objeto Graphics. Lo mismo se hizo para las impresoras.

    Casi todo el código se movió fuera de nuestras formas en clases que llamaron los formularios. Los formularios en sí implementan una interfaz que utilizan las clases de interfaz de usuario. Cuando cambiamos a .NET tenemos una definición precisa de cómo el formulario interactuó con el rest del sistema y la conversión de formularios fue considerablemente más fácil.

    Todos estos pasos fueron realizados en VB6 y sometidos a nuestro proceso normal de preguntas y respuestas. Luego, después comenzamos la conversión.

    No he utilizado ninguna de las herramientas mencionadas, pero con un poco de preparación, las herramientas de actualización en Visual Studio son más que adecuadas.

    Lo primero que debe hacer es obtener el Asesor de código de Visual Basic 6 de Microsoft. Es una gran ayuda para preparar su proyecto para la migración.

    Me citaron $ 2500 para la edición profesional de vb migration partner el año pasado. No lo compre, así que puedo comentarlo