Migrar desde Visual FoxPro a Xojo

Visual FoxPro (VFP) es una herramienta de programación de Windows creada por Microsoft.  Ya ha llegado al final de su vida y de hecho ya no está soportada por Microsoft. VFP dispone de su propio motor de base de datos integrado, un diseñador de formularios y un lenguaje de programación.

Migración desde FoxPro

Migrar una aplicación de Visual FoxPro es generalmente un proceso en tres pasos donde se migra la base de datos propiamente dicha, los formularios utilizados para manipular los datos y el código de scripts utilizado.

Base de datos

Cuando se migra una aplicación de VFP lo primero que necesitas tener en cuenta es la base de datos propiamente dicha. Puedes conectarte a una base de datos VFP utilizando ODBC en Windows, pero tiene más sentido migrar los datos a SQLite, un motor de bases de datos rápido y que además es multiplataforma.

Formularios

En VFP se utilizan los formularios para editar los datos de las tablas. Puede recrearlos como Ventanas (o Páginas Web) arrastrando y soltando los diferentes controles gráficos, tal y como harías en VFP.

En el caso de las aplicaciones de escritorio, encontrarás en el control DataControl una forma simple de mapear los campos con las tablas y columnas de las tablas de la base de datos, sin tener que escribir siquiera una sola línea de código.

Código Fuente

VFP se programa utilizando un lenguaje propietario que resulta bastante similar al lenguaje de programación Xojo. Podrás reescribir tu código, pero al mismo tiempo encontrarás que el lenguaje de programación Xojo te resulta familiar.

Cully Technologies tiene una herramienta que puede ayudarte en la migración de tus proyectos Visual Fox Pro a Xojo.

Sintaxis del Lenguaje

La sintaxis de los dos lenguajes es diferente, pero los conceptos son muy similares. Por ejemplo, para crear una instancia de una nueva clase en VFP, escribirías este código:

LOCAL oMyClass
oMyClass = CREATEOBJECT("MyClass")

En Xojo tendrías que escribir:

Dim oMyClass As New MyClass

El comando MessageBox de VFP es parecido. En vez de escribir esto:

MessageBox("Hello, World!")

Has de escribirlo así:

MsgBox("Hello, World!")

Estos son algunos de los comandos VFP y de sus equivalentes en Xojo:

Comando VFPComando Xojo
ON ERRORException
TRY..CATCH..END TRYTry..Catch..End Try
DO WHILE..ENDDOWhile..Wend
FOR EACH..ENDFORFor Each..Next
FOR..ENDFORFor..Next
IF..ENDIFIf..End If
LOOPContinue
DECLAREDim
DO CASE..END CASESelect Case..End Select

 

Agradecimientos especiales a Kevin Cully of Cully Technologies por su ayuda a la hora de prepara la información contenida en esta entrada.

Información Adicional

Para aprender más sobre Xojo y sobre cómo utilizarlo para sustituir a Microsoft Visual FoxPro, consulta este Webinar (en inglés):

33 comentarios en “Migrar desde Visual FoxPro a Xojo

  1. micky

    Interesante tu articulo, estoy buscando la forma de hacerlo entre de VFP a C#… mas que nada la parte de clases visuales de como lo haces en vFP y hacerlo similar en C#.

    Gracias

    1. Javier Rodriguez

      Estimado Micky,

      Te recomiendo que descargues Xojo y le eches un vistazo. Es Multiplataforma real, nativo y comprobarás cuan fácil y potente es tanto el entorno de desarrollo como el lenguaje propiamente dicho.

  2. Jose Rodolfo Garcia

    Hola Javier, veo interesante esto de Xojo. Programe durante mucho tiempo en Visual FoxPro y me gustaria migrar varios de mis proyectos a esta herramienta Xojo. Me puedes dar algunos tips de donde encontrar cosas para ir probando??

    1. Javier Rodriguez

      Hola,

      Me pongo en contacto con usted por correo electrónico.

      1. feliciano enrique yagual Sarasti

        me interesa, pero hay que ver, estoy revisando scriptcase

      2. Javier Rodriguez

        Estimado Feliciano,

        Después de echar un vistazo a Scriptcase, comprobarás que no tiene nada que ver con Xojo. La primera es un framework en torno a PHP que requiere del conocimiento de HTML, JavaScript… y PHP. Por otra parte Xojo permite crear y desplegar aplicaciones nativas Multiplataforma autocontenidas, más seguras, potentes y flexibles en cuanto al tipo de proyectos que puedas realizar.

        Para acelerar el aprendizaje con Xojo siempre puedes contar con los recursos disponibles en mi sitio web, en el propio sitio web de Xojo (también en español), así como mediante mis bonos de consultoría/formación y el libro electrónico que te permite aprender el lenguaje desde cero.

        Javier

  3. Nery

    Hola, con respecto al lenguaje VB 6, se puede migrar con herramientas o se debe re-escribir únicamente.

    saludos

    1. Javier Rodriguez

      Hola,

      Puedes utilizar el Asistente de Migración de VisualBasic a Xojo; si bien has de tener en cuenta que no se encarga de convertir el código de VisualBasic a Xojo… sino que simplemente se trata de una ayuda que se encarga de lo siguiente:

      VBMA migra los siguientes proyectos de VB a Xojo:

      Estructura del Proyecto
      Diseños de los formularios/plantillas
      Código Fuente

      Una vez que el proyecto está en Xojo, puedes iniciar el proceso de actualizar todo para que funcione en Xojo.

      Puedes encontrar más información sobre el proceso de migración desde VisualBasic, en español, en esta otra entrda del blog.

  4. Jainer Marin

    Gracias
    Muchacho. Me han inquietado y voy a revisar el tema de xojo

    Gracias.

  5. kristhian rojas

    para personas que quieran aprender a programar es muy complicado?

    1. Javier Rodriguez

      Hola Kristhian,

      La curva de aprendizaje de Xojo es realmente suave y conseguirás resultados en muy poco tiempo. Esto es en gran parte así gracias al IDE (entorno de desarrollo) y al paradigma de programación orientada a eventos, y también al potente lenguaje de programación orientado a objetos. Las ayudas proporcionadas por el IDE en el diseño de interfaces de usuario son excelentes, así como el autocompletado de código, las pistas sobre uso de métodos en la barra inferior de la ventana, etc.

      Para aprender el lenguaje te recomiendo mi eBook puesto que, precisamente, enseña los fundamentos de la programación desde cero con el lenguaje de Xojo.

      También encontrarás otros recursos gratuitos como las entradas de este mismo blog, la mayoría de ellos como tutoriales con vídeos, los cursos gratis (sobre el uso de Timers —temporizadores— y también SQLite con Xojo), etc.

      En fin, descarga gratis Xojo y compruébalo por ti mismo. Seguro que te enganchará en poco tiempo!

  6. jose valverde

    Amigo javier, que ventajas hay en XOJO en relacion a otro lenguajes (Python,Java,C++, etc etc

    1. Javier Rodriguez

      Estimado Jose,

      Debido a la longitud del texto, le respondo directamente a la dirección de correo electrónico proporcionada.

  7. ORLANDO CARMONA

    Tengo varias aplicaciones en vfp9. Estas aplicaciones se deben adaptar a la nube. Xojo puede ayudarme a cumplir con esta meta?. existe algun proceso automatizado de conversion? que tan complicado es el aprendizaje de Xojo con respecto a lo conocido en vfp9.

    Agradezco su colaboracion al respecto

    1. Javier Rodriguez

      Seguramente pueda adaptar sus soluciones a la nube con Xojo. Lo que no encontrará será una herramienta que automatice el proceso, aunque puede observar que existen diversas similitudes en el lenguaje de programación, de modo que no le resultará muy compleja la adaptación.

      Eso sí, el principal cambio probablemente sea el de adaptar la base de datos propiamente dicha desde VFP a cualquiera de los motores de bases de datos estándares como PostgreSQL, MySQL, Oracle… una buena decisión en cualquier caso.

      El aprendizaje de Xojo es realmente sencillo y directo; además de que podrá afrontar la creación de cualquier tipo de aplicación nativa y compilada tanto para Desktop, como para la nube, iOS o RaspberryPi.

      Si necesita despejar cualquier duda o bien acelerar el aprendizaje del lenguaje Xojo, le recomiendo tanto mi eBook “Lenguaje de Programación Xojo” como los bonos de consultoría/formación, mediante los cuales puede impulsar el aprendizaje del entorno en tiempo récord. Si necesita más información, no dude en contactar nuevamente conmigo.

  8. Juan Martinez

    Que tal Javier. Soy programador de VFP desde que salió al mercado y aun mas atrás de dBase III+ y Clipper Summer 87 y Clipper V. Que tienen en común? Además que todos están casi extintos, usaban tablas DBF’s. Orgulloso sigo desarrollando en VFP, sin embargo he estado haciendo mis primeros proyectos con XOJO y estoy muy entusiasmado. Estoy pensando dar el paso para comprar una licencia para desarrollar en WEB pero tengo duda en que es lo que debo comprar aparye para vender mis proyectos. La primera duda seria:
    1. Si compro dicha licencia, puedo desplegar mis aplicaciones en internet sin costo adicional?
    2. Es necesario comprar un servicio Cloud para mis proyectos?

    Ojala me puedas apoyar en tomar esta decisión y agradezco el apoyo.

    1. Javier Rodriguez

      Hola Juan,

      Te he contestado vía email, y también te contesto por este canal por si otros usuarios encuentran útil la respuesta.

      1. Puedes desplegar tus aplicaciones (de cualquier tipo con Xojo) sin coste adicional de royalties u otros costes ocultos; sólo los que tu mismo debas de asignar como propio coste de infraestructura: en el caso de despliegues Web sería el hosting compatible con los requerimientos técnicos de despliegue.
      2. NO es necesario contratar Xojo Cloud para el despliegue de aplicaciones Web; si bien la inmensa mayoría creo que lo encontraréis verdaderamente útil por muchos motivos: te despreocupas de todas las tareas asociadas con la puesta en marcha, configuración y mantenimiento del servidor (¡especialmente en lo relacionado a la seguridad!); está totalmente integrado en el IDE de Xojo; la configuración de SSL es tan simple como hacer clic en un botón; crece a medida que tus apps lo requieren; flexible y un precio bastante aceptable teniendo en cuenta todo lo que ofrece. De este modo, sólo te tienes que centrar en la propia solución que desarrollas y no en el sistema sobre la cual la estás desplegando… especialmente si no tienes un equipo de TI detrás de ti 😉
      Javier

  9. Orlando rodriguez

    Javier como estás?
    Soy desarrollador vfp desde hace muchos años. Al leer sobre Xojo parece ser la solución ideal para mis nuevos desarrollos. Dentro de las preguntas iniciales que tengo están: 1. que tan robustas pueden ser las aplicaciones web que se desarrollen. 2. Que tan sencillo es la integración con librerías de terceros. 3. Actualmente uso la api de window en varios casos. Que tan fácil es su uso en Xojo?

    Finalmente me gustaría que me contactaras para revisar otros temas

    Gracias de antemano por tu respuesta

    1. Javier Rodriguez

      Hola Orlando,
      Te he enviado un email para que podamos contactar y te explico en detalle. Te anticipo: las apps Web de Xojo son robustas.

  10. Roberto

    Hola Javier.
    Tengo aplicaciones desarrolladas en vfp.
    Me interesaria informacion de Xojo sobre todo en lo relacionado al manejo de formularios y el uso de grillas (grid) y tablas en memoria y su comportamiento en la web.
    Existe alguna demo disponible?.

    A si mismo el costo de licencia para desarrollo.
    Espero tu contacto.
    Muchas Gracias

    1. Javier Rodriguez

      Hola Roberto,

      Le he contestado vía email. No dude ponerse en contacto por el mismo medio en el caso de que precise información adicional.

      Javier

  11. Oscar Vergara

    Saludos
    Estoy muy interesado en migrar todas mis aplicaciones.
    Pregunto:
    Es funcional para aplicaciones que usen tabletas, celulares, etc?
    Me explico, con el PHP tengo programación web, con ésta puedo hacerlo?

    1. Javier Rodriguez

      Hola Oscar,

      Con Xojo puedes crear aplicaciones Web que pueden utilizarse tanto desde Desktop como desde Tabletas y Celulares. Incluso, si quieres crear apps nativa para los dispositivos móviles de Apple, también puedes hacerlo como app nativa iOS (el soporte para crear aplicaciones nativas Android está en camino!)

      En este mismo sitio web puedes encontrar multiples ejemplos sobre técnicas en aplicaciones Desktop, como Web e iOS creados con Xojo.

      Entre otras, una de las grandes virtudes de Xojo es que con el mismo lenguaje puedes crear productos para todas las plataformas de despliegue soportadas.

      Javier

  12. FOXPROSIANO

    PUEDO PASAR Y CORRER UN PROGRAMA DE VISUAL FOXPRO 9 UN ARCHIVO PRG Y CORRERLO JUNTO CON SUS TABLAS.

    1. Javier Rodriguez

      Xojo utiliza su propio lenguaje de programación y diseño de formularios (la interfaz gráfica de usuario), mientras que para el almacenamiento de tablas se puede utilizar desde SQLite (todas las ediciones de Xojo), hasta bases de datos abiertas y extendidas como MySQL, PostgreSQL u otras como MS SQL Server y Oracle. También es posible acceder a otros motores de bases de datos mediante ODBC, si bien en este caso el tipo de operaciones que se pueden realizar sobre las tablas está restringido a las posibilidades que ofrezca un driver ODBC para el motor de bases de datos con el que se desee conectar.

      Estoy convencido de que existen herramientas que le permitirán portar sus actuales bases de datos FoxPro a entornos de bases de datos más abiertos (no propietarios) como los indicados.

      Desde el principio, la mayor flexibilidad que aporta la conversión de FoxPro a Xojo redunda en el tipo de aplicaciones más amplio que se puede afrontar, así como la capacidad de crear y desplegar aplicaciones nativas Desktop (macOS, Windows, Linux), Web e iOS utilizando el mismo IDE y lenguaje de programación.

      Le animo a que descargue y vea por usted mismo el RAD (entorno rápido de desarrollo) Xojo, ya que es gratuito y permite grabar los proyectos y ejecutarlos desde el IDE sin que sea preciso adquirir la licencia (www.xojo.com/download).

      Otra de las ventajas de Xojo, es que una vez adquirida la licencia no tendrá costes adicionales. Es decir, no está sujeto a royalties o pagos por conexión / clientes, tal y como sí ocurre con otras soluciones. En fin, que una vez creadas sus soluciones, no tendrá que pagar nada más… da igual si los productos creados van a ser utilizados por 10 o 1000 usuarios (o más), el coste es el mismo.

      Encontrará documentación sobre Xojo en castellano tanto aquí como en el área de documentación de Xojo, además de una gran cantidad de proyectos de ejemplo que le permitirán avanzar a mayor ritmo en el aprendizaje (de por sí sencillo) y uso tanto del lenguaje de programación como del IDE propiamente dicho. Mi eBook “Programación Multiplataforma Xojo” es un buen comienzo sobre los fundamentos del lenguaje desde cero y la programación orientada a objetos (OOP).

      Si tiene más dudas, puede ponerse en contacto conmigo a través del email (formulario de la página de contacto)

    2. Ariel Sznaiderberg

      Tenemos desarrollado un sistema de gestión comercial en vfp 6.0 con bases dbf .y necesito pasarme a un entorno web. Que herramientas me brinda xojo para poder hacerlo ?. Hay gente experta en el mercado argentino , que sepa xojo ?

      1. Javier Rodriguez

        Hola Ariel,
        Con Xojo puede crear aplicaciones web que trabajen contra bases de datos MySQL o PostgreSQL, por ejemplo. Puede encontrar todo tipo de información en Español (incluyendo tutoriales en vídeo) tanto en mi sitio web como en: https://docs.xojo.com/Spanish, así como en el canal de YouTube de Xojo en Español en este enlace.

        El entorno de desarrollo es Multiplataforma, fácil de aprender y potente. El desarrollo de las interfaces de usuario de las aplicaciones (formularios) se realiza mediante “arrastrar y soltar”; y además cuenta con multitud de documentación y ejemplos que puede utilizar como puntos de partida, así como otra buena cantidad de recursos gratuitos.

        La conversión desde las actuales bases de datos dbf a cualquier otro motor de base de datos como MySQL o PostgreSQL no debería de representar mayor problema.

        ¡Hay desarrolladores expertos en Xojo en todo el mundo! Y desde luego me consta que en Argentina existe una abundante cantidad de dichos usuarios. Unos buenos sitios en los que puede contactar con desarrolladores es en el foro de Xojo en Español, así como a través del formulario de Consultoría de Xojo.

  13. Juan Yanguez

    Hola amigo.
    Tus explicaciones han sido muy claras pero tengo una duda. Puedo emigrar todos mis archivos PRG a XOJO fácilmente? O sea existe una forma fácil de emigrar el código escrito dentro de un archivo PRG a un archivo equivalente en XOJO?

    1. Javier Rodriguez

      Hola Juan,

      No hay ninguna utilidad (que yo conozca) capaz de realizar la conversión de una forma automatizada. Esta ha de realizarse manualmente (lo cual es del todo comprensible), teniendo en cuenta que resulta bastante fácil adaptar los formularios y también las expresiones del lenguaje. La parte quizá más sensible sea la de trasladar las bases de datos, propietarias, a motores de bases de datos más extendidos y abiertos como los indicados MySQL, PostgreSQL, MS SQL Server, SQLite, etc.; para lo cual fijo que hay alguna herramienta que te pueda resultar de ayuda

  14. Sergio R.

    Estimado Buenas Tardes.
    Tengo formularios desarrollado en FVP a través del IDE de visual.
    Los mismos trabajan con MySql conectados a través de ODBC.
    Necesitaría generar aplicaciones estadísticas con la info ya incorporadas en DB MySql y que seguirán generadose con el sistema de escritorio visualfoxpro actualmente en uso.
    Las nuevas aplicaciones las desarrollaría en XOJO y deberían corre en WEB y generar APP para Android – iOS.
    Mi consulta concreta es el IDE de desarrollo de XOJO es similar al que usamos en VFP, abriendo un formulario y arrastrando los diferentes objetos por ejemplo labels, textos grillas, botones, etc…
    y si cuenta con un generador de diseño por ejemplo como el grid??.
    Espero haber podido expresar mis inquietudes
    Atte
    SRC

    1. Javier Rodriguez

      Hola Sergio,

      Actualmente puede crear apps nativas para Web, iOS, Desktop (Windows, macOS, Linux y Raspberry Pi), Raspberry Pi y Consola. El despliegue nativo para Android está en desarrollo.

      El sistema de creación de formularios se realiza mediante un Editor visual mediante arrastrar y soltar: se arrastran los diferentes controles desde el panel de Librería sobre el Editor de Diseño: TextBox, Label, botones, listados, etc. Dicho editor incorpora las herramientas y ayudas para facilitar el diseño de los mismos, tales como ordenación de controles, alineación, orden de tabulación, etc.

      Xojo no cuenta con un grid propiamente dicho, si bien en la mayoría de los casos puede encontrar en el ListBox una solución equivalente, así como en el cambio de enfoque a la hora de plantear la conversión de diseño desde FoxPro hacia Xojo (¡en la mayoría de las ocasiones una conversión directa desde un entorno de desarrollo hacia otro no es la mejor de las opciones para obtener el máximo provecho del entorno de destino!)

      No obstante, y si desea continuar con el uso de grids, puede encontrar este control proporcionado por parte de terceros y que puede incorporar también en sus diseños.

      Puede comprender mejor como funciona Xojo descargándolo desde el área de descarga del sitio web de Xojo (es gratis) y ejecutando alguno de los múltiples ejemplos incluidos o bien siguiendo las guías rápidas que puede encontrar en el área de documentación en español, donde también puede encontrar multitud de tutoriales en vídeo en español y otros materiales.

  15. Daniel Campoy

    Hola Javier
    Descargue Xojo y estuve probándolo un poco. Me resultó muy interesante ya que soy programador en visual foxpro desde hace muchos años y a diferencia de .net, la escritura y estructura de Xojo es muy parecida a VFP.
    Unas consultas:
    1.- en VFP estoy muy acostumbrado a utilizar los cursores (tablas en memoria que se pueden obtener de resultados de tablas consultadas en al motor o creadas en el mismo procedimiento). Existe algo similar en Xojo?
    2.- Al crear una aplicación de escritorio, no podría compilarla como web o como app para IOS? tendría que modificar el código y controles?
    Saludos!

    1. Javier Rodriguez

      Hola Daniel,

      1. En Xojo también tienes el equivalente a los cursores, representados mediante los RowSet. Estos incluyen los registros obtenidos como resultado de una consulta, de modo que puedes navegar entre ellos y acceder a los datos de las columnas.

      2. Depende de la licencia que adquieras. Por ejemplo, con Xojo Pro puedes crear aplicaciones tanto para escritorio como para Web, iOS, Raspberry Pi, Consola y en un futuro próximo también para Android.

      La tendencia que se está realizando es que tanto los controles como el código sea compatible. En algunos casos, los controles tienen determinadas idiosincracias propias de la plataforma de destino y que no están presentes en el resto; algo lógico por otra parte. En cuanto al código la idea es que con solo copiarlo y pegarlo se ejecute tal cual en cada una de las plataformas soportadas.

      Para ver esta y otras tendencias te recomiendo que veas el siguiente vídeo: https://www.youtube.com/watch?v=oi5MCrDlpsg

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *