migrando vfp a.net tips y sugerencias experiencia de una migración en la aduana de costa rica...
TRANSCRIPT
Migrando VFP a .NETMigrando VFP a .NETTips y SugerenciasTips y Sugerencias
Experiencia de una migración en laAduana de Costa Rica
Enrique Almeida – [email protected]
Gustavo Morales – Aduana de Costa Rica [email protected]
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
El proyectoEl proyecto
• Adaptación del sistema a la realidad de Costa Rica.
• Transferencia tecnológica de Concepto al grupo de desarrollo de la Aduana de Costa Rica.
• Migración 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
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Quienes somos?.Quienes somos?.
CONCEPTO– 12 años 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
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Quienes somos?Quienes somos?
ADUANA DE COSTA RICA.- 650 funcionarios.
- Recaudación U$S 1.029.000.000 6% PBI de Costa Rica.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Porque .NET y Tres Capas?Porque .NET y Tres Capas?
• Directiva de Ministerio de Hacienda de Costa Rica. – Seguridad– Escalabilidad– Necesidad de integración con otros
organismos– Pensado para mantener la misma
tecnología por los próximos 5 años.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
sQue teníamos?Que teníamos?
WIN Visual Fox Pro
WEB C/SQL
Oracle
Un sistema funcionando, desarrollado con:
Cambios en• En generador WIN y WEB• La arquitectura de la aplicación • La base de datos
Lo cual implicaba además• La versión de GeneXus (7.5 a 8.0)• La forma de Acceso a datos (ODBC– ADO.NET)
Cliente/Servidor
WIN .NET
WEB .NET
Tres Capas
Y nos pedían….
SQLServer
Etapas.Etapas.
3 GeneXus 8.0WIN .NET
WEB .NET
ADO.Net SQLServerCliente/Servidor
2 GeneXus 8.0WIN
.NET WEB .NET
ODBC SQLServerCliente/Servidor
1 GeneXus 7.5WIN
Visual Fox Pro WEB .NET
ODBC SQLServerCliente/Servidor
0 GeneXus 7.5WIN
Visual Fox Pro WEB C/SQL
ODBC OracleCliente/Servidor
4 GeneXus 8.0WIN .NET
WEB .NET
ADO.Net SQLServerTres
Capas
Acces
o a
datos
Arquite
ctura
Base
de dat
os
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Sugerencia Sugerencia I:I:Planificar la migración!!Planificar la migración!!
• Etapas– Pasos simples y comprobables– Si se presenta un problema, siempre
es fácil detectarlo y compararlo con algo que funcione bien.
• Recursos– Definir los recursos necesarios para
cada etapa
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Sugerencia II:Sugerencia II:Grupo de trabajo focalizado en Grupo de trabajo focalizado en
la migraciónla migración
• Equipo dedicado a la migración– Se adelanta a los problemas– Evalúa nuevas versiones– Encontrar soluciones a problemas “tipo” – Comunicar soluciones al resto del grupo de
trabajo
• Resto del equipo dedicado a programar nuevas funcionalidades.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Sugerencia III: Sugerencia III: Estudiar la plataforma destinoEstudiar 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
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Sugerencia IV: Borrar todo lo Sugerencia IV: Borrar todo lo que no sea necesarioque no sea necesario
• Eliminar todo lo que no se use!!
• Buscar todos los objetos no alcanzables desde mains y borrarlos.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
TIP I: Como consigo el conjunto TIP I: Como consigo el conjunto de objetos usados en mi de objetos usados en mi
aplicación?aplicación?
• 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 dinámica
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Que me puede ocasionar Que me puede ocasionar problemas?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– Imágenes/Archivos leídos– Componentes ActiveX, DLL, etc.– Calls entre objetos que no son del mismo
generador/environment.– Tablas DBF
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Programas ExternosProgramas Externos
• Racionalizar su uso– Unificar lo que hacen cosas parecidas – Ver si no hay alguna función de
GeneXus para hacerlo.
• Reprogramarlos en el nuevo lenguaje (C#)
• Probarlos en el nuevo lenguaje y plataformas
TIP II – Como ver programas TIP II – Como ver programas externos usados en mi KB?externos usados en mi KB?
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Programas externosProgramas externos
• En la migración a C# tuvimos que agregar parámetros utilizado por GeneXus pero no por la aplicación.
• Versiones diferentes para Windows/WEB, por los parámetros.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Stored ProceduresStored Procedures
• En ADO.NET la llamada a SP hay que hacerla con el nombre de variable del parámetro.
• Cambiar la programación.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Comandos “DBASE”Comandos “DBASE”
• Buscar todos los objetos que tienen DBASE en el código 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 código equivalente
TIP III: Que objetos usan el TIP III: Que objetos usan el comando DBASE?comando DBASE?
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Sugerencia V:Sugerencia V:Usar los archivos XPZ Usar los archivos XPZ
(Distribute)(Distribute)
• Estudiar el formato de los archivos XML de distribución (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
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Funciones 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.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
sTIP IV: Como encontrar que objetos TIP IV: Como encontrar que objetos
usan funciones no standard?usan funciones no standard?
• Consolidarlo en una KB vacía, con la propiedad Function para que no acepte funciones no standard
DISEÑO PROTOTIPO
• Revisar todo lo que da errores y warnings • Arreglarlo
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Sugerencia VI: Estudiar las Sugerencia VI: Estudiar las Releases Notes de los UpgradesReleases Notes de los Upgrades
• Buscar errores corregidos
• Funcionalidades nuevas
• Cambios en – Funciones– Propiedades– Comandos– Configuración
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Controles ActiveXControles ActiveX
• No están soportados en el generador .NET
• Reprogramarlos con controles nativos.
• Mantener algunos programas en Visual FoxPro.
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
Proceso propuestoProceso propuesto
• Borrar todo lo que no se necesite migrar• Distribuir modelo original.• Consolidar en una KB vacía y arreglar
problemas• Especificar y arreglar problemas• Generar, Compilar y arreglar problemas• Comparar ejecución con modelo anterior y
arreglar diferencias• Documentar errores y reportarlos
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s
ConclusionesConclusiones
• Migrar es inevitable
• Pero……– Da trabajo– Hay que planificar– Consume recursos
• Posibilita la incorporación de nuevas funcionalidades
Mig
ran
do V
FP
a .
NET T
ips y
Su
gere
nci a
sM
igra
nd
o V
FP
a .
NET T
ips y
Su
gere
ncia
s Migrando VFP a .NETMigrando VFP a .NETTips y SugerenciasTips y Sugerencias
¿Preguntas?
Enrique Almeida – [email protected]
Gustavo Morales – Aduana de Costa [email protected]