SlideShare a Scribd company logo
1 of 28
Download to read offline
InovaBizGeneXus
Buenas prácticas en el ciclo de desarrollo
info@gxpert.cl
Buenas prácticas generales
COPYRIGHT © InovaBiz 2016 Diapositiva N°3
Nombre de tabla a recorrer
 A partir de la versión Evolution 3, la claúsula defined by entra en desuso y se sustituye
por anteponer el nombre de la transacción o subnivel para indicar a la herramienta qué
tabla base navegar. La declaración de la sentencia order se debe hacer después del
nombre de la transacción.
COPYRIGHT © InovaBiz 2016 Diapositiva N°4
Uso de dominios
 En general, se deben usar dominios para definir los tipos de datos de los atributos, en
especial evitar el uso de constantes
COPYRIGHT © InovaBiz 2016 Diapositiva N°5
Backup de la KB antes de cambios mayores
Freeze
•Adecuado
antes de aplicar
un cambio
“riesgoso”
pero que
impacta pocos
objetos.
•Es el método
más rápido
Exportación xpz
completo
•Ventajas:
método nativo,
independiente
de la versión
del SQL Server
destino
•Depende el
caso, se debe
incluir las
propiedades de
la KB
Copia del MDF
•Tiene la ventaja
que preserva
las versiones de
la KB y el
“History” de
los objetos.
•Es sensible a la
versión de SQL
Server destino.
COPYRIGHT © InovaBiz 2016 Diapositiva N°6
Backup de la KB antes de cambios mayores
Export “completo”
Copia del MDF
Freeze
COPYRIGHT © InovaBiz 2016 Diapositiva N°7
Tips de modelado: vincular entidades
Relaciones 1 – N “entidades fuertes”
COPYRIGHT © InovaBiz 2016 Diapositiva N°8
Tips de modelado: vincular entidades
Relaciones 1 – N “entidades débiles”
COPYRIGHT © InovaBiz 2016 Diapositiva N°9
Tips de modelado: vincular entidades
Relaciones 1 – 1 (igual que 1 – N pero con índice único)
COPYRIGHT © InovaBiz 2016 Diapositiva N°10
Tips de modelado: vincular entidades
Relaciones N – N (4 formas de modelarlas)
COPYRIGHT © InovaBiz 2016 Diapositiva N°11
Tips de modelado: herencia
COPYRIGHT © InovaBiz 2016 Diapositiva N°12
Tips de modelado: herencia
COPYRIGHT © InovaBiz 2016 Diapositiva N°13
Tips de modelado: herencia
COPYRIGHT © InovaBiz 2016 Diapositiva N°14
Tips de modelado: Composición
Usar composición cuando:
• No necesito que los ID coincidan entre las tablas padre-hijo.
• Necesito acceder desde el hijo a todos los atributos del padre.
COPYRIGHT © InovaBiz 2016 Diapositiva N°15
Atributos dinámicos: OAV Pattern - modelado
COPYRIGHT © InovaBiz 2016 Diapositiva N°16
Atributos dinámicos: OAV Pattern - visualización
COPYRIGHT © InovaBiz 2016 Diapositiva N°17
Parámetros dinámicos
 En ocasiones, debemos comenzar la programación aún cuando las especificaciones de los servicios
están en revisión, y sabemos que vendrán cambios. Para aislarnos, podemos definir los parámetros
de salida (y eventualmente los de entrada) de forma dinámica.
COPYRIGHT © InovaBiz 2016 Diapositiva N°18
SQL IN – NOT IN
 En ocasiones, necesitamos generar una sentencia not in en GeneXus, dado que no existe una
implementación directa, tenemos dos alternativas
Buenas prácticas Mobile
COPYRIGHT © InovaBiz 2016 Diapositiva N°20
Precondiciones para convertir KB Web a SD
1 – PKs y niveles
•Las claves
primarias en
mobile offline es
obligatorio que
sean simples y
autonumeradas.
•Las
transacciones
deben ser de un
solo nivel.
2 – Activar GAM
•Esto nos
resolverá
muchas
funcionalidades
importantes:
remember login,
seguridad,
navegación.
3- Rediseñar flujo
•Las APPs offline
deben
repensarse
cuidadosamente
para evitar
colpasar el
mecanismo de
sincronización
automático.
COPYRIGHT © InovaBiz 2016 Diapositiva N°21
Consideraciones para desarrollo SD Offline
 Pensar siempre que existe una diferencia entre eventos del servidor y eventos que
ejecutan en el dispositivo. Los eventos que ejecutan en el dispositivo, deben ser
independientes de forma tal de poder ejecutar sin internet.
 Pensar en el dispositivo como un mero capturador de datos y marcar la mínima cantidad
de transacciones del modelo como “offline”.
 Además, de todas las transacciones “offline”, seleccionar las que se deberán sincronizar
desde y hacia el servidor. Las transacciones cuyos datos solo viajarán de “ida al
servidor”, se deben acotar con condiciones en la BD offline (una condición que no se
cumpla nunca para que nunca baje registros al dispositivo).
COPYRIGHT © InovaBiz 2016 Diapositiva N°22
Evitar tablas “numerador” en SD Offline
COPYRIGHT © InovaBiz 2016 Diapositiva N°23
Reset de la KB SD
 Muy frecuentemente, sobre todo en SD Offline, nos encontramos con que ciertos
objetos autogenerados no se compilan correctamente, en ese caso, debemos borrar
todas las carpetas de la raíz de la KB los archivos con extensión .ari. Luego hacer un
rebuild “all” y una creación de la BD Offline.
COPYRIGHT © InovaBiz 2016 Diapositiva N°24
Consideraciones para el deploy SD con GAM
 Configurar HTTP
 Cambiar clave de admin de GAM
 Borrar todos los usuarios definidos para pruebas en repositorio GAM
 Cuando la webapp es copiada al server de producción, el contenido de la carpeta
gxmetadata debe ser borrado salvo los archivos <main_object>.<plataform>.json
 Los webpanels del backend de GAM deben estar inaccesibles desde internet, solo desde
dentro de la red.
 Los webpanels GAMExampleRecoverPasswordStep1 y
GAMExampleRecoverPasswordStep2 deben ser editados para reflejar la realidad del
negocio.
COPYRIGHT © InovaBiz 2016 Diapositiva N°25
Consideraciones para el deploy SD con GAM
COPYRIGHT © InovaBiz 2016 Diapositiva N°26
Consideraciones para el deploy SD con GAM
COPYRIGHT © InovaBiz 2016 Diapositiva N°27
Impedir acceso a datos en sistemas multiempresa
¿ PREGUNTAS ?

More Related Content

What's hot

Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
abhi1112
 

What's hot (9)

Principles of microservices XP Days Ukraine
Principles of microservices   XP Days UkrainePrinciples of microservices   XP Days Ukraine
Principles of microservices XP Days Ukraine
 
Iniciando com AWS Lambda e serverless em cloud
Iniciando com AWS Lambda e serverless em cloudIniciando com AWS Lambda e serverless em cloud
Iniciando com AWS Lambda e serverless em cloud
 
Mainframe Architecture & Product Overview
Mainframe Architecture & Product OverviewMainframe Architecture & Product Overview
Mainframe Architecture & Product Overview
 
Agile documentation with Confluence and Sparx Enterprise Architect
Agile documentation with Confluence and Sparx Enterprise ArchitectAgile documentation with Confluence and Sparx Enterprise Architect
Agile documentation with Confluence and Sparx Enterprise Architect
 
Talend Introduction by TSI
Talend Introduction by TSITalend Introduction by TSI
Talend Introduction by TSI
 
Meet up roadmap cloudera 2020 - janeiro
Meet up   roadmap cloudera 2020 - janeiroMeet up   roadmap cloudera 2020 - janeiro
Meet up roadmap cloudera 2020 - janeiro
 
EMC isilon for -media-and-entertainment-sales-deck
EMC isilon for -media-and-entertainment-sales-deckEMC isilon for -media-and-entertainment-sales-deck
EMC isilon for -media-and-entertainment-sales-deck
 
Kafka with IBM Event Streams - Technical Presentation
Kafka with IBM Event Streams - Technical PresentationKafka with IBM Event Streams - Technical Presentation
Kafka with IBM Event Streams - Technical Presentation
 
Snaplogic Live: Big Data in Motion
Snaplogic Live: Big Data in MotionSnaplogic Live: Big Data in Motion
Snaplogic Live: Big Data in Motion
 

Similar to Buenas prácticas GeneXus - GXTour Chile 2016

Similar to Buenas prácticas GeneXus - GXTour Chile 2016 (20)

Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBDTips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
Tips en la instalación de Dynamics 365 Finance and Operations On Premise - LBD
 
Los mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupalLos mejores trucos y prácticas para configurar drupal
Los mejores trucos y prácticas para configurar drupal
 
avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)avanttic - webinar: Oracle Database 12c (24-03-2015)
avanttic - webinar: Oracle Database 12c (24-03-2015)
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones WebdotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
dotnetMalaga-2020 Gestión de la configuración en aplicaciones Web
 
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidadDrupal 7 para sitios de alto rendimiento y alta disponibilidad
Drupal 7 para sitios de alto rendimiento y alta disponibilidad
 
Clase_01.pdf
Clase_01.pdfClase_01.pdf
Clase_01.pdf
 
David Victoria - AWS Summit CDMX.pptx
David Victoria - AWS Summit CDMX.pptxDavid Victoria - AWS Summit CDMX.pptx
David Victoria - AWS Summit CDMX.pptx
 
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 SaturdayTips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
Tips en la instalación de Dynamics 365 FO - LBD, 365 Saturday
 
Serverless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nubeServerless: La evolucion de la arquitectura a la nube
Serverless: La evolucion de la arquitectura a la nube
 
Diseño de PBX multitenant basada en Asterisk
Diseño de PBX multitenant basada en AsteriskDiseño de PBX multitenant basada en Asterisk
Diseño de PBX multitenant basada en Asterisk
 
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivelSPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
SPS Madrid 2019 - Eleva tu aplicaciones de PowerApps a otro nivel
 
Azure Functions
Azure FunctionsAzure Functions
Azure Functions
 
Azure Functions Spanish
Azure Functions SpanishAzure Functions Spanish
Azure Functions Spanish
 
Clase sobre Optimización de Wordpress
Clase sobre Optimización de WordpressClase sobre Optimización de Wordpress
Clase sobre Optimización de Wordpress
 
Mejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernasMejores prácticas de CI / CD para construir aplicaciones modernas
Mejores prácticas de CI / CD para construir aplicaciones modernas
 
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
Impulsando la innovación con arquitectura de contenedores - MXO202 - Mexico C...
 
Integración continua en AWS con Docker, ECS y PHP7
Integración continua en AWS con Docker, ECS y PHP7Integración continua en AWS con Docker, ECS y PHP7
Integración continua en AWS con Docker, ECS y PHP7
 
Introduccion a SSIS con BIML
Introduccion a SSIS con BIMLIntroduccion a SSIS con BIML
Introduccion a SSIS con BIML
 
¿Como asegurar el exito de una Migracion a Microsoft Dynamics NAV (Navision)?
¿Como asegurar el exito de una Migracion a Microsoft Dynamics NAV (Navision)?¿Como asegurar el exito de una Migracion a Microsoft Dynamics NAV (Navision)?
¿Como asegurar el exito de una Migracion a Microsoft Dynamics NAV (Navision)?
 

Recently uploaded

TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
UPSE
 
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
UPSE
 

Recently uploaded (9)

TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdfTECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
TECNOLOGÍA DE LA INFORMACIÓN SLIDESHARE INVESTIGACION.pdf
 
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
serenidad APP presentacion.pdfes una innovadora aplicación móvil diseñada par...
 
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptxCiberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
Ciberseguridad y Seguridad Informática Franco Correa Grupo B.pptx
 
Especificación casos de uso del negocio
Especificación  casos de uso del negocioEspecificación  casos de uso del negocio
Especificación casos de uso del negocio
 
El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)El necesario mal del Legacy Code (Drupal Iberia 2024)
El necesario mal del Legacy Code (Drupal Iberia 2024)
 
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptxCIBERSEGURIDAD  Y SEGURIDAD INFORMÁTICA.pptx
CIBERSEGURIDAD Y SEGURIDAD INFORMÁTICA.pptx
 
Tipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdfTipos de datos en Microsoft Access definiciones.pdf
Tipos de datos en Microsoft Access definiciones.pdf
 
Modelado de Casos de uso del negocio
Modelado de  Casos  de  uso  del negocioModelado de  Casos  de  uso  del negocio
Modelado de Casos de uso del negocio
 
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptxTECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
TECNOLOGIA DE LA INFORMACION Y MULTIMEDIA 15 MAYO.pptx
 

Buenas prácticas GeneXus - GXTour Chile 2016

  • 1. InovaBizGeneXus Buenas prácticas en el ciclo de desarrollo info@gxpert.cl
  • 3. COPYRIGHT © InovaBiz 2016 Diapositiva N°3 Nombre de tabla a recorrer  A partir de la versión Evolution 3, la claúsula defined by entra en desuso y se sustituye por anteponer el nombre de la transacción o subnivel para indicar a la herramienta qué tabla base navegar. La declaración de la sentencia order se debe hacer después del nombre de la transacción.
  • 4. COPYRIGHT © InovaBiz 2016 Diapositiva N°4 Uso de dominios  En general, se deben usar dominios para definir los tipos de datos de los atributos, en especial evitar el uso de constantes
  • 5. COPYRIGHT © InovaBiz 2016 Diapositiva N°5 Backup de la KB antes de cambios mayores Freeze •Adecuado antes de aplicar un cambio “riesgoso” pero que impacta pocos objetos. •Es el método más rápido Exportación xpz completo •Ventajas: método nativo, independiente de la versión del SQL Server destino •Depende el caso, se debe incluir las propiedades de la KB Copia del MDF •Tiene la ventaja que preserva las versiones de la KB y el “History” de los objetos. •Es sensible a la versión de SQL Server destino.
  • 6. COPYRIGHT © InovaBiz 2016 Diapositiva N°6 Backup de la KB antes de cambios mayores Export “completo” Copia del MDF Freeze
  • 7. COPYRIGHT © InovaBiz 2016 Diapositiva N°7 Tips de modelado: vincular entidades Relaciones 1 – N “entidades fuertes”
  • 8. COPYRIGHT © InovaBiz 2016 Diapositiva N°8 Tips de modelado: vincular entidades Relaciones 1 – N “entidades débiles”
  • 9. COPYRIGHT © InovaBiz 2016 Diapositiva N°9 Tips de modelado: vincular entidades Relaciones 1 – 1 (igual que 1 – N pero con índice único)
  • 10. COPYRIGHT © InovaBiz 2016 Diapositiva N°10 Tips de modelado: vincular entidades Relaciones N – N (4 formas de modelarlas)
  • 11. COPYRIGHT © InovaBiz 2016 Diapositiva N°11 Tips de modelado: herencia
  • 12. COPYRIGHT © InovaBiz 2016 Diapositiva N°12 Tips de modelado: herencia
  • 13. COPYRIGHT © InovaBiz 2016 Diapositiva N°13 Tips de modelado: herencia
  • 14. COPYRIGHT © InovaBiz 2016 Diapositiva N°14 Tips de modelado: Composición Usar composición cuando: • No necesito que los ID coincidan entre las tablas padre-hijo. • Necesito acceder desde el hijo a todos los atributos del padre.
  • 15. COPYRIGHT © InovaBiz 2016 Diapositiva N°15 Atributos dinámicos: OAV Pattern - modelado
  • 16. COPYRIGHT © InovaBiz 2016 Diapositiva N°16 Atributos dinámicos: OAV Pattern - visualización
  • 17. COPYRIGHT © InovaBiz 2016 Diapositiva N°17 Parámetros dinámicos  En ocasiones, debemos comenzar la programación aún cuando las especificaciones de los servicios están en revisión, y sabemos que vendrán cambios. Para aislarnos, podemos definir los parámetros de salida (y eventualmente los de entrada) de forma dinámica.
  • 18. COPYRIGHT © InovaBiz 2016 Diapositiva N°18 SQL IN – NOT IN  En ocasiones, necesitamos generar una sentencia not in en GeneXus, dado que no existe una implementación directa, tenemos dos alternativas
  • 20. COPYRIGHT © InovaBiz 2016 Diapositiva N°20 Precondiciones para convertir KB Web a SD 1 – PKs y niveles •Las claves primarias en mobile offline es obligatorio que sean simples y autonumeradas. •Las transacciones deben ser de un solo nivel. 2 – Activar GAM •Esto nos resolverá muchas funcionalidades importantes: remember login, seguridad, navegación. 3- Rediseñar flujo •Las APPs offline deben repensarse cuidadosamente para evitar colpasar el mecanismo de sincronización automático.
  • 21. COPYRIGHT © InovaBiz 2016 Diapositiva N°21 Consideraciones para desarrollo SD Offline  Pensar siempre que existe una diferencia entre eventos del servidor y eventos que ejecutan en el dispositivo. Los eventos que ejecutan en el dispositivo, deben ser independientes de forma tal de poder ejecutar sin internet.  Pensar en el dispositivo como un mero capturador de datos y marcar la mínima cantidad de transacciones del modelo como “offline”.  Además, de todas las transacciones “offline”, seleccionar las que se deberán sincronizar desde y hacia el servidor. Las transacciones cuyos datos solo viajarán de “ida al servidor”, se deben acotar con condiciones en la BD offline (una condición que no se cumpla nunca para que nunca baje registros al dispositivo).
  • 22. COPYRIGHT © InovaBiz 2016 Diapositiva N°22 Evitar tablas “numerador” en SD Offline
  • 23. COPYRIGHT © InovaBiz 2016 Diapositiva N°23 Reset de la KB SD  Muy frecuentemente, sobre todo en SD Offline, nos encontramos con que ciertos objetos autogenerados no se compilan correctamente, en ese caso, debemos borrar todas las carpetas de la raíz de la KB los archivos con extensión .ari. Luego hacer un rebuild “all” y una creación de la BD Offline.
  • 24. COPYRIGHT © InovaBiz 2016 Diapositiva N°24 Consideraciones para el deploy SD con GAM  Configurar HTTP  Cambiar clave de admin de GAM  Borrar todos los usuarios definidos para pruebas en repositorio GAM  Cuando la webapp es copiada al server de producción, el contenido de la carpeta gxmetadata debe ser borrado salvo los archivos <main_object>.<plataform>.json  Los webpanels del backend de GAM deben estar inaccesibles desde internet, solo desde dentro de la red.  Los webpanels GAMExampleRecoverPasswordStep1 y GAMExampleRecoverPasswordStep2 deben ser editados para reflejar la realidad del negocio.
  • 25. COPYRIGHT © InovaBiz 2016 Diapositiva N°25 Consideraciones para el deploy SD con GAM
  • 26. COPYRIGHT © InovaBiz 2016 Diapositiva N°26 Consideraciones para el deploy SD con GAM
  • 27. COPYRIGHT © InovaBiz 2016 Diapositiva N°27 Impedir acceso a datos en sistemas multiempresa