SlideShare una empresa de Scribd logo

042 Compartiendo Fuentes De Datos Data Providers

GeneXus
GeneXus
GeneXusGeneXus

042 Compartiendo Fuentes De Datos Data Providers

1 de 33
Descargar para leer sin conexión
Compartiendo fuentes de datos: data providers,[object Object],Luis Murillo,[object Object],lmurillo@artech.com.uy,[object Object]
042 Compartiendo Fuentes De Datos Data Providers
042 Compartiendo Fuentes De Datos Data Providers
042 Compartiendo Fuentes De Datos Data Providers
Agenda,[object Object],Motivación,[object Object],Casos de uso,[object Object],Lo nuevo en Evolution 1,[object Object],Futuro,[object Object]
Motivación,[object Object],Motivación,[object Object],Casos de uso,[object Object],Lo nuevo en Evolution 1,[object Object],Futuro,[object Object]
Publicidad

Recomendados

Generadores web Genexus nuevas caracteristicas para nuevas aplicaciones
Generadores web Genexus nuevas caracteristicas para nuevas aplicacionesGeneradores web Genexus nuevas caracteristicas para nuevas aplicaciones
Generadores web Genexus nuevas caracteristicas para nuevas aplicacionesGeneXus
 
C:\Documents And Settings\Maq 20\Escritorio\Blindlight Dgayo Defensa 60
C:\Documents And Settings\Maq 20\Escritorio\Blindlight Dgayo Defensa 60C:\Documents And Settings\Maq 20\Escritorio\Blindlight Dgayo Defensa 60
C:\Documents And Settings\Maq 20\Escritorio\Blindlight Dgayo Defensa 60anali
 
Charla II Congreso de Bibliotecas Universitarias y Especializadas
Charla II Congreso de Bibliotecas Universitarias y EspecializadasCharla II Congreso de Bibliotecas Universitarias y Especializadas
Charla II Congreso de Bibliotecas Universitarias y EspecializadasChristian Sifaqui
 
Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB
Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDBBases de datos NoSQL Multi-Modelos, caso de estudio: OrientDB
Bases de datos NoSQL Multi-Modelos, caso de estudio: OrientDBWilmer Gonzalez
 
Retos actuales y futuros del Cómputo en la Nube - Un enfoque académico
Retos actuales y futuros del Cómputo en la Nube - Un enfoque académicoRetos actuales y futuros del Cómputo en la Nube - Un enfoque académico
Retos actuales y futuros del Cómputo en la Nube - Un enfoque académicoJavier Mijail Espadas Pech
 
Web Escenas Del Proximo Capitulo
Web Escenas Del Proximo CapituloWeb Escenas Del Proximo Capitulo
Web Escenas Del Proximo Capituloorlando romero
 

Más contenido relacionado

Similar a 042 Compartiendo Fuentes De Datos Data Providers

Ponencia web semantica
Ponencia web semanticaPonencia web semantica
Ponencia web semanticarobertsegura7
 
Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf
Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdfLos mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf
Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdfDiego Freniche Brito
 
08-Metadatos_Ontologias_y_Web_Semantica.pdf
08-Metadatos_Ontologias_y_Web_Semantica.pdf08-Metadatos_Ontologias_y_Web_Semantica.pdf
08-Metadatos_Ontologias_y_Web_Semantica.pdfDAVIDMOISESOREMEJIA
 
Unidad DidáCtica Ii Sistemas Gestores De Bases De Datos
Unidad DidáCtica Ii Sistemas Gestores De Bases De DatosUnidad DidáCtica Ii Sistemas Gestores De Bases De Datos
Unidad DidáCtica Ii Sistemas Gestores De Bases De DatosConfesorAD
 
Cómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datosCómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datosGobierno Local
 
Web Semántica escenas del proximo capitulo
Web Semántica escenas del proximo capituloWeb Semántica escenas del proximo capitulo
Web Semántica escenas del proximo capituloRodrigo Ronda
 
Eva mendez servicios-de-informacion-socialesysemanticos-web30
Eva mendez servicios-de-informacion-socialesysemanticos-web30Eva mendez servicios-de-informacion-socialesysemanticos-web30
Eva mendez servicios-de-informacion-socialesysemanticos-web30Anubis Hosein
 
Web2punto0
Web2punto0Web2punto0
Web2punto0Ingnova
 
Aplicación de las técnicas de la “Web Semántica” en la información del Transp...
Aplicación de las técnicas de la “Web Semántica” en la información del Transp...Aplicación de las técnicas de la “Web Semántica” en la información del Transp...
Aplicación de las técnicas de la “Web Semántica” en la información del Transp...Luis Criado
 
Presentación informática II-2015
Presentación informática II-2015Presentación informática II-2015
Presentación informática II-2015Jorge Angel Díaz
 
Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...
Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...
Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...GeneXus
 
Interoperabilidad Semántica
Interoperabilidad SemánticaInteroperabilidad Semántica
Interoperabilidad SemánticaAlejandro Barros
 

Similar a 042 Compartiendo Fuentes De Datos Data Providers (14)

Ponencia web semantica
Ponencia web semanticaPonencia web semantica
Ponencia web semantica
 
Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf
Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdfLos mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf
Los mejores consejos para migrar de RDBMS a MongoDB.pptx.pdf
 
Web Semantica
Web SemanticaWeb Semantica
Web Semantica
 
08-Metadatos_Ontologias_y_Web_Semantica.pdf
08-Metadatos_Ontologias_y_Web_Semantica.pdf08-Metadatos_Ontologias_y_Web_Semantica.pdf
08-Metadatos_Ontologias_y_Web_Semantica.pdf
 
Unidad DidáCtica Ii Sistemas Gestores De Bases De Datos
Unidad DidáCtica Ii Sistemas Gestores De Bases De DatosUnidad DidáCtica Ii Sistemas Gestores De Bases De Datos
Unidad DidáCtica Ii Sistemas Gestores De Bases De Datos
 
Cómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datosCómo desarrollar bienes y servicios públicos con datos
Cómo desarrollar bienes y servicios públicos con datos
 
Web Semántica escenas del proximo capitulo
Web Semántica escenas del proximo capituloWeb Semántica escenas del proximo capitulo
Web Semántica escenas del proximo capitulo
 
Eva mendez servicios-de-informacion-socialesysemanticos-web30
Eva mendez servicios-de-informacion-socialesysemanticos-web30Eva mendez servicios-de-informacion-socialesysemanticos-web30
Eva mendez servicios-de-informacion-socialesysemanticos-web30
 
Web2punto0
Web2punto0Web2punto0
Web2punto0
 
Introducción a la Web Semántica
Introducción a la Web SemánticaIntroducción a la Web Semántica
Introducción a la Web Semántica
 
Aplicación de las técnicas de la “Web Semántica” en la información del Transp...
Aplicación de las técnicas de la “Web Semántica” en la información del Transp...Aplicación de las técnicas de la “Web Semántica” en la información del Transp...
Aplicación de las técnicas de la “Web Semántica” en la información del Transp...
 
Presentación informática II-2015
Presentación informática II-2015Presentación informática II-2015
Presentación informática II-2015
 
Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...
Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...
Big Data: Desde el ABC hasta lo que (casi) nadie suele decir en las conferenc...
 
Interoperabilidad Semántica
Interoperabilidad SemánticaInteroperabilidad Semántica
Interoperabilidad Semántica
 

Más de GeneXus

After Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsAfter Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsGeneXus
 
Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!GeneXus
 
Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in ActionGeneXus
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...GeneXus
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?GeneXus
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroGeneXus
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y PlataformasGeneXus
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosGeneXus
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaGeneXus
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 StudentsGeneXus
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsiveGeneXus
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusGeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosGeneXus
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAPGeneXus
 
Going mobile
Going mobileGoing mobile
Going mobileGeneXus
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusGeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusGeneXus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...GeneXus
 

Más de GeneXus (20)

After Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) BotsAfter Chatbots Yo (Ro) Bots
After Chatbots Yo (Ro) Bots
 
Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!Construya las aplicaciones del futuro ¡hoy!
Construya las aplicaciones del futuro ¡hoy!
 
Live Editing in Action
Live Editing in ActionLive Editing in Action
Live Editing in Action
 
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
Experiencias en el desarrollo de aplicaciones móviles en el sector salud de M...
 
¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?¿Pensando en implementar un sistema de gestión integral en su organización?
¿Pensando en implementar un sistema de gestión integral en su organización?
 
K2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuroK2B Tools el compañero de viaje ideal hacia el futuro
K2B Tools el compañero de viaje ideal hacia el futuro
 
Sd y Plataformas
Sd y PlataformasSd y Plataformas
Sd y Plataformas
 
PXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivosPXTools: Nuevo generador y nuevos controles responsivos
PXTools: Nuevo generador y nuevos controles responsivos
 
APPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industriaAPPlícate: Aplicaciones móviles para el desarrollo de la industria
APPlícate: Aplicaciones móviles para el desarrollo de la industria
 
GeneXus 4 Students
GeneXus 4 StudentsGeneXus 4 Students
GeneXus 4 Students
 
La importancia de ser responsive
La importancia de ser responsiveLa importancia de ser responsive
La importancia de ser responsive
 
K2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXusK2B: El ERP nativo para el mundo GeneXus
K2B: El ERP nativo para el mundo GeneXus
 
GeneXus 15 (Salto)
GeneXus 15 (Salto)GeneXus 15 (Salto)
GeneXus 15 (Salto)
 
GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.GeneXus Cloud Deployment Services. El camino a la nube.
GeneXus Cloud Deployment Services. El camino a la nube.
 
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuariosLigaMX con GeneXus: De 0 a 1.700.000 de usuarios
LigaMX con GeneXus: De 0 a 1.700.000 de usuarios
 
Innovando con GeneXus y SAP
Innovando con GeneXus y SAPInnovando con GeneXus y SAP
Innovando con GeneXus y SAP
 
Going mobile
Going mobileGoing mobile
Going mobile
 
Audit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXusAudit+: La mejor forma de auditar KB’s GeneXus
Audit+: La mejor forma de auditar KB’s GeneXus
 
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite PlusWW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
WW+, SD+ y Audit+: Potencie GeneXus la Suite Plus
 
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
Aproveche las ventajas de la colaboración entre GeneXus y Cloud Shared Office...
 

Último

Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"FernandoCalapaqui
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletFernandoCalapaqui
 
Detalles Constructivos piso acabados.pptx
Detalles Constructivos piso acabados.pptxDetalles Constructivos piso acabados.pptx
Detalles Constructivos piso acabados.pptxLuisChili1
 
Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...
Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...
Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...DannyErazo5
 
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...DannyErazo5
 
Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.
Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.
Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.FernandoCalapaqui
 
Práctica 1. Pasaporte de identificación.
Práctica 1. Pasaporte de identificación.Práctica 1. Pasaporte de identificación.
Práctica 1. Pasaporte de identificación.FernandoCalapaqui
 
IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024Isidro Navarro
 
PS3 VS PS4-García_Iker_Guzman_Valentin.pdf
PS3 VS PS4-García_Iker_Guzman_Valentin.pdfPS3 VS PS4-García_Iker_Guzman_Valentin.pdf
PS3 VS PS4-García_Iker_Guzman_Valentin.pdfvguzman1
 
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...DannyErazo5
 
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"ferpatfut1109
 
Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...
Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...
Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...DannyErazo5
 
Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"DannyErazo5
 
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdfPrueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdfFernandoCalapaqui
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletDannyErazo5
 
Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"FernandoCalapaqui
 
Tarea 2. Ensayo sobre "La internet y su evolución"
Tarea 2. Ensayo sobre "La internet y su evolución"Tarea 2. Ensayo sobre "La internet y su evolución"
Tarea 2. Ensayo sobre "La internet y su evolución"ferpatfut1109
 
Prueba Objetiva del Parcial 1_Grupo 1.pdf
Prueba Objetiva del Parcial 1_Grupo 1.pdfPrueba Objetiva del Parcial 1_Grupo 1.pdf
Prueba Objetiva del Parcial 1_Grupo 1.pdfFernandoCalapaqui
 
Detalles Constructivos pasamanos de acero inoxidable.pptx
Detalles Constructivos pasamanos de acero inoxidable.pptxDetalles Constructivos pasamanos de acero inoxidable.pptx
Detalles Constructivos pasamanos de acero inoxidable.pptxLuisChili1
 
Práctica 2. Aplicación de la herramienta Formularios de Google (4).pdf
Práctica 2. Aplicación de la herramienta Formularios de Google (4).pdfPráctica 2. Aplicación de la herramienta Formularios de Google (4).pdf
Práctica 2. Aplicación de la herramienta Formularios de Google (4).pdfFernandoCalapaqui
 

Último (20)

Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"Tarea 4. Ensayo sobre "Plagio académico"
Tarea 4. Ensayo sobre "Plagio académico"
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta Padlet
 
Detalles Constructivos piso acabados.pptx
Detalles Constructivos piso acabados.pptxDetalles Constructivos piso acabados.pptx
Detalles Constructivos piso acabados.pptx
 
Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...
Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...
Desarrollar un plan de búsqueda en grupo (Grupos formados en clase), para el ...
 
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
Desarrollar un ensayo en base a la lectura del libro "La sociedad de la ignor...
 
Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.
Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.
Tarea 1. Desarrollo de un mapa conceptual con herramientas colaborativas.
 
Práctica 1. Pasaporte de identificación.
Práctica 1. Pasaporte de identificación.Práctica 1. Pasaporte de identificación.
Práctica 1. Pasaporte de identificación.
 
IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024IA aplicada a las aulas. Aumentame EDU 2024
IA aplicada a las aulas. Aumentame EDU 2024
 
PS3 VS PS4-García_Iker_Guzman_Valentin.pdf
PS3 VS PS4-García_Iker_Guzman_Valentin.pdfPS3 VS PS4-García_Iker_Guzman_Valentin.pdf
PS3 VS PS4-García_Iker_Guzman_Valentin.pdf
 
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
Elaborar la práctica correspondiente al tema "Navegadores" : Uso de Navegador...
 
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
Tarea 1. Ensayo sobre "La sociedad de la ignorancia"
 
Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...
Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...
Desarrollar un ensayo sobre el "Plagio académico", con base a libros, capítul...
 
Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"
 
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdfPrueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
Prueba Objetiva del Parcial 1_Grupo 1_ Revisión del intento _ UNACH.pdf
 
Práctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta PadletPráctica 1. Aplicación de la herramienta Padlet
Práctica 1. Aplicación de la herramienta Padlet
 
Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"Ensayo sobre "La internet y su evolución"
Ensayo sobre "La internet y su evolución"
 
Tarea 2. Ensayo sobre "La internet y su evolución"
Tarea 2. Ensayo sobre "La internet y su evolución"Tarea 2. Ensayo sobre "La internet y su evolución"
Tarea 2. Ensayo sobre "La internet y su evolución"
 
Prueba Objetiva del Parcial 1_Grupo 1.pdf
Prueba Objetiva del Parcial 1_Grupo 1.pdfPrueba Objetiva del Parcial 1_Grupo 1.pdf
Prueba Objetiva del Parcial 1_Grupo 1.pdf
 
Detalles Constructivos pasamanos de acero inoxidable.pptx
Detalles Constructivos pasamanos de acero inoxidable.pptxDetalles Constructivos pasamanos de acero inoxidable.pptx
Detalles Constructivos pasamanos de acero inoxidable.pptx
 
Práctica 2. Aplicación de la herramienta Formularios de Google (4).pdf
Práctica 2. Aplicación de la herramienta Formularios de Google (4).pdfPráctica 2. Aplicación de la herramienta Formularios de Google (4).pdf
Práctica 2. Aplicación de la herramienta Formularios de Google (4).pdf
 

042 Compartiendo Fuentes De Datos Data Providers

  • 1.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.

Notas del editor

  1. Vamos a estar hablando en esta charla sobre el nuevo tipo de objetos introducido en GeneXus X llamado Data Provider.Primero que nada, para los que no conocen los DP, les voy a contar qué son. Los DP son un nuevo tipo de objeto introducido en GX X para resolver un subconjunto de problemas que resolvíamos con procedures.Esto lo quisimos hacer debido al objetivo que siempre tuvo GX de ser declarativo. Los DP tienen un nivel mayor de declaratividad que los procedures.¿No se si muchos de ustedes han venido a mi charla sobre el tema que di en el encuentro del año pasado?Bueno, yo abría esa charla con la siguiente grafica, la cual mostraba la distribución de objetos en una KB GX entes de la existencia de los DP, en la cual se veía un numero considerable de Procedimientos.
  2. Al finalizar la charla, mostraba esta otra grafica con mi deseo para las mediciones futuras de KB GeneXus, donde – quizá exageradamente en forma intencional – mostraba el surgimiento de el uso de este nuevo tipo de objetos llamado Data Provider.
  3. Bueno, hoy tengo la grata noticia de informarles, que la realidad esta comenzando a cumplir mi deseo. Aquí vemos la grafica de la KB utilizada en el laboratorio que estamos brindando en este Evento. Y así como en esta KB en todas las KB que se están desarrollando en GX X y GX X ev1, comienzan a aparecer objetos de tipo Data Provider sustituyendo a una clase especifica de procedimientos. Espero que después de esta charla, cada vez que estemos frente a un requerimiento perteneciente al domino de problemas para los que creamos los DP, no escribamos mas un procedimiento como hacíamos antes sino que lo resuélvamoscon un Data Provider.
  4. Entonces hablaremos en esta charla sobre la motivación que tuvimos para crear los DP.Veremos los casos de uso mas destacados.Lo nuevo introducido en Evolution 1.Y las expectativas de futuro que tenemos en relación a esto.
  5. Cual fue la motivación para tener este nuevo tipo de objeto. Estudiando varias KBs veíamos que había mucho código procedural. Siendo que la filosofía GeneXus es y será ser declarativo, intentamos ver si podíamos sustituir algunos de esos procedimientos con un tipo de objeto mas declarativo.Para ver porqué queremos ser declarativos en nuestra sintaxis, lo mejor es ver qué es ser declarativo. Es decir qué queremos implementar en lugar de decir como debe ser implementado.Los lenguajes imperativos están mas orientados a la arquitectura del computador, en cambio los lenguajes declarativos están mas bien basados en el modo de pensar de los humanos (están próximos a las matemáticas).Están mas cerca de una especificación que de un programa.En los lenguajes declarativos un programa es mas parecido a un query a una base de datos que a un programa tradicional.Eso fue entonces lo que se busco en la implementación de los DP, dentro de la problemática que estábamos resolviendo con Procedimientos, identificamos un subconjunto para los que podíamos ofrecer una sintaxis mas elegante, declarativa.
  6. Cual es ese dominio de problemas que identificamos entonces.Todos los procedimientos los podríamos definir de la siguiente forma y aparentemente serian iguales.Es decir un proceso que recibe algún input, se realiza una transformación y entregan un output. La diferencia es que en un procedure común el foco esta en el lenguaje de transformación mientras que en los Data Providers el foco esta en el Output.Por lo tanto cuando tenemos un proceso cuyo objetivo principal es devolver un conjunto de datos con estructura, la mejor solución es usar un Data Provider.Veámoslo en el siguiente ejemplo, supónganse que tuviéramos la necesidad de devolver una lista de Clientes con lo facturado pero detallando además el total por producto, claramente acá el foco esta en la salida.
  7. Aquí vemos como resolvíamos esto con un procedure. No vamos a analizarlo en detalle pero ahí ven que hay un recorrido por clientes, dentro de eso un recorrido por productos, algunas variables auxiliares para ir calculando totales, los ‘new’ que crean nuevos registros, y entre medio de todo eso, se van cargando los campos del SDT… El punto es justamente que está mezclada la lógica de obtener los datos, con la lógica de cargarlos en la estructura de salida.En definitiva estamos de alguna manera, diciendo mas que nada cómo hacer las cosas, mezcladas con lo qué queremos obtener.Déjenme contarles algo que a mí me pasaba y que quizá a ustedes también les haya pasado. Cuando escribía este tipo de procs, en los que tenía que dar como resultado una estructura, sentía como una tendencia a escribir el código indentándolo de acuerdo a esa estructura, las asignaciones de los campos del primer nivel están en un primer nivel de indentación, las asignaciones del siguiente nivel están en un nivel adicional de indentación. Era algo que me ayudaba a entender lo que estaba escribiendo, y que para cosas simples me funcionaba bastante bien. Eso facilita bastante leer el código y entender qué es lo que se está haciendo.Pero ya ven en este ejemplo (que tampoco es tan complejo), se tiene que agregar algún otro “foreach” para resolver alguna cosa, o incluir un “íf” para hacer algún calculo diferente según alguna condición, etc., etc.. El problema es que cada una de estas estructuras nos lleva a utilizar también niveles de indentación, y entonces hace imposible mantener solamente los niveles de indentación que replicaban la estructura de salida (con lo cual dificultaba identificar en el código la estructura de lo que estaba cargando), a menos que renunciara a indentar dentro de las estructuras de control (con lo cual dificultaría la legibilidad de la lógica de obtención de los datos). Esto pasa en el ejemplo que estábamos viendo, y este es un ejemplo bastante sencillo simplemente para ilustrar el punto; la realidad suele ser bastante más compleja que esto.Esta tensión entre una cosa y otra resulta bastante frustrante, y en definitiva no es sino una consecuencia natural de que en el código estamos mezclando la lógica de obtención de los datos con la carga de la estructura que devolvemos.  Justamente porque está mezclada una cosa y la otra, se hace difícil mirando el código, entender una u otra cosa por separado.Acá en definitiva hay mucho del Cómo resolver el problema.
  8. Por eso me cautivaron rápidamente los DP, cuando vi que yo podía expresar lo mismo que en el proc de este ejemplo con el siguiente DP.¿Por qué se puede lograr eso con los DP y no con los proc? Precisamente porque en los DP solamente declaramos lo que queremos cargar, junto con algunas pequeñas precisiones acerca de dónde salen los valores. Por ejemplo, el campo CustomerId se carga desde el atributo CustomerId, así que con poner CustomerId no hace falta aclarar más. Para indicar que en CustomerTotal se suman los InvoiceTotal, uso una expresión simple que indica eso; no tengo que declarar una variable, hacer un foreach, ir sumando, etc. Y por supuesto, cada nivel de indentación que ponemos es suficiente para que GX sepa que tiene que hacer una iteración, sin necesidad de que escribimos un foreach explícitamente. Ahora que la lógica de cómo obtener los datos no es necesario escribirla en forma procedural, tampoco es necesario tener un segundo criterio de indentación que entre en conflicto con el de la estructura de los datos. En el proc era difícil leer una cosa u otra a simple vista, porque estaban las dos mezcladas. Ahora no hay manera de que se mezclen porque una de las cosas ¡directamente ya no está! ¡La solución era obvia! Bueno, al menos eso parece, como suele pasar con todas las soluciones una vez que las encontramos.
  9. Eso fue lo que nos llevo a sustituir los procedimientos para resolver una determinada clase de problemas con una sintaxis declarativa: Data ProvidersPero no solo la estética visual y claridad de lectura es lo que importa.Pensaba en una analogía para ejemplificar, imaginen que después de un día de trabajo quisieran que una vez en la vida su hijo le hiciera la cena. Supongo que mas de uno lo habrá pensado alguna vez. Pero para poder hacer eso, primero deben indicarle Cómo hacerlo, para que luego sí él repita lo aprendido. Eso es ser Imperativo.Compárenlo con la diferencia de ir a un restaurante (que en definitiva supongo es por lo que optaran), en ese caso se sientan y le indican al mozo Qué quieren comer, es el chef el que decide como hacerlo.La ventaja de esto es que en el caso anterior se repetirá lo aprendido, en este caso el chef decidirá cual es la mejor forma de implementar lo que uds. desean.Esto es lo que buscamos en GeneXus, los invito a participar de la charla que va a estar dando Gaston Milano sobre Evolución del lenguaje GeneXus.
  10. Por lo tanto como en los DP digo “qué quiero obtener” pasa lo mismo que en el restaurante, siempre estaremos a un F5 de distancia de que GeneXus implemente la solución de la mejor forma posible. El Data Provider siempre será valido. Hoy GeneXus implementara la solución pensando en un equipo con un solo procesador, con la tendencia actual de tener cada vez mas procesadores por equipo, podría implementarlo utilizando esta facilidad distribuyendo la consulta en varios subselects y en el futuro de acuerdo a lo que el futuro ofrezca.
  11. Decíamos antes que el dominio de problemas que proponemos resolver con DP es aquel donde lo mas importante es la estructura de salida que pretendemos devolver. O sea aquellos procesos donde el foco esté en la estructura a devolver.Veamos entonces algunos casos de uso, algunos tradicionales y otros que en la realidad actual se transformaron en problemas comunes.
  12. Identificar bien el dominio de problemas al cual aplican es importante, porque el surgimiento de los DP ¿significa que dejaremos de usar los procedimientos? No. Miren, cuando solo existían los barcos como medio de transporte, todos los viajes se hacían en barco. Luego aparecieron los aviones. Esto quiere decir que no se usaran mas los barcos. No. Cada uno resuelve de la mejor manera un tipo de problemas. Si estoy en viajes de negocio y no quiero perder tiempo en el traslado, usare el avión. Pero en cambio si quiero hacer un viaje de placer al estilo crucero, el barco sigue siendo valido. Cada uno tiene un dominio especifico de problemas para lo cual es la mejor solución.Veamos entonces algunos casos de uso para Data Providers.
  13. El compartir datos estructurados o proveer datos estructurados es cada día mas una necesidad, dándole además a estos datos un formato, formatos que ya son estándares hoy como XML o JSON para hacer mas liviana la transferencia, y otros que aparezcan en el futuro. Tan común se están volviendo que hasta en las remeras se usan.Por lo tanto para estos casos es mejor usar DP. Por que el foco en estos casos esta en la estructurada a devolver, donde el tema de darle formato ya sea XML o JSON, en GeneXus es trivial, solo tenemos que pedírselo, GeneXus lo hace solo.Que queremos obtener: el output, la estructura de datos a devolver, descripta declarativamente en el DP. Y en que formato: p.e. en GX los metodosToXML(), ToJSON()
  14. Web 2.0, aplicaciones ricas, usables. Hoy las aplicaciones son web y necesitan este tipo de interfaces. Las reclama el usuario, no hay alternativa.Para esto entre otras cosas en GeneXus tenemos los UserControls.
  15. La mayoría de estos controles, se alimentan precisamente de datos en formato estructurado, o sea de SDTs. Por lo tanto la mejor opción para compartir los datos de mi DB con estos controles o proveerles de datos es a través de Data Providers. Incluso muchos de los controles, directamente se alimentan del Data Provider. Esto es, directamente hay una property en el control donde puedo indicar el DP del cual se alimenta.
  16. La arquitectura de los sistemas esta cambiando. Hoy ya no es del todo posible implementar mi sistema monolítico, ya que en general el nivel de automatización de las empresas es grande, por lo tanto es muy posible que lo que se quiera es la mejor solución en su clase para cada área.Esto hizo cambiar la arquitectura de los sistemas que debemos desarrollar hoy.
  17. Estamos hablando de la Arquitectura orientada a servicios.Por lo tanto cada modulo de mi sistema debe tener implementada una capa SOA. Esto es, un conjunto de servicios que permitan a mi aplicación interactuar con otras, compartir mis datos con el mundo. Estamos hablando de disponibilizar las operaciones de interacción con la DB de mi sistema (CRUD) con aplicaciones de terceros. Si bien el Insert/Update/Delete lo tenemos bien resuelto con los BC los cuales podemos exponer como WS, también es una especie de estándar para esta arquitectura contar con la operación GetList, o sea GetClientList, GetProductList. Pedir a otra aplicación una lista de una determinada entidad. Claramente la mejor forma de resolver esto es con Data Providers, los cuales también cuentan con una property para indicar si los quiero exponer como WS.Esta arquitectura es una de las causas por las cuales se había incrementado el numero de procedimientos por KB.
  18. Por ultimo la inicialización de datos a la hora de implantación de los sistemas.
  19. No podemos pensar en enloquecer a los usuarios, a la hora de implantar un sistema, haciéndolos ingresar todos los datos necesarios para la operativa. Hay un gran conjunto de datos que son universales y debemos proveerlos precargados.Nos referimos por ejemplo a las unidades de medida, países, monedas y un sinfín mas.
  20. Esta problemática era resuelta tradicionalmente con procedimientos que hacían un montón de News.Este es otro caso donde la mejor solución es el Data Provider.Las ventajas:Mas legible (queda mas claro que registro del segundo nivel corresponde a cual del primero)No preciso usar variables auxiliares para obtener el resultado del AutonumberMenos asignaciones porque las cosas se resuelven en el BC (p.e.InicialValue de InvoiceDate en Today())No vuelvo a programar reglas de negocios en el procedimiento evitando errores e inconsistenciasHay dos post muy interesantes sobre el tema en los blogs de Gustavo y Armin.Veremos ahora después, que en Evolution 1 es mas fácil aún la solución a este tipo de problemas.
  21. A modo de resumen, entonces estos son los cuatro principales dominios de problemas para los que los DP es la mejor solución.
  22. Y ahora si, pasemos a lo nuevo en Evolution 1.
  23. Como veíamos antes, la problemática de inicializar datos a la hora de implantar un sistema es algo común. Esto ha hecho que comience a surgir una especie de nicho de mercado, la oferta de datos.Así surge, entre otras FreeBase. Free base es básicamente un UDM, colaborativo y gratuito, el cual, simplificando un poco, organiza los datos en Types (que serian como la temática de los datos que buscamos), donde cada Type tiene Properties que son los datos en si que deseamos. O sea podría buscar Types como ser Países, Monedas, Películas y elegir la que mas me convenga, la cual por ejemplo tendrá las Properties, NombrePais, IdiomaPais.Como la definió Jodal, es una especie de Wikipedia pero para los datos, la cual además de poder buscar on line, disponibiliza un conjunto de Apis.
  24. Aprovechando esta nueva realidad en GX X evolution 1 implementamos Data ProviderGeneratos. Esta nueva tooles un generador de Data Providers. Recuerdan lo que veíamos recién, los Data Providers para inicializar datos. Bueno, si contamos con una fuente de datos con la información necesaria, ya ni siquiera tendremos que escribir manualmente el DP que recién veíamos. Data ProviderGenerator se puede alimentar de ella y automáticamente escribirnos el DP para inicialización.Eligiendo la opción DPG, le indicamos un par de cosas a la herramienta y escribe automáticamente el DP con los Datos.Saben lo que mas me gusta de esto, que parece que con el paso del tiempo cada ves estamos viendo no solamente que GeneXus genera código en los lenguajes tradicionales, sino que comenzaron a aparecer herramientas que ahora generan código GeneXus. Un nivel mas de abstracción. Piensen en GeneXusPatterns, piensen en Data ProviderGenerator.
  25. Veamos un poco la arquitectura, de DPG.Se puede alimentar de fuentes de datos donde tengamos los datos que necesitamos, los cuales puedo buscar de acuerdo al tipo que tengan en su almacenamiento. Una ves que elijo la fuente deseada, le indico cual será el SDT (el item) que deseo cargar. Realizo el mapeo entre los elementos del item y las propiedades de la fuente y DPG escribirá el DP por nosotros con los datos para que luego lo usemos para poblar un BC de mi sistema.
  26. Veamos rápidamente el funcionamiento de DPG (alimentándose de Freebase).Esta es la pantalla que aparece al ejecutar DPG. Ahí buscamos por alguna palabra clave que indica que tipo de información queremos obtener. Country en el ejemplo.En este momento (utilizando las apis que provee Freebase) DPG presenta todas las fuentes de datos relacionada con países y elegimos una.En el siguiente paso se muestran las properties de la fuente elegida, con un ejemplo con datos cargados. Nosotros debemos elegir el SDT que se va a cargar y matchear cada elemento del SDT con una propiedad de la fuente.Al confirmar, DPG escribe el DP para inicialización con los datos obtenidos de Freebase.Lo único que resta hacer es alimentar el BC de nuestra transacción con dicho DP y obtenemos los datos cargados.
  27. Como ya vimos un escenario cada vez mas común en el código procedural GX (procs, events) es el tener que cargar un SDT. En general este código no es muy elegante, por ejemplo el código para cargar los Tabs en el WorkWith es algo como lo que se ve en la ppt. Claro que este código se puede sustituir por un Data Provider y llamar en el código al DP. El problema de esta solución es que se crea un objeto nuevo cuando si embebemos el DataProvider en el código quedaría todo mas fácil de entender.Frente a las posibilidades de reúso del DP, podremos en el futuro decidir si escribimos el DP o lo escribimos inLine.No se si será esta la sintaxis exacta pero es la idea lo que les quiero transmitir.
  28. Data ProviderGenerator hoy se alimenta solamente de Freebase como ya vimos, pero este tema de proveer datos en formatos relativamente estructurados, parece ser un negocio que estaría surgiendo.No es objetivo de esta charla analizar el modelo de negocios para esto, pero claramente ingresar datos a un sistema tiene un costo determinado de horas/hombre, por lo tanto es una cuestión de costos.Así como freebase, existen otras. P.e.Swivel, Google Base.Y por que no GXBase? Buscando información en repositorios de KBs que estén en algún GXServer.Nosotros con GXServer mas un conjunto de APIs REST (las cuales tenemos en beta y estaremos liberando en algún Upgrade) podremos acceder a el conocimiento en un GXServer. Siempre lo vimos por el lado de compartir conocimiento, pero ya que tenemos ahora esta clase de DP con datos para inicializar, también podremos acceder a ellos usando estas Apis desde DPG. Con lo cual ahora además de conocimiento podremos compartir Datos.La idea entonces seria un GXServer, con un buen conjunto de DP por tema (mantenidos por la comunidad, gratis o no de acuerdo al creador de los mismos), el cual podemos seleccionar como fuente de información para DPG y obtener automáticamente el DP en mi KB con esos datos.
  29. Concluyendo entonces, la idea a transmitir es que a partir de GeneXus X contamos con un nuevo tipo de objetos, declarativo que resuelve un subconjunto especifico de problemas que antiguamente resolvíamos con Procedimientos. Entonces los invito a usarlos. Si tenemos un clavo usemos un martillo, pero si tenemos un tornillo lo mejor es un destornillador. Y parecería que cada vez están apareciendo mas tornillos.Por lo tanto los invito a usarGeneXus X para poder entre otras cosas utilizar estas nuevas funcionalidades que vimos, Data Provider, Data ProviderGenerator y un gran numero más de beneficios incorporados en esta versión.Es tiempo de actuar!!!