Sus aplicaciones de Visual Basic 6, migradas a la web
Muchas empresas siguen gestionando pedidos, producción, citas o contabilidad con programas de Visual Basic 6, más de veinticinco años después de que saliera la última versión. Los migramos a aplicaciones web escritas en C#, conservando los datos y las reglas de negocio, con o sin el código fuente original.
Por qué ahora
Microsoft dejó de dar soporte al entorno de desarrollo de Visual Basic 6 el 08/04/2008. El runtime sigue incluido en Windows y tiene soporte durante toda la vida de las versiones de Windows que lo incluyen, Windows 11 entre ellas, pero solo como componente de 32 bits y solo para regresiones graves y problemas de seguridad críticos. Los controles que no forman parte de Windows, como MSCOMCTL.OCX, MSFLXGRD.OCX y casi todos los OCX de terceros, deben instalarse con la aplicación y Microsoft no los cubre.
En la práctica, la dificultad está en las personas y las herramientas. Microsoft no da soporte al IDE en Windows de 64 bits, cada año quedan menos desarrolladores que conozcan VB6, y cada equipo nuevo supone otra instalación con componentes registrados a mano.
- Entorno de desarrollo de Visual Basic 6Fin del soporte de Microsoft
- Windows 10Fin del soporte de Microsoft
Qué migramos
El programa completo, incluido aquello de lo que depende fuera de su propio código.
Formularios y controles
Ventanas con cuadros de texto, cuadros combinados, rejillas, pestañas y matrices de controles, incluidos MSFlexGrid, ListView y TreeView. Se convierten en páginas web que mantienen la disposición a la que el equipo está acostumbrado.
Lógica en módulos y clases
Cálculos, comprobaciones y procesos repartidos entre archivos .bas y .cls y eventos de los formularios. Los trasladamos a servicios en el servidor cubiertos por pruebas.
Acceso a datos
Código DAO, RDO y ADO que trabaja con Access, SQL Server, Oracle u otras bases de datos, incluido el SQL montado concatenando cadenas. Los datos pasan a SQL Server o MySQL, o se quedan donde están si otros sistemas dependen de ellos.
Informes e impresión
Crystal Reports, DataReport e impresiones dibujadas línea a línea con el objeto
Printer. Cada uno se convierte en un documento PDF con el mismo contenido.Componentes COM y DLL
DLL ActiveX propias, componentes de terceros y llamadas a la API de Windows mediante
Declare. Identificamos cada uno y decidimos si se sustituye, se reescribe o ya no hace falta.Archivos, configuración y dispositivos
Configuración en archivos INI o en el registro, importaciones desde archivos de texto y conexiones con básculas, impresoras de etiquetas o dispositivos serie mediante MSComm. Comprobamos cuáles siguen necesitando algo instalado en el equipo.
Cómo queda la versión web
- Inicio
- Agenda
- Pacientes
- Tratamientos
- Informes
| Hora | Dr Valdrin | Dr Sato | Higienista |
|---|---|---|---|
| 08:30 | L. Moreau - Revisión | A. Bianchi - Limpieza | |
| 09:00 | K. Novak - Empaste | ||
| 09:30 | S. Haddad - Corona | J. Lindqvist - Limpieza | |
| 10:00 | P. Ortega - Endodoncia | ||
| 10:30 | E. Kowalski - Revisión | ||
| 11:00 | N. Ferri - Extracción | R. Dimitrov - Limpieza | |
| 11:30 | T. Brennan - Empaste | ||
| 12:00 | C. Duval - Revisión | H. Ito - Limpieza |
Una agenda de citas tal como podría verse en un programa VB6 en el equipo de recepción, y la misma semana en el navegador.
Arrastre el control o use las flechas del teclado.
Dónde acaba cada parte
- En VB6: Formularios (.frm) y sus eventos
- En la aplicación web: Páginas web, con la lógica en el servidor
- En VB6: Módulos (.bas) y clases (.cls)
- En la aplicación web: Servicios en C# cubiertos por pruebas automáticas
- En VB6: Controles OCX registrados en cada equipo
- En la aplicación web: Componentes web estándar, nada que instalar
- En VB6: Recordsets de ADO o DAO
- En la aplicación web: Consultas parametrizadas sobre SQL Server o MySQL
- En VB6: Crystal Reports o DataReport
- En la aplicación web: Documentos PDF generados por el servidor
- En VB6: Un instalador para cada puesto
- En la aplicación web: Una dirección, abierta en el navegador
Cómo se hace la migración
Análisis en 48 horas
Nos envía el programa instalado y su base de datos, además del código fuente (.vbp, .frm, .bas, .cls) si lo tiene. En 48 horas le respondemos con un informe por escrito: qué hace hoy el programa, dónde están los riesgos, cómo se organizaría la versión web, un precio cerrado para un módulo piloto y una estimación para el resto. Es gratuito y no le compromete a nada.
Módulo piloto
Desarrollamos una parte de la aplicación sobre una copia de sus datos reales, normalmente la que más se usa. Su equipo trabaja con ella a diario antes de que usted decida sobre el resto.
Pruebas automáticas entre lo antiguo y lo nuevo
Registramos lo que produce el programa VB6 con un conjunto de casos reales, como precios, totales y documentos generados, y comprobamos la nueva aplicación frente a esos resultados. Cada regla que encontramos tiene su prueba automática, que da los mismos datos de entrada al programa antiguo y a la nueva aplicación y comprueba que los resultados coinciden. Usted recibe los resultados de las pruebas.
30 días en paralelo
Cuando la aplicación completa está lista, el programa VB6 sigue en uso junto a ella durante 30 días. Cualquier diferencia aparece mientras el programa antiguo sigue ahí, y la corregimos dentro del precio acordado.
Los problemas habituales, y cómo los resolvemos
Dependencias OCX y ActiveX
Muchos programas VB6 se apoyan en controles que no vienen con Windows, a veces de fabricantes que ya no existen, y Microsoft clasifica archivos como
GRID32.OCXyTHREED32.OCXcomo no admitidos. El análisis enumera cada dependencia, qué hace en el programa y con qué se sustituye.Variant, propiedades predeterminadas y conversiones implícitas
VB6 convierte sin avisar entre cadenas, números y fechas, y una línea como
Text1 = rs!Totalse basa en propiedades predeterminadas. Una traducción literal a C# o VB.NET se comporta de otra manera en los casos límite, por ejemplo con campos vacíos o con fechas en otro formato regional. Reescribimos esos puntos a propósito y los cubrimos con pruebas.On Error Resume NextHabitual en el código VB6, oculta los fallos y deja que el programa siga con datos a medio escribir. Donde lo encontramos, averiguamos qué quería evitar el autor original y tratamos ese caso de forma explícita. Si no, la nueva aplicación se detendría con un error o repetiría los mismos fallos silenciosos.
Integerde 16 bits y redondeosEn VB6 un
Integerllega como máximo a 32.767, origen de muchos errores de desbordamiento cuando una tabla crece. El tipoCurrencytiene cuatro decimales, yRoundaplica el redondeo bancario. Reproducimos el redondeo que espera el negocio y señalamos dónde se equivocaba el programa antiguo.SQL montado concatenando cadenas
Las consultas construidas con
&a partir de lo que escribe el usuario están expuestas a la inyección SQL y fallan con los nombres que llevan apóstrofo. En la nueva aplicación cada consulta usa parámetros.Código fuente perdido o desfasado
A veces el código fuente se ha perdido, o la copia guardada no coincide con el programa en uso. Un programa VB6 compilado no permite recuperar un código fuente fiable, así que trabajamos a partir del programa en funcionamiento, su base de datos y sus pantallas, y el análisis indica con claridad qué partes tienen más incertidumbre.
Precio y forma de pago
Análisis
Gratuito
por escrito, en 48 horas
Módulo piloto
1000–1500 €
normalmente, 50 % al empezar y 50 % al aprobarlo
El análisis es gratuito. Si decide no seguir adelante, se queda con el informe y no nos debe nada.
Los precios son cerrados y se acuerdan por escrito antes de empezar. Si cambia el alcance, le enviamos un nuevo presupuesto por escrito y esperamos su aprobación antes de hacer el trabajo adicional.
En una migración completa, nuestro objetivo es quedar entre un 40 y un 60 % por debajo del presupuesto habitual de una agencia. Podemos hacerlo porque somos un estudio pequeño, sin oficinas que pagar ni equipo comercial.
Precios sin IVA.
Una migración real, comprobada con pruebas
Northwind es la base de datos de ejemplo que Microsoft incluía con Access, no un cliente nuestro. Migramos una copia pública a SQLite y PostgreSQL, comparamos cada tabla y cada consulta con el original mediante pruebas automáticas y construimos sobre el resultado una aplicación web que funciona. El caso práctico da las cifras y el informe de equivalencia detalla cada comprobación.
Northwind es una base de datos de Access, pero con Visual Basic 6 seguimos el mismo método: migrar, comprobar frente al original y mantener ambos en paralelo.
Informe de equivalencia (en inglés) · Vista previa y análisis de ejemplo (demo)

Preguntas frecuentes
No tenemos el código fuente. ¿Pueden migrar el programa igualmente?
A menudo, sí. Trabajamos a partir del programa en uso, de su base de datos y de capturas o grabaciones de cómo lo usa el equipo. El análisis indica qué partes podemos reproducir con seguridad y cuáles necesitan información por su parte.
¿Por qué no convertir el código automáticamente a VB.NET o C#?
Las herramientas de conversión generan código que compila, pero que conserva la estructura de escritorio, depende a menudo de bibliotecas de compatibilidad y arrastra los problemas antiguos. Para una aplicación web reconstruimos las pantallas y trasladamos la lógica, usando el código VB6 como especificación de lo que hace el programa.
¿Dejará de funcionar nuestro programa VB6 en Windows 11?
No por sí solo: Microsoft da soporte al runtime de VB6 en Windows 11. Lo que suele fallar es todo lo que lo rodea: archivos OCX sin registrar, instaladores perdidos, controladores de bases de datos antiguos y el IDE, al que Microsoft no da soporte en Windows de 64 bits.
Nuestro programa se comunica con una báscula o una impresora de etiquetas. ¿Puede hacerlo una aplicación web?
Normalmente sí, pero es la única parte que puede requerir un pequeño programa instalado en el equipo conectado al dispositivo. Lo comprobamos durante el análisis y lo incluimos en el precio.
¿Podemos migrar por partes?
Sí. El módulo piloto es la primera parte, y el resto puede llegar por fases. Cuando es posible, el programa VB6 y la aplicación web comparten la misma base de datos durante la transición.
¿En qué lenguaje estará escrita la nueva aplicación?
Normalmente en C# con ASP.NET Core, que cualquier desarrollador .NET puede mantener. PHP con MySQL es una alternativa si es lo que maneja su proveedor informático.
Otros servicios
- De Microsoft Access a aplicación webTablas, consultas, formularios, informes y VBA llevados a una aplicación web sobre SQL Server o MySQL.
- De Excel VBA a aplicación webLibros con macros, UserForms y hojas vinculadas convertidos en una aplicación web multiusuario.
- Migración de aplicaciones DelphiProgramas Delphi sobre BDE, Paradox o dBase llevados a una aplicación web con base de datos SQL.
- Modernización de .NET (WinForms, WebForms)Aplicaciones WinForms y ASP.NET Web Forms llevadas a ASP.NET Core, conservando lo que aún funciona.
- Software a medida e integracionesNuevas aplicaciones de gestión, integraciones mediante API REST, migración de datos y mantenimiento.
Contacto
Por correo electrónico:
riccardo@Envíenos el programa y su base de datos, con datos de prueba si lo prefiere, o una breve descripción de lo que hace. Le responderemos en un día laborable.
Trabajamos desde Italia.