Crónica de una migración con instalación complicada.
Desde hace unos meses, estamos en el proceso de una migración de una KB grande (más de 10.000 objetos y más de 1000 tablas) de GeneXus Evolution 3 a Genexus 16 Upgrade 3.
La migración en sí, salio todo muy bien. Hago un respaso de algunos puntos destacados de la misma.
Conversión de Evo3 a GX16.
La conversión, generación, compilación de la KB salió todo sin problemas. Aparecieron varios Warnings nuevos por causa de nuevas validaciones que se agregaron en GX16. Pudimos eliminar todos los warnings.
Es la primera vez que pudimos terminar un Build all de esta KB sin Warnings, pues antes siempre habia algunos que no se podian evitar, por no estar codificados.
Algunos warnings que Genexus hace, los ignoramos, pues nos nos interesan y los manejamos de otra forma (por ejemplo, el manejo de indices de las tablas).
Comparación de Navegaciones.
La comparación de navegaciones que hice con KBDoctor, de la versión vieja y la nueva, no dio diferencias importantes. Las diferencias eran fundamentalmente nuevas optimizaciones en GX16.
Por ejemplo el código :
for each
where <CONDICION>
...
Att = &Var
...
endfor
antes generaba un cursor y un update en la base y ahora en muchas mas oportunidades se optimiza para generar solo una sentencia.
Comparación de WSDL.
Esta aplicación publica varios web services SOAP para ser consumidos en forma externa. Teníamos que lograr que los WSDL fueran compatibles entre la version vieja y la nueva, para no producir interrupciones en el servicio y que los usuarios no tuvieran que reimportar la definición de los web services.
Si bien los WSDL no son iguales, en la mayoría de los casos no producían problemas.
Tuvimos problemas en la plataforma utilizada por el gobierno electrónico, pues cualquier diferencia (aun en la sección de documentación) invalida las definición previas y esto nos produjo algunos errores, que eran esperados. Los WSDL viejos decían <document> y los nuevos <documentation>
Performance
No encontramos problemas de performance. En general los programas eran un poquito mas rápidos.
User Interface
La mayoría de los problemas en los programas con pantallas se dieron en las transacciones web. Mas cosas ahora se ejecutan en javascript, con lo cual algunos usuarios se quejaban de que cada tanto la pantalla les queda bloqueada (queda gris) y no acepta ninguna entrada. La "solución" es hacer un refresh de la pantalla y con eso pueden volver a trabajar. Es algo que vamos a estudiar con mas detalle, pero si bien es fácil de reproducir, las veces que lo veo es siempre diferente.
También tuvimos que instalar una version mas vieja de la biblioteca gxui, pues con la version mas nueva nos daba algunos problemas. Cuando dejamos la misma que teníamos antes, funcionó correctamente.
Nos dio error el UC igEnvironment, pues la version no era compatible con GX16. Alcanzo con instalar la nueva version del UC que esta disponible en el Marketplace.
UC Uploadify
Tuvimos que volver a cargar las dll que usan ese control. Tenemos planes de cambiarlo por UC FileUpload en las próximas semanas, pues el control viejo utiliza Flash y cada vez es mas difícil usarlo en los navegadores modernos.
(Continua en Crónica de una migración con instalación complicada II)
La migración en sí, salio todo muy bien. Hago un respaso de algunos puntos destacados de la misma.
Conversión de Evo3 a GX16.
La conversión, generación, compilación de la KB salió todo sin problemas. Aparecieron varios Warnings nuevos por causa de nuevas validaciones que se agregaron en GX16. Pudimos eliminar todos los warnings.
Es la primera vez que pudimos terminar un Build all de esta KB sin Warnings, pues antes siempre habia algunos que no se podian evitar, por no estar codificados.
Algunos warnings que Genexus hace, los ignoramos, pues nos nos interesan y los manejamos de otra forma (por ejemplo, el manejo de indices de las tablas).
Comparación de Navegaciones.
La comparación de navegaciones que hice con KBDoctor, de la versión vieja y la nueva, no dio diferencias importantes. Las diferencias eran fundamentalmente nuevas optimizaciones en GX16.
Por ejemplo el código :
for each
where <CONDICION>
...
Att = &Var
...
endfor
antes generaba un cursor y un update en la base y ahora en muchas mas oportunidades se optimiza para generar solo una sentencia.
Comparación de WSDL.
Esta aplicación publica varios web services SOAP para ser consumidos en forma externa. Teníamos que lograr que los WSDL fueran compatibles entre la version vieja y la nueva, para no producir interrupciones en el servicio y que los usuarios no tuvieran que reimportar la definición de los web services.
Si bien los WSDL no son iguales, en la mayoría de los casos no producían problemas.
Tuvimos problemas en la plataforma utilizada por el gobierno electrónico, pues cualquier diferencia (aun en la sección de documentación) invalida las definición previas y esto nos produjo algunos errores, que eran esperados. Los WSDL viejos decían <document> y los nuevos <documentation>
Performance
No encontramos problemas de performance. En general los programas eran un poquito mas rápidos.
User Interface
La mayoría de los problemas en los programas con pantallas se dieron en las transacciones web. Mas cosas ahora se ejecutan en javascript, con lo cual algunos usuarios se quejaban de que cada tanto la pantalla les queda bloqueada (queda gris) y no acepta ninguna entrada. La "solución" es hacer un refresh de la pantalla y con eso pueden volver a trabajar. Es algo que vamos a estudiar con mas detalle, pero si bien es fácil de reproducir, las veces que lo veo es siempre diferente.
También tuvimos que instalar una version mas vieja de la biblioteca gxui, pues con la version mas nueva nos daba algunos problemas. Cuando dejamos la misma que teníamos antes, funcionó correctamente.
Errores encontrados.
UC igEnvironmentNos dio error el UC igEnvironment, pues la version no era compatible con GX16. Alcanzo con instalar la nueva version del UC que esta disponible en el Marketplace.
UC Uploadify
Tuvimos que volver a cargar las dll que usan ese control. Tenemos planes de cambiarlo por UC FileUpload en las próximas semanas, pues el control viejo utiliza Flash y cada vez es mas difícil usarlo en los navegadores modernos.
(Continua en Crónica de una migración con instalación complicada II)
Importante saber esto antes de arrancar con una migracion!
ResponderBorrar