Visual Basic.NET - VB6.0 frente a Visual Studio.Net

 
Vista:
sin imagen de perfil

VB6.0 frente a Visual Studio.Net

Publicado por Alberto (26 intervenciones) el 30/11/2021 21:31:16
Es una opinión lo que os ruego. Ya sé que preguntarlo en el foro de Visual Studio .Net es como preguntar en el foro del Betis si es más plus el Betis o el Sevilla, no obstante oso preguntarlo. Tengo un programa muy elaborado en V B6.0 que me funciona perfectamente. He visto Visual Studio 2019 y he estado aprendiendo lo primero en VB .Net atraído por la mejor presentación que tiene el código, sin embargo exige aprender bastante y trabajar "lo nuevo", y me parece que el resultado va a ser el mismo. A los que sabéis más de esto, que sois casi todos, os pregunto: ¿compensa finalmente aprender el Visual Studio 2019 porque vaya a obtener un producto mejor? o por el contrario la diferencia no compensa el esfuerzo que se exige. Desde mi ignorancia no compensa, parece que voy a sacar el mismo producto con un lenguaje más complicado, pero si me equivoco, seguiría con el aprendizaje. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 135
Ha aumentado 1 puesto en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

VB6.0 frente a Visual Studio.Net

Publicado por Agustin (39 intervenciones) el 30/11/2021 22:10:23
Está mal planteada la pregunta desde el vamos.

No, refactorear tu sistema VB6 desde CERO a .NET con Winforms no tiene sentido si el sistema funciona. El problema no está ahí.

El problema está, como ya dije muchas veces acá, en que VB6 es un lenguaje muy bueno para un mundo que ya no existe.

El mundo de hoy y el software de hoy es cloud-first, mobile-first. Es decir, "primero la nube", "primero el móvil". Esto significa que los sistemas modernos hechos con lenguajes y plataformas modernas como .NET están orientados a correr en la nube (nótese que alquilar una virtual machine en un hosting cualquiera e instalarle un web server o un SQL adentro NO es la nube, eso es un sistema on-premises igual que cualquiera de hace 15 años).

Debido a que VB6 no soporta ninguno de estos paradigmas fundamentales, es una herramienta completamente obsoleta para el mundo actual.

O sea, vos podrás decir que tu sistema VB6 "funciona perfectamente", pero dudo muchísimo que sea accessible via web, que funcione en Android, o que soporte una gran cantidad de usuarios concurrentes, o que sea fácil de integrar contra otros sistemas, o que por ejemplo, soporte inicio de sesión con redes sociales, se integre con sistemas de mensajería o plataformas como Slack o Teams, permita subir archivos a servicios cloud como Google Drive o OneDrive, tenga la facilidad de exponer una API o un webhook para que otros sistemas se integren con él, que tengas un elevado grado de control sobre métricas de uso, e incluso cosas básicas y fundamentales como que se adapte a cualquier resolución de pantalla o que sea de fácil (NULA) instalación para el usuario sin tener que meterse en demasiados asuntos técnicos.

Todas estas cosas que nombro tienen una diferencia ABISMAL en el grado de dificultad y trabajo que implica hacerlas en VB6 versus hacerlas en .NET: es muy probable que muchas de las cosas que nombro sean muy difíciles o imposibles de lograr en VB6, mientras que en .NET la mayoría se resuelve con librerías existentes o diseñando una arquitectura escalable de backend.

Si tu proyecto no tiene ninguno de estos requerimientos, como dije arriba, no tiene sentido rehacerlo en .NET.

Tampoco tiene sentido seguir trabajando en VB6 en 2021. La gente que lo hace lo hace por pura ignorancia o pereza de no querer aprender las tecnologías nuevas. Es decir, si vas a encarar un proyecto nuevo en 2021 de ninguna manera deberías hacerlo en VB6. Esto no significa que tengas que tirar a la basura lo que ya hiciste.

Por otro lado, las ventajas en términos de código específicamente de trabajar en .NET versus VB6 son ENORMES: VB.NET es un lenguaje estáticamente tipado que atrapa en tiempo de compilación muchísimos de los errores que en VB6 se manifiestan en tiempo de ejecución. Ni hablemos de que una vez que empezás a usar .NET como plataforma te podes mover a C# y ahí aprovechar las ventajas del lenguaje como LINQ, record types, generics, y un enorme etc.

Para finalizar, cabe mencionar que existen las low-codes, que básicamente tratan de revivir el espíritu de VB6 (como plataforma, NO como lenguaje). Muchos de los sistemas que he visto hechos en VB6 son perfectos candidatos para ser recreados con plataformas como la Power Platform, por ejemplo, donde no solamente ganan todas las ventajas que mencioné arriba, sino que además sigue siendo fácil su construcción y mantenimiento usando herramientas como diseñadores visuales, y muchas veces incorporan características que hubieran sido muy costosas introducir en el software de manera ad-hoc, como grillas filtrables, formularios responsive para mobile, seguridad por roles y usuarios, y un enorme etc.

Acá un ejemplo del editor de aplicaciones de la Power Platform:

Blog-Appdesigner2

Fijate que esto es 100% web, funciona bien en mobile, es 100% cloud, no tenés que instalar nada, y difícilmente tu sistema en VB6 tenga una UI moderna como esa.

Edit: agrego otro comentario más, viendo tu historial en el foro, observo (ya me había olvidado) que hacer muchas cosas en VB6 implica renegar con cuestiones de OCX, registración, COM interop, y la mar en coche. NADA DE ESO EXISTE EN .NET. En .NET para referenciar una libreria (que dicho sea de paso existe un ecosistema ENORME de librerias de .NET, muchisimo mayor al de VB6), pones click derecho -> manage nuget packages -> buscas la libreria -> click en install. FIN. Funciona. No tenes que registrar OCXs, ni preocuparte por problemas de compatibilidad, ni la mar en coche. A todas luces la tecnología es infinitamente mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

VB6.0 frente a Visual Studio.Net

Publicado por Alberto (26 intervenciones) el 01/12/2021 07:21:12
Muchísimas gracias por tu respuesta que me presenta en .NET opciones que yo ni me había planteado. He imprimido lo que me dices y lo leeré / estudiaré con el máximo interés. Mi programa es para la gestión de múltiples inversiones de múltiples inversores pero con un gestor único. Veré hasta qué punto se podría compartir con seguridad la informaciòn, no la gestión, en una nube. Esto justificaría el cambio a .NET, contra lo que no tengo ningún problema. me gusta el ejercicio mental que supondría el nuevo programa, obteniendo a cambio una mejora que no puedo alcanzar con VB6.0. Repito, muchísimas gracias, conservaré como oro en paño tu mensaje, que me será utilísimo. Que tengas un buen día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar