SlideShare ist ein Scribd-Unternehmen logo
1 von 47
Downloaden Sie, um offline zu lesen
Programación basada
en componentes para
Programadores Python
Leonardo J.
Caballero G.
Acerca de mí
Marabino.
Macagua.
11 años en Linux.
Debianista.
Canaimero.
Pythonista.
Plonista.
http://www.flickr.com/photos/sinlentes/5570374264/
Programación basada en
componentes
• Tiene énfasis en la descomposición de sistemas
en componentes funcionales o lógicos.
• A través de interfaces bien definidas usadas para
la comunicación entre componentes.
• Es nivel de abstracción más alto que los objetos.
Programación basada en componentes
Casos de adopción de este son:
● El modelo Enterprise JavaBeans de Oracle.
● Component Object Model (COM) de Microsoft.
● System.ComponentModel en Microsoft .NET.
● Cross Platform Component Object Model (XPCOM)
de Mozilla Foundation.
● Universal Network Objects (UNO) de
OpenOffice.org.
● Zope Component Architecture (ZCA) en Python.
Zope Component Architecture - ZCA
● Es un marco de trabajo (framework) en Python
que soporta el diseño y la programación basada
en componentes.
● Ayuda a separar el código de presentación del
ámbito del código de lógica y crea componentes
reusables (zope.component).
Conformación de la ZCA
● Publicador de Objeto (zope.publisher).
● Servidor Web (zope.server).
● Base de datos objeto transaccional (ZODB).
● Lenguaje de configuración basado XML para
registrar de componentes (zope.configuration).
● Arquitectura de seguridad flexible con políticas de
seguridad pluggable (zope.security).
Conformación de la ZCA
● Frameworks de pruebas unitarias y funcionales
(zope.testing, zope.testbrowser).
● Lenguaje de plantillas XHTML-compliant
(zope.pagetemplate).
● Motor de esquemas y mecanismo de generación
de formularios automático (zope.schema, z3c.form)
y muchos más paquetes del núcleo y de terceros.
Zope Component Architecture - ZCA
● Interfaces.
● Components.
● Zope 3 Schemas.
● Zope Configuration System.
● Zope Content Providers.
● Zope Page-Template Architecture.
● Zope Object Database Architecture.
ZCA - zope.interface
Interface, son objectos que especifican el
comportamiento externo de objetos que “proveen”.
Esta especifica comportamiento a través de:
● Documentación informal en una cadena.
● Definiciones de Atributos, especifica atributos
específicos.
● Invariantes, son condiciones que deben tomar para
los objetos que provee la interfaz.
ZCA - zope.interface
ZCA - zope.component
● Utilities, son componentes que provee una
interfaz y que son observado por una interfaz y
un nombre.
● Adapters, son componentes computados desde
otros componentes para adaptarlo a alguna
interfaz, debido a esto, son proveídos como
fabricas, usualmente clases.
ZCA – zope.component - Utilities
ZCA – zope.component - Utilities
ZCA – zope.component - Adapters
ZCA – zope.component - Adapters
ZCA – zope.component - Adapters
ZCA – zope.component - Adapters
ZCA - zope.component
● Handlers, son fabricas de adaptadores de
suscripción que no producen nada, solo cuando
son llamados. Usualmente usado para manejar
eventos.
ZCA – zope.component - Handlers
ZCA – zope.component - Handlers
ZCA – zope.component - Handlers
ZCA - zope.schema
● Schemas extiende la noción de interfaces para
descripciones detalladas de Atributos, (pero no
métodos).
● Cada esquema es una interfaz y especifica los
campos públicos de un objecto.
ZCA - zope.schema
● Fields, un campo roughly corresponde a un
atributo de un objecto Python.
● El paquete “zope.schema” provee un conjunto de
tipos de campos, incluyendo texto simple y
múltiple, data binaria, enteros, punto flotante y
valores fecha / hora.
ZCA - zope.schema
● Widgets, son componentes que muestran valores
de campos y, en el caso de campos reescribibles,
permite al usuario editar sus valores.
ZCA - zope.schema
ZCA - zope.schema
ZCA - zope.schema
ZCA - Zope Configuration System
● ZCML, del ingles “Zope Configuration Markup
Language” es una aplicación XML.
● En Zope 2 con el producto Five le permite usar
una serie de componentes Zope 3 que pueden
ser conectado juntos usando ZCML.
ZCA – zope.configuration - ZCML
Zope Content Providers
● Content Provider, es un termino del mundo Java
que refiere a componentes que pueden proveer
contenido HTML.
● Le permite definir regiones en su página y para
que los programadores registren piezas de
contenido HTML en esas regiones.
Zope Content Providers
● Son conocidos como Viewlets y están disponible
solamente dentro de Viewlet Managers.
● Implementa un patron de diseño Composite.
● En Zope 3 son adaptadores múltiples que esta
observando por el contexto, solicitud (y también el
layer / skin), y la view que ellos despliegan.
ZCA - Zope Content Providers
Plantilla Principal
Administrador Viewlet
Administrador Viewlet
Ranura
Principal
Viewlets
Viewlets
Portlets
Viewlets
Vista de Contenido
Principal
Zope Content Providers - Viewlets
Zope Content Providers - Viewlet Manager
Zope Page-Template Architecture
● El compilador y interprete Template Attribute
Lenguage.
● Un motor de expresión.
● Las page templates atan todo junto.
Zope Page-Template Architecture
Zope Page-Template Architecture
Zope Object Database Architecture
● Soporte para concurrencia.
● Interfaces para almacenamiento, permitiendo
diversas estrategias de almacenamiento a usar,
desde un archivo, a RDBMS, a memoria.
● Robusto formato del archivo de almacenamiento.
● Múltiples BDs en el mismo sistema de objeto.
Zope Object Database Architecture
● Versionado e integraciones de versiones con el
sistema transacción.
● Múltiples procesos de gestión de almacenamiento
a través de la distribución estándar no incluirá los
administradores de almacenamiento de proceso
múltiples.
Zope Object Database Architecture
Zope Object Database Architecture
Zope Object Database Architecture
Zope Object Database Architecture
p1 p2 p3 p4
Pagina
titulo
descripcion
contenido
comentariorating
Lecturas recomendadas
● The Zope 3 Book
● http://muthukadan.net/docs/tzb.html
● The Zope2 Book
● http://docs.zope.org/zope2/zope2book/
● Una guía comprensiva de la Arquitectura de
Componentes de Zope
● http://plone-spanish-
docs.readthedocs.org/es/latest/programacion/zca/z
ca-es.html
¿Preguntas?
leonardoc@plone.org
@SomosCovantec
@macagua / @ploneve
https://www.flickr.com/photos/sparetomato/2641110677/
¿Quieres mejorar este material?
Este material tiene licenciamiento abierto, y puede
reportar errores o proponer mejoras:
● Repositorio de fuentes.
● https://github.com/Covantec/entrenamiento.desarrollo
_plone
● Reportar errores o proponer mejoras.
● https://github.com/Covantec/entrenamiento.desarrollo
_plone/issues/new
Copyright (c) 2010 - 2015 Leonardo J. Caballero GCopyright (c) 2010 - 2015 Leonardo J. Caballero G.
Esta obra está sujeta a la licenciaEsta obra está sujeta a la licencia Reconocimiento-Reconocimiento-
CompartirIgual 3.0 Venezuela de Creative CommonsCompartirIgual 3.0 Venezuela de Creative Commons..
Para ver una copia de esta licencia, visite la siguientePara ver una copia de esta licencia, visite la siguiente
dirección URL:dirección URL:
●
http://creativecommons.org/licenses/by-sa/3.0/ve/http://creativecommons.org/licenses/by-sa/3.0/ve/
Bajo los siguientes términos:Bajo los siguientes términos:
●
Reconocimiento - Usted debe dar el crédito apropiado,Reconocimiento - Usted debe dar el crédito apropiado,
proporcionar un enlace a la licencia, y de indicar si se hanproporcionar un enlace a la licencia, y de indicar si se han
realizado cambios. Usted puede hacerlo de cualquierrealizado cambios. Usted puede hacerlo de cualquier
manera razonable, pero no en una manera que sugiere elmanera razonable, pero no en una manera que sugiere el
licenciante a usted o que apruebe su utilización.licenciante a usted o que apruebe su utilización.
●
CompartirIgual - Si usted mezcla, transforma o crea nuevoCompartirIgual - Si usted mezcla, transforma o crea nuevo
material a partir de esta obra, usted podrá distribuir sumaterial a partir de esta obra, usted podrá distribuir su
contribución siempre que utilice la misma licencia que lacontribución siempre que utilice la misma licencia que la
obra original.obra original.
Licenciamiento

Weitere ähnliche Inhalte

Was ist angesagt?

Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache AntIker Canarias
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos BasicosEmilio Aviles Avila
 
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicacióndeSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicaciónaferrandini
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticasIker Canarias
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en javarsalazar16988
 

Was ist angesagt? (10)

Breve introducción a Apache Ant
Breve introducción a Apache AntBreve introducción a Apache Ant
Breve introducción a Apache Ant
 
Curso Java Avanzado 0 Conceptos Basicos
Curso Java Avanzado   0 Conceptos BasicosCurso Java Avanzado   0 Conceptos Basicos
Curso Java Avanzado 0 Conceptos Basicos
 
Herramientas Java
Herramientas JavaHerramientas Java
Herramientas Java
 
Web services y java
Web services y javaWeb services y java
Web services y java
 
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicacióndeSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
deSymfony 2013: Anotaciones, no es parte de mi aplicación, pero es mi aplicación
 
Subversion - buenas prácticas
Subversion - buenas prácticasSubversion - buenas prácticas
Subversion - buenas prácticas
 
Presentacion aplicaciones en java
Presentacion aplicaciones en javaPresentacion aplicaciones en java
Presentacion aplicaciones en java
 
Diapositivas de JAVA
Diapositivas de JAVADiapositivas de JAVA
Diapositivas de JAVA
 
Frameworks J2EE
Frameworks J2EEFrameworks J2EE
Frameworks J2EE
 
Spring framework 3
Spring framework 3Spring framework 3
Spring framework 3
 

Ähnlich wie Programación Python ZCA

Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plonementtes
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño IIkaolong
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyJorge Antonio Linares Vera
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaglfloresgilberto
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios webjcarazo
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...Miguel Ángel Sánchez Chordi
 
Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1Cristobal Costa Soria
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XMLJuan Carlos Rubio Pineda
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Rodrigo Zottola Pareja
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosGeorge Navarro Gomez
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netAlberto Diaz Martin
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETAlberto Diaz Martin
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightParadigma Digital
 
Salesforce Lightning Components
Salesforce Lightning ComponentsSalesforce Lightning Components
Salesforce Lightning ComponentsDavid Carnicer
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Javapbcanessa
 

Ähnlich wie Programación Python ZCA (20)

Qué puede aprender Drupal de Plone
Qué puede aprender Drupal de PloneQué puede aprender Drupal de Plone
Qué puede aprender Drupal de Plone
 
Patrones de diseño II
Patrones de diseño IIPatrones de diseño II
Patrones de diseño II
 
Desarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademyDesarrollo rápido de apps web con laravel - DevAcademy
Desarrollo rápido de apps web con laravel - DevAcademy
 
Mi lenguaje de programación de preferencia
Mi lenguaje de programación de preferenciaMi lenguaje de programación de preferencia
Mi lenguaje de programación de preferencia
 
Django - Plataforma de sitios web
Django - Plataforma de sitios webDjango - Plataforma de sitios web
Django - Plataforma de sitios web
 
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...VLCTechFest -  Simplificando Controladores: Una introducción a Action-Domain ...
VLCTechFest - Simplificando Controladores: Una introducción a Action-Domain ...
 
Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1Tecnologias orientadas a aspectos en .NET 1.1
Tecnologias orientadas a aspectos en .NET 1.1
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML1/9 Curso JEE5, Soa, Web Services, ESB y XML
1/9 Curso JEE5, Soa, Web Services, ESB y XML
 
Introdución a aplicaciones web en java
Introdución a aplicaciones web en java Introdución a aplicaciones web en java
Introdución a aplicaciones web en java
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Django - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales ConceptosDjango - Curso Básico - Principales Conceptos
Django - Curso Básico - Principales Conceptos
 
Lenguaje java
Lenguaje javaLenguaje java
Lenguaje java
 
Hora 12
Hora 12Hora 12
Hora 12
 
Cross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.netCross development - React para desarrolladores de asp.net
Cross development - React para desarrolladores de asp.net
 
CrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NETCrossDvlpu - REACT para desarrolladores de ASP.NET
CrossDvlpu - REACT para desarrolladores de ASP.NET
 
principios básicos
principios básicosprincipios básicos
principios básicos
 
Seminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring InsightSeminario Spring Roo. Monitorización con Spring Insight
Seminario Spring Roo. Monitorización con Spring Insight
 
Salesforce Lightning Components
Salesforce Lightning ComponentsSalesforce Lightning Components
Salesforce Lightning Components
 
Lenguaje Java
Lenguaje JavaLenguaje Java
Lenguaje Java
 

Kürzlich hochgeladen

DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORGonella
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsxJuanpm27
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024gharce
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTESaraNolasco4
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxLudy Ventocilla Napanga
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfssuser50d1252
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxEribertoPerezRamirez
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxJUANCARLOSAPARCANARE
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfssuser50d1252
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxNataliaGonzalez619348
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfcoloncopias5
 

Kürzlich hochgeladen (20)

DETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIORDETALLES EN EL DISEÑO DE INTERIOR
DETALLES EN EL DISEÑO DE INTERIOR
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
3. Pedagogía de la Educación: Como objeto de la didáctica.ppsx
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
SISTEMA INMUNE FISIOLOGIA MEDICA UNSL 2024
 
TL/CNL – 2.ª FASE .
TL/CNL – 2.ª FASE                       .TL/CNL – 2.ª FASE                       .
TL/CNL – 2.ª FASE .
 
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE4º SOY LECTOR PART2- MD  EDUCATIVO.p df PARTE
4º SOY LECTOR PART2- MD EDUCATIVO.p df PARTE
 
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docxSIMULACROS Y SIMULACIONES DE SISMO 2024.docx
SIMULACROS Y SIMULACIONES DE SISMO 2024.docx
 
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdfFichas de MatemáticA QUINTO DE SECUNDARIA).pdf
Fichas de MatemáticA QUINTO DE SECUNDARIA).pdf
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docxPROGRAMACION ANUAL DE MATEMATICA 2024.docx
PROGRAMACION ANUAL DE MATEMATICA 2024.docx
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptxMonitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
Monitoreo a los coordinadores de las IIEE JEC_28.02.2024.vf.pptx
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdfFichas de matemática DE PRIMERO DE SECUNDARIA.pdf
Fichas de matemática DE PRIMERO DE SECUNDARIA.pdf
 
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docxSecuencia didáctica.DOÑA CLEMENTINA.2024.docx
Secuencia didáctica.DOÑA CLEMENTINA.2024.docx
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdfFisiologia.Articular. 3 Kapandji.6a.Ed.pdf
Fisiologia.Articular. 3 Kapandji.6a.Ed.pdf
 

Programación Python ZCA

  • 1. Programación basada en componentes para Programadores Python Leonardo J. Caballero G.
  • 2. Acerca de mí Marabino. Macagua. 11 años en Linux. Debianista. Canaimero. Pythonista. Plonista. http://www.flickr.com/photos/sinlentes/5570374264/
  • 3. Programación basada en componentes • Tiene énfasis en la descomposición de sistemas en componentes funcionales o lógicos. • A través de interfaces bien definidas usadas para la comunicación entre componentes. • Es nivel de abstracción más alto que los objetos.
  • 4. Programación basada en componentes Casos de adopción de este son: ● El modelo Enterprise JavaBeans de Oracle. ● Component Object Model (COM) de Microsoft. ● System.ComponentModel en Microsoft .NET. ● Cross Platform Component Object Model (XPCOM) de Mozilla Foundation. ● Universal Network Objects (UNO) de OpenOffice.org. ● Zope Component Architecture (ZCA) en Python.
  • 5. Zope Component Architecture - ZCA ● Es un marco de trabajo (framework) en Python que soporta el diseño y la programación basada en componentes. ● Ayuda a separar el código de presentación del ámbito del código de lógica y crea componentes reusables (zope.component).
  • 6. Conformación de la ZCA ● Publicador de Objeto (zope.publisher). ● Servidor Web (zope.server). ● Base de datos objeto transaccional (ZODB). ● Lenguaje de configuración basado XML para registrar de componentes (zope.configuration). ● Arquitectura de seguridad flexible con políticas de seguridad pluggable (zope.security).
  • 7. Conformación de la ZCA ● Frameworks de pruebas unitarias y funcionales (zope.testing, zope.testbrowser). ● Lenguaje de plantillas XHTML-compliant (zope.pagetemplate). ● Motor de esquemas y mecanismo de generación de formularios automático (zope.schema, z3c.form) y muchos más paquetes del núcleo y de terceros.
  • 8. Zope Component Architecture - ZCA ● Interfaces. ● Components. ● Zope 3 Schemas. ● Zope Configuration System. ● Zope Content Providers. ● Zope Page-Template Architecture. ● Zope Object Database Architecture.
  • 9. ZCA - zope.interface Interface, son objectos que especifican el comportamiento externo de objetos que “proveen”. Esta especifica comportamiento a través de: ● Documentación informal en una cadena. ● Definiciones de Atributos, especifica atributos específicos. ● Invariantes, son condiciones que deben tomar para los objetos que provee la interfaz.
  • 11. ZCA - zope.component ● Utilities, son componentes que provee una interfaz y que son observado por una interfaz y un nombre. ● Adapters, son componentes computados desde otros componentes para adaptarlo a alguna interfaz, debido a esto, son proveídos como fabricas, usualmente clases.
  • 12. ZCA – zope.component - Utilities
  • 13. ZCA – zope.component - Utilities
  • 18. ZCA - zope.component ● Handlers, son fabricas de adaptadores de suscripción que no producen nada, solo cuando son llamados. Usualmente usado para manejar eventos.
  • 22. ZCA - zope.schema ● Schemas extiende la noción de interfaces para descripciones detalladas de Atributos, (pero no métodos). ● Cada esquema es una interfaz y especifica los campos públicos de un objecto.
  • 23. ZCA - zope.schema ● Fields, un campo roughly corresponde a un atributo de un objecto Python. ● El paquete “zope.schema” provee un conjunto de tipos de campos, incluyendo texto simple y múltiple, data binaria, enteros, punto flotante y valores fecha / hora.
  • 24. ZCA - zope.schema ● Widgets, son componentes que muestran valores de campos y, en el caso de campos reescribibles, permite al usuario editar sus valores.
  • 28. ZCA - Zope Configuration System ● ZCML, del ingles “Zope Configuration Markup Language” es una aplicación XML. ● En Zope 2 con el producto Five le permite usar una serie de componentes Zope 3 que pueden ser conectado juntos usando ZCML.
  • 30. Zope Content Providers ● Content Provider, es un termino del mundo Java que refiere a componentes que pueden proveer contenido HTML. ● Le permite definir regiones en su página y para que los programadores registren piezas de contenido HTML en esas regiones.
  • 31. Zope Content Providers ● Son conocidos como Viewlets y están disponible solamente dentro de Viewlet Managers. ● Implementa un patron de diseño Composite. ● En Zope 3 son adaptadores múltiples que esta observando por el contexto, solicitud (y también el layer / skin), y la view que ellos despliegan.
  • 32. ZCA - Zope Content Providers Plantilla Principal Administrador Viewlet Administrador Viewlet Ranura Principal Viewlets Viewlets Portlets Viewlets Vista de Contenido Principal
  • 34. Zope Content Providers - Viewlet Manager
  • 35. Zope Page-Template Architecture ● El compilador y interprete Template Attribute Lenguage. ● Un motor de expresión. ● Las page templates atan todo junto.
  • 38. Zope Object Database Architecture ● Soporte para concurrencia. ● Interfaces para almacenamiento, permitiendo diversas estrategias de almacenamiento a usar, desde un archivo, a RDBMS, a memoria. ● Robusto formato del archivo de almacenamiento. ● Múltiples BDs en el mismo sistema de objeto.
  • 39. Zope Object Database Architecture ● Versionado e integraciones de versiones con el sistema transacción. ● Múltiples procesos de gestión de almacenamiento a través de la distribución estándar no incluirá los administradores de almacenamiento de proceso múltiples.
  • 40. Zope Object Database Architecture
  • 41. Zope Object Database Architecture
  • 42. Zope Object Database Architecture
  • 43. Zope Object Database Architecture p1 p2 p3 p4 Pagina titulo descripcion contenido comentariorating
  • 44. Lecturas recomendadas ● The Zope 3 Book ● http://muthukadan.net/docs/tzb.html ● The Zope2 Book ● http://docs.zope.org/zope2/zope2book/ ● Una guía comprensiva de la Arquitectura de Componentes de Zope ● http://plone-spanish- docs.readthedocs.org/es/latest/programacion/zca/z ca-es.html
  • 46. ¿Quieres mejorar este material? Este material tiene licenciamiento abierto, y puede reportar errores o proponer mejoras: ● Repositorio de fuentes. ● https://github.com/Covantec/entrenamiento.desarrollo _plone ● Reportar errores o proponer mejoras. ● https://github.com/Covantec/entrenamiento.desarrollo _plone/issues/new
  • 47. Copyright (c) 2010 - 2015 Leonardo J. Caballero GCopyright (c) 2010 - 2015 Leonardo J. Caballero G. Esta obra está sujeta a la licenciaEsta obra está sujeta a la licencia Reconocimiento-Reconocimiento- CompartirIgual 3.0 Venezuela de Creative CommonsCompartirIgual 3.0 Venezuela de Creative Commons.. Para ver una copia de esta licencia, visite la siguientePara ver una copia de esta licencia, visite la siguiente dirección URL:dirección URL: ● http://creativecommons.org/licenses/by-sa/3.0/ve/http://creativecommons.org/licenses/by-sa/3.0/ve/ Bajo los siguientes términos:Bajo los siguientes términos: ● Reconocimiento - Usted debe dar el crédito apropiado,Reconocimiento - Usted debe dar el crédito apropiado, proporcionar un enlace a la licencia, y de indicar si se hanproporcionar un enlace a la licencia, y de indicar si se han realizado cambios. Usted puede hacerlo de cualquierrealizado cambios. Usted puede hacerlo de cualquier manera razonable, pero no en una manera que sugiere elmanera razonable, pero no en una manera que sugiere el licenciante a usted o que apruebe su utilización.licenciante a usted o que apruebe su utilización. ● CompartirIgual - Si usted mezcla, transforma o crea nuevoCompartirIgual - Si usted mezcla, transforma o crea nuevo material a partir de esta obra, usted podrá distribuir sumaterial a partir de esta obra, usted podrá distribuir su contribución siempre que utilice la misma licencia que lacontribución siempre que utilice la misma licencia que la obra original.obra original. Licenciamiento