Anda di halaman 1dari 27

Migrando VFP a .

NET
Tips y Sugerencias
Experiencia de una migracin en la
Aduana de Costa Rica
Enrique Almeida Concepto
ealmeida@concepto.com.uy
Gustavo Morales Aduana de Costa Rica
moralescg@hacienda.go.cr

Migrando VFP a .NET Tips y Sugerencias

El proyecto

Adaptacin del sistema a la realidad de Costa


Rica.

Transferencia tecnolgica de Concepto al grupo


de desarrollo de la Aduana de Costa Rica.

Migracin de GeneXus 7.5 generando Visual


FoxPro (Windows) y C/SQL (Web y
WebServices) a GeneXus 8.0 y full .NET

400 Tablas y 3200 objetos

Migrando VFP a .NET Tips y Sugerencias

Quienes somos?.
CONCEPTO
12 aos trabajando con GeneXus.
Pertenecientes a la GxAlliance.
2001 y 2002 Mejor BetaTester
2001 Early adopter of new
tecnologies .NET
Sistema de Calidad ISO-9001:2000

Migrando VFP a .NET Tips y Sugerencias

Quienes somos?
ADUANA DE COSTA RICA.
- 650 funcionarios.
- Recaudacin
U$S 1.029.000.000
6% PBI de Costa Rica.

Migrando VFP a .NET Tips y Sugerencias

Porque .NET y Tres Capas?


Directiva de Ministerio de Hacienda
de Costa Rica.
Seguridad
Escalabilidad
Necesidad de integracin con otros
organismos
Pensado para mantener la misma
tecnologa por los prximos 5 aos.

Que tenamos?
Migrando VFP a .NET Tips y Sugerencias

Un sistema funcionando, desarrollado con:


WIN
Visual Fox Pro

WEB
C/SQL

Cliente/
Servidor

Oracle

Y nos pedan.
WIN
.NET

WEB
.NET

Tres Capas SQLServer

Cambios en
En generador WIN y WEB
La arquitectura de la aplicacin
La base de datos
Lo cual implicaba adems
La versin de GeneXus (7.5 a 8.0)
La forma de Acceso a datos (ODBC ADO.NET)

Etapas.
so
e
cc
A

os
t
da
rq
A

ct
e
t
ui

Tres
Capas

a
ur

e
as
B

de

os
t
da

GeneXus 8.0

WIN
.NET

WEB
.NET

ADO.Net

GeneXus 8.0

WIN
.NET

WEB
.NET

ADO.Net

Cliente/
SQLServer
Servidor

GeneXus 8.0

WIN
.NET

WEB
.NET

ODBC

Cliente/
SQLServer
Servidor

GeneXus 7.5

WIN
Visual Fox Pro

WEB
.NET

ODBC

Cliente/
SQLServer
Servidor

GeneXus 7.5

WIN
Visual Fox Pro

WEB
C/SQL

ODBC

Cliente/
Servidor

SQLServer

Oracle

Migrando VFP a .NET Tips y Sugerencias

Sugerencia I:
Planificar la migracin!!
Etapas
Pasos simples y comprobables
Si se presenta un problema, siempre
es fcil detectarlo y compararlo con
algo que funcione bien.

Recursos
Definir los recursos necesarios para
cada etapa

Migrando VFP a .NET Tips y Sugerencias

Sugerencia II:
Grupo de trabajo focalizado en la
migracin
Equipo dedicado a la migracin

Se adelanta a los problemas


Evala nuevas versiones
Encontrar soluciones a problemas tipo
Comunicar soluciones al resto del grupo de
trabajo

Resto del equipo dedicado a programar


nuevas funcionalidades.

Migrando VFP a .NET Tips y Sugerencias

Sugerencia III:
Estudiar la plataforma destino
Si vamos a generar C#, que
alguien en el grupo sepa
programar en C#.
Armar un laboratorio con la
plataforma destino para poder
hacer pruebas y poder aprender

Migrando VFP a .NET Tips y Sugerencias

Sugerencia IV: Borrar todo lo


que no sea necesario
Eliminar todo lo que no se use!!
Buscar todos los objetos no
alcanzables desde mains y
borrarlos.

Migrando VFP a .NET Tips y Sugerencias

TIP I: Como consigo el conjunto


de objetos usados en mi
aplicacin?
Distribuir:
Todas las transacciones y Data Views
Todos los mains usados (Facil en 8.0)
Todos los objetos referenciados por
esos main (ADD CALLED)
Objetos invocados en forma dinmica

Migrando VFP a .NET Tips y Sugerencias

Que me puede ocasionar


problemas?
Estudiar la KB buscando cosas raras
Programas Externos y Stored Procedures
Comandos SQL, JAVA, DBASE,
CSHARP, VB
Funciones NO STANDARD
DataViews con otras bases de datos
Imgenes/Archivos ledos
Componentes ActiveX, DLL, etc.
Calls entre objetos que no son del mismo
generador/environment.
Tablas DBF

Migrando VFP a .NET Tips y Sugerencias

Programas Externos
Racionalizar su uso
Unificar lo que hacen cosas parecidas
Ver si no hay alguna funcin de
GeneXus para hacerlo.

Reprogramarlos en el nuevo
lenguaje (C#)
Probarlos en el nuevo lenguaje y
plataformas

TIP II Como ver programas


externos usados en mi KB?

Migrando VFP a .NET Tips y Sugerencias

Programas externos
En la migracin a C# tuvimos que
agregar parmetros utilizado por
GeneXus pero no por la aplicacin.
Versiones diferentes para
Windows/WEB, por los parmetros.

Migrando VFP a .NET Tips y Sugerencias

Stored Procedures
En ADO.NET la llamada a SP hay
que hacerla con el nombre de
variable del parmetro.
Cambiar la programacin.

Migrando VFP a .NET Tips y Sugerencias

Comandos DBASE
Buscar todos los objetos que tienen
DBASE en el cdigo GeneXus.
Por ejemplo:

DBASE wait window 'Presione <ESC> para cancelar' TIMEOUT 5


if lastkey()=27
&SALGO='S'
return
Endif

Tratar de evitar esta forma de


programar.
Sustituir DBASE por CSHARP, y
programar cdigo equivalente

TIP III: Que objetos usan el


comando DBASE?

Migrando VFP a .NET Tips y Sugerencias

Sugerencia V:
Usar los archivos XPZ
(Distribute)
Estudiar el formato de los archivos XML
de distribucin (dentro del XPZ)
Herramienta de Search and Replace
con expresiones regulares
Grep
(SR) www.funduc.com.

Usarlas para buscar que objetos que


contienen un string determinado

Migrando VFP a .NET Tips y Sugerencias

Funciones
Conocer la lista de funciones soportadas
en la plataforma destino.
Detectar cuales son las funciones no
soportadas o que cambiaron su
significado en la plataforma destino.
Buscar funciones NO STANDARD, o no
nativas de GeneXus, para buscarle una
alternativa.

Migrando VFP a .NET Tips y Sugerencias

TIP IV: Como encontrar que objetos


usan funciones no standard?
Consolidarlo en una KB vaca, con la propiedad
Function para que no acepte funciones no
standard

DISEO

PROTOTIPO

Revisar todo lo que da errores y warnings


Arreglarlo

Migrando VFP a .NET Tips y Sugerencias

Sugerencia VI: Estudiar las


Releases Notes de los Upgrades
Buscar errores corregidos
Funcionalidades nuevas
Cambios en

Funciones
Propiedades
Comandos
Configuracin

Migrando VFP a .NET Tips y Sugerencias

Controles ActiveX
No estn soportados en el
generador .NET
Reprogramarlos con controles
nativos.
Mantener algunos programas en
Visual FoxPro.

Migrando VFP a .NET Tips y Sugerencias

Proceso propuesto
Borrar todo lo que no se necesite migrar
Distribuir modelo original.
Consolidar en una KB vaca y arreglar
problemas
Especificar y arreglar problemas
Generar, Compilar y arreglar problemas
Comparar ejecucin con modelo anterior y
arreglar diferencias
Documentar errores y reportarlos

Migrando VFP a .NET Tips y Sugerencias

Conclusiones
Migrar es inevitable
Pero
Da trabajo
Hay que planificar
Consume recursos

Posibilita la incorporacin de nuevas


funcionalidades

Migrando VFP a .NET Tips y Sugerencias

Migrando VFP a .NET


Tips y Sugerencias
Preguntas?
Enrique Almeida Concepto
ealmeida@concepto.com.uy
Gustavo Morales Aduana de Costa Rica
Moralescg@hacienda.go.cr