Sei sulla pagina 1di 13

Estrategias de Conversin de Fox Pro 2.

6 a Visual FoxPro

Tabla de Contenido.

ESTRATEGIAS DE CONVERSIN DE FOX PRO 2.6 A VISUAL FOXPRO.........................................1 PORQU CONVERTIR?...............................................................................................................................3 ESQUEMAS DE CONVERSIN....................................................................................................................4 TIPOS DE CONVERSIN...............................................................................................................................5 CONVERSIN FUNCIONAL.......................................................................................................................................5 CONVERSIN VISUAL.............................................................................................................................................6 ESTRATEGIA DE CONVERSIN................................................................................................................7 RESULTADOS DE LA CONVERSIN.......................................................................................................11 PLAN DE ACCIONES A SEGUIR...............................................................................................................12 VENTAJAS DE LA CONVERSIN.............................................................................................................13

Porqu Convertir?

FoxPro 2.x es una plataforma de 16 bits, y en equipos de procesadores con velocidad mayor a 300 Mhz. produce un error confuso, o bien, bloquea los equipos, haciendo necesario aplicar un parche para corregir estas situaciones.

FoxPro 2.x para Windows no soporta las nuevas tecnologas, algunas muy importantes, como los controles ActiveX, automatizacin ActiveX, activacin in-place, Active Data Objects (ADO) y Microsoft Transaction Server.

La rpida evolucin del desarrollo de aplicaciones basadas en componentes y el diseo multitier, as como las aplicaciones Web, significan importantes restricciones para las aplicaciones de FoxPro 2.6.

El ambiente natural de Visual FoxPro para el desarrollo, est verdaderamente orientado a objetos, no slo basado en objetos, as como su enfoque al manejo intensivo de informacin y facilidad para manejar clases, lo hacen una herramienta muy robusta para desarrollar aplicaciones modernas.

Esquemas de Conversin.

Visual FoxPro ofrece tres esquemas generales o metodologas que se pueden tomar para llevar a cabo la conversin de sistemas. Estos esquemas se pueden clasificar de la siguiente manera:

Minimalista.-

Preservando el cdigo base de 2.x lo ms que sea posible.

Incremental.- Re-escribiendo o convirtiendo porciones del cdigo base, posiblemente en fases, incluyendo la opcin de modificar las interfaces de usuario. Radical.cdigo. Re-escribiendo completamente la aplicacin y mucho del

Cada una de ellas tiene sus ventajas y desventajas, sin embargo nuestra recomendacin y estrategia se enfoca a la conversin incremental. Este esquema extiende la visin minimalista para utilizar las herramientas de diseo y herramientas de productividad de Visual FoxPro, tales como el Diseador de Formas y el Diseador de Clases. Este tipo de esquema de conversin es recomendable cuando las siguientes afirmaciones son ciertas para una aplicacin escrita en 2.x:

La aplicacin esta razonablemente probada y estable. La solucin bsica de la aplicacin, dentro de su alcance, todava es vlido y slo se esperan pequeos cambios en ese contexto. Cualquier nueva tecnologa que se desee implementar en la nueva versin, es mnima y no requerir grandes modificaciones al diseo original de la aplicacin. Como resultado de lo anterior, las mejoras planeadas son claras y simples extensiones de la aplicacin, particularmente en lo referente a las interfaces de usuario. Se requiere tener alguna posibilidad de modificar las interfaces de usuario y/o mantener la aplicacin utilizando las herramientas de Visual FoxPro.

El paso ms significativo que se incorpora a la conversin incremental, es el uso de los Convertidores de Visual FoxPro.

Tipos de Conversin.

Cuando se abre un proyecto de 2.x en Visual FoxPro, el convertidor es ejecutado automticamente, presentando dos opciones: Conversin Funcional, que es la opcin por omisin; y la Conversin Visual. Este es el punto crucial para decidir que tipo de conversin aplicar.

Conversin Funcional.
Este tipo de conversin crear los equivalentes en Visual FoxPro, de las pantallas de 2.x, las cuales funcionarn correctamente(*), incluyendo todo del cdigo anexo. Sin embargo, esto se logra con un tipo de cdigo envolvente, para emular el comportamiento de FoxPro 2.x en cuanto a la sentencia READ. As tambin, algunas propiedades y mtodos de las formas y controles se crean exclusivamente para imitar cada aspecto del comportamiento en la ejecucin del 2.x. Esto es evidente por medio de la propiedad Window Type, la cual es creada con valor 2 (READ) o 3 (READ MODAL); estos valores no son accesibles al crear una forma nativa de Visual FoxPro. De hecho, si en una pantalla convertida se trata de modificar el valor de esta propiedad, Visual FoxPro emite un mensaje advirtiendo que Algunos Snippets de cdigo pueden no funcionar sin modificacin. Adicionalmente, la estructura de objetos contenedores dentro de la forma es ms compleja, dado que se compone de la siguiente manera: FormSet -> Form -> PageFrame -> Frame -> Objeto.Propiedad Los niveles jerrquicos adicionales los compone el PageFrame y el Frame dentro de ste, dificultando las referencias a las propiedades de los objetos contenidos en la forma. Para modificar un objeto en una forma convertida de esta manera, primero se debe activar el frame, despus editarlo y posteriormente editar el objeto en cuestin. Segn diversa documentacin, el resultado de la conversin de este tipo, es una aplicacin que funciona, comprometiendo un tanto el rendimiento, sobre todo en el cargado de la forma y su despliegue, lo cual puede no ser significativo; lo que s es significativo, es que puede ser una aplicacin difcil de entender y mantener, debido a los atajos que se dan en el cdigo.
(*)

Sin embargo, en las pruebas realizadas por nosotros, al convertir de manera funcional las pantallas de 2.6, el cdigo que resida en la seccin Clean Up & Procedures, que es donde normalmente se colocan las funciones y procedimientos de usuario, fueron omitidas en la forma convertida, resultando en la prdida de cdigo. Para evitar esta situacin, se deben definir nuevos mtodos con los nombres de los procedimientos y funciones originales en cada forma de las aplicaciones y modificar la invocacin a dichos procedimientos, con las instrucciones apropiadas de llamado a mtodos, lo que conlleva un trabajo adicional, adems de la alteracin mayor al cdigo. Cabe mencionar que este tipo de conversin se realiza con el simple hecho de abrir el proyecto de 2.x en Visual FoxPro.

Conversin Visual.
La conversin visual, es la alternativa a la situacin anterior. Esta slo provee los equivalentes visuales de las pantallas de 2.x, con todo el cdigo extrado de ellas. El cdigo es colocado en un archivo con la extensin .PRG y el mismo nombre de la forma. Ah es donde se decide realizar las modificaciones equivalentes a la recin creada forma de Visual FoxPro. Esto se realiza parcialmente cortando y pegando el antiguo cdigo de 2.x a los eventos y mtodos apropiados, y parcialmente escribiendo nuevo cdigo o manipulando las propiedades nicas de las formas de Visual FoxPro para proveer la funcionalidad equivalente al antiguo cdigo. La idea detrs de esta conversin y realizar un trabajo manual extra, es convertir una aplicacin de 2.x en una aplicacin pura de Visual FoxPro. Las formas convertidas de esta manera no emulan el comportamiento de 2.x, sino que son llevadas a la funcionalidad de Visual FoxPro. La propiedad Window Type es asignada a alguna de las dos opciones manejadas nativamente por Visual FoxPro. La estructura de los objetos contenedores es simplificada, al no manejarse el nivel de Page Frame y Frame. La edicin de los objetos en la forma, es directa. La referencia en el cdigo es simple: FormSet -> Form -> Objeto.Propiedad.

Estrategia de Conversin.

Nuestra estrategia de conversin es una combinacin de tcnicas que fueron diseadas desde la aparicin de Visual FoxPro versin 3, y est basada en el esquema de conversin incremental, por medio de la conversin visual, lo cual permite conservar la funcionalidad de la aplicacin 2.x, respetando al mximo el cdigo original, en un ambiente real de Visual FoxPro y sentando bases slidas para continuar el mantenimiento y desarrollo con todas las capacidades de la nueva plataforma. Esta estrategia trata de conjuntar lo mejor de cada esquema extrayendo slo las ventajas de cada una de ellas. El diagrama general de nuestra estrategia es el que se muestra a continuacin.
.

Screen Set FoxPro 2.6 Snippet Code Snippet Code Snippet Code Cdigo Compilable .PRG FP 2.6 Revisin y Adaptacin de Cdigo a VFP

Reunificacin de Cdigo

Screen Set FoxPro 2.6

Cdigo Compilable .SPR


Link

Conversin Visual FoxPro

FormSet

Ajustes Visuales

Texto con Cdigo

Reubicacin de Cdigo de Eventos


.

Consiste en lo siguiente: Reunificacin del cdigo de los Snippets en un programa compilable en FoxPro 2.6 y separacin del Screen Set. Esta es la parte de la visin minimalista, en la que se trata de respetar al mximo el cdigo existente, con el fin de no desestabilizar las aplicaciones al alterar lo menos posible las instrucciones fundamentales de los programas.

Actualmente, las pantallas de FoxPro 2.6 se conforman de diversos mini-programas (Snippets), que estn dentro de la definicin de la propia pantalla y sus objetos, y estn almacenados en tablas con formato DBF y extensiones .SCX y .SCT. El generador de cdigo (GENSCRN) retoma todos los snippets y genera un archivo de programa con la extensin .SPR, el cual contiene tanto el cdigo de inicializacin, la definicin de las ventanas, el cdigo de los eventos, el cdigo de los procedimientos y funciones de usuario y la sentencia READ, que activa la(s) pantalla(s). Todo lo que ocurre en el programa, ocurre dentro de este .SPR gracias al Foundation Read. Cuando ocurre algn error en la ejecucin, FoxPro 2.x trata de ayudar mostrando una pantalla de edicin con el cdigo del .SPR donde ocurri el error. No es posible realizar ningn tipo de correccin en el .SPR, dado que al modificar nuevamente la pantalla (.SCX), se generara un nuevo .SPR que sobre-escribiria las modificaciones hechas anteriormente. Lo que se hace, es abrir el Screen Set, ubicar el objeto donde ocurri el error, abrir el snippet correspondiente, corregirlo, y generar de nuevo el .SPR para probarlo. Para solventar esta desventaja en el proceso de mantenimiento de la aplicacin, lo primero que hacemos es separar el cdigo referente a la definicin de la ventana (que es donde mayores cambios se van a realizar en la conversin a VFP) y reunificamos los snippets en un solo programa, el cual se encarga de invocar a la pantalla, y vuelve a tomar el control del resto de la ejecucin. Esquema Actual 2.x
Programa.SPR
Cdigo de Inicializacin Definicin de V entanas y A ctivacin REA D Codigo de Eventos y Cdigo de Usuario

Primer Paso de la Conversin. (En 2.x)


Programa.PRG
Cdigo de Inicializacin Definicin de V entanas y A ctivacin REA D

Programa.SPR

LLA MA DO A PA NTA LLA

Codigo de Eventos y Cdigo de Usuario

Para realizar este paso contamos con una herramienta Des-Snippetizadora para automatizar este proceso, probada al 100%. Esta estructura es la ms parecida al manejo de las formas en Visual FoxPro, desde 2.x. Despus de esto, procedemos al segundo paso de la conversin: Revisin y adaptacin del cdigo del programa (.PRG) a Visual FoxPro: Una vez generada la pantalla Des-Snippetizada y su programa correspondiente, realizamos las siguientes adaptaciones en el .PRG: 1. Reemplazo de instrucciones obsoletas, tales como: SHOW GETS, SHOW GET var ENABLED/DISABLED, CUROBJ(), VARREAD(), OBJNUM(), CLEAR READ, etc.

2. Reemplazo de asignacin de variables por las propiedades respectivas de los objetos convertidos. Estas adaptaciones estimamos que significan, cuando menos, el 70% del esfuerzo de la conversin y lo hemos automatizado con una herramienta propia, desarrollada de acuerdo al estilo de programacin de sus aplicaciones, segn las muestras que nos proporcionaron, la cual analiza el cdigo, detecta donde debe realizar los cambios, comenta la instruccin original, realiza el cambio requerido y documenta el cambio realizado. Posteriormente, procedemos a cambios menores que se realizan de manera manual: 3. Cambio de instrucciones de ODBC-SQL Pass-Through, 4. Revisin y correccin de variables, procedimientos y funciones con nombres excedentes a diez caracteres. 5. Modificaciones y adecuaciones a las llamadas a APIs de Windows y FoxPro. (Orden de parmetros de MESSAGEBOX, etc.) 6. Revisin y reubicacin de definiciones de variables y parmetros, para asegurar el mbito pblico o privado, y declaraciones de arreglos y procedimientos externos. 7. Revisin y reemplazo de variables consideradas como palabras reservadas en Visual FoxPro. 8. Revisin y adaptacin de macro-sustituciones. 9. Revisin y ajustes de directivas de compilacin (#SECTION, #NAME, etc.) no procesables en Visual FoxPro. El resultado de este paso es un programa con extensin .SPR con instrucciones de Visual FoxPro, lo cual evita modificar los diversos llamados a las pantallas originales de 2.x, con DO pantalla.SPR. Paralelamente a la revisin del cdigo llevamos a cabo la: Conversin de ScreenSets de 2.6 a FormSets Puros de Visual FoxPro. Esto significa simplemente ejecutar el convertidor visual de VFP, el cual produce una forma nativa de VFP y un archivo de texto con el cdigo de los eventos de la forma, extremadamente reducido, gracias a la des-snippetizacin ya que el cdigo efectivo se mueve al .PRG y slo quedan en el mencionado archivo de texto, los llamados a las funciones que residen en el .PRG. Despus de esto se procede a la: Reintegracin del cdigo de los eventos a los objetos de las formas. La conversin visual que se realiza, genera un archivo separado con el cdigo de los eventos de la forma y objetos, los cuales hay que ubicar manualmente en los eventos correspondientes de la forma recin creada. Esta reubicacin de cdigo, tambin la tenemos automatizada con una herramienta propia, la cual abre la tabla con formato DBF de la nueva forma generada, lee el archivo de texto, interpreta el nombre del objeto y evento al que se refiere el cdigo, lo ubica en el mtodo correspondiente en la tabla y al finalizar COMPILA la forma para asegurar que no se integraron errores.

Una vez realizado lo anterior se sigue con la: Reubicacin los objetos refrescados y elementos externos. Este paso, se refiere bsicamente a mover una seccin de cdigo que genera el convertidor, al mtodo Refresh de la forma debido a aquellos datos afectables por la instruccin SHOW GETS de 2.x, y a la declaracin de arreglos y procedimientos externos que pudieran existir para evitar avisos de alerta en la compilacin del proyecto. El ltimo paso de la conversin, es el maquillaje de la forma: Ajustes visuales a las formas en las caractersticas de fuentes. Lo que se pretende con este paso, es respetar el diseo original de la interface y regresarle los atributos a los textos en cuanto a su apariencia: Tipo de letra negrita, cursiva, etc., los cuales se pierden en cualquier conversin. Dado que esta actividad es tediosa y consumidora de tiempo, tambin la hemos automatizado con otra herramienta propia, la cual lee la tabla de la pantalla original de 2.x, localiza por nombre los objetos en la tabla de la nueva forma y ajusta los atributos mencionados con los valores originales. Esta herramienta resuelve aproximadamente el 80% de la cuestin cosmtica de la forma; el 20% restante se ajusta manualmente y se refiere bsicamente al reacomodo de los Combo Box que generalmente se convierten con un tamao de alto ligeramente mayor al del pop-up original.

10

Resultados de la Conversin.

Al final del proceso de la conversin queda un programa con extensin SPR que contiene todo el cdigo original, con las adaptaciones necesarias al los aspectos Visuales y los procedimientos y funciones de usuario inalteradas. Este SPR es quien controlar la invocacin de la nueva forma de Visual FoxPro, y sta a su vez tiene en sus mtodos y eventos, los llamados a los procedimientos del SPR que los manejan. En forma grfica el resultado de la conversin, es el siguiente:
Programa.SPR
Cdigo de Inicializacin Invocacin a la Forma VFP DO FORM LINK READ EVENTS Cdigo de Eventos y Mtodos de la Forma Cdigo de Procedimientos y Funciones de Usuario

Forma.SCX

Forma V isual FoxPro

Link

El Programa y la Forma Tienen el Mismo Nombre.

Las ventajas del tipo de conversin propuesta, abarcan varios aspectos, entre ellas destacan las siguientes: Aceleracin del proceso de conversin. Obtencin de aplicaciones puras en Visual FoxPro. Introduccin progresiva e incremental al ambiente de Visual FoxPro. Garantiza el respeto mximo al cdigo original. Facilidad para realizar la revisin y adaptacin del cdigo. Facilidad al acceder al cdigo para correcciones, modificaciones y mantenimiento. Aprovechamiento las herramientas de diseo visual de la nueva herramienta. Respeto mximo a la lgica de ejecucin original. Optimizacin de recursos asignados a la conversin. Conversin transparente para el usuario final al respetar la funcionalidad y apariencia de los sistemas. Aprovechamiento de la plataforma de 32 bits. Integracin natural de nuevas funciones en la nueva plataforma.

11

Plan de Acciones a Seguir.

La conversin de los sistemas de la plataforma de FoxPro a Visual FoxPro, comprender los siguientes pasos: Curso Introductorio a Visual FoxPro y sus diferencias con FoxPro 2.6, con experiencia en FoxPro 2.6. Relacin de los elementos de cada sistema: 1. 2. 3. 4. 5. 6. 7. 8. Proyectos que los componen Menes Libreras comunes Identificacin de pantallas principales Dilogos complementarios Barras de herramientas Programas Reportes.

Reunificacin del cdigo de los Snippets en un programa compilable en FoxPro 2.6 y separacin del Screen Set. Revisin y adaptacin del cdigo de pantallas, programas y libreras comunes de FoxPro 2.6 a Visual FoxPro: 10. Cambio de instrucciones de ODBC-SQL Pass-Through,

11. Reemplazo de instrucciones obsoletas: SHOW GETS, SHOW GET var ENABLED/DISABLED, CUROBJ(), VARREAD(), OBJNUM(), CLEAR READ, etc. 12. Reemplazo de asignacin de variables por las propiedades respectivas de los objetos convertidos. 13. Revisin y correccin de variables, procedimientos y funciones con nombres excedentes a diez caracteres. 14. Modificaciones y adecuaciones a las llamadas a APIs de Windows y FoxPro. (Orden de parmetros de MESSAGEBOX, etc.) 15. Revisin y reubicacin de definiciones de variables y parmetros, para asegurar el mbito pblico o privado, y declaraciones de arreglos y procedimientos externos. 16. Implementacin de algunas funciones de usuario para soportar la lgica de los programas. (READ, READ CYCLE, READ WITH, etc.) 17. Revisin y reemplazo de variables consideradas como palabras reservadas en Visual FoxPro. 18. 19. Revisin y adaptacin de macro-sustituciones. Revisin y ajustes de directivas de compilacin. (#SECTION, #NAME, etc.)

Conversin de ScreenSets de 2.6 a FormSets de Visual FoxPro y reintegracin del cdigo de los eventos a los objetos de las formas; reubicacin los objetos refrescados y elementos externos.

12

Ajustes visuales a las formas: caractersticas de fuentes y posicin de objetos. Conversin de reportes a Visual FoxPro. Rearmado de Proyectos y compilacin. Creacin de DataSources de ODBC de 32 bits a las bases de datos. Diseo de Pruebas. Pruebas paralelas con sistemas originales. Correcciones y Ajustes. Liberacin.

Ventajas de la Conversin.

Las ventajas del tipo de conversin propuesta, abarcan varios aspectos, entre ellas destacan las siguientes: Aceleracin del proceso de conversin. Introduccin progresiva al ambiente de Visual FoxPro. Garantiza el respeto mximo al cdigo original. Facilidad para realizar la revisin y adaptacin del cdigo. Facilidad al accesar el cdigo para correcciones, modificaciones y mantenimiento. Aprovechamiento las herramientas de diseo visual de la nueva herramienta. Respeto mximo a la lgica de ejecucin original. Optimizacin de recursos asignados a la conversin. Conversin transparente para el usuario final al respetar la funcionalidad de los sistemas. Aprovechamiento de la plataforma de 32 bits.

13

Potrebbero piacerti anche