stringtranslate.com

Zope

Zope es una familia de servidores de aplicaciones web libres y de código abierto escritos en Python y su comunidad en línea asociada. Zope significa "Z Object Publishing Environment" y fue el primer sistema que utilizó la metodología de publicación de objetos ahora común para la Web. [2] [3] Zope ha sido llamada la aplicación asesina de Python , una aplicación que ayudó a poner a Python en el centro de atención. [4] [5]

En los últimos años, la comunidad Zope ha generado varios frameworks web adicionales con objetivos y principios dispares, pero que comparten filosofía, personas y código fuente. Zope 2 sigue siendo el más extendido de estos frameworks, en gran parte gracias al sistema de gestión de contenido Plone , que se ejecuta en Zope 2. BlueBream (antes llamado Zope 3) está menos extendido, pero es la base de varios sitios grandes, incluido Launchpad . Grok comenzó como un framework más amigable para los programadores, "Zope 3 para hombres de las cavernas", y en 2009 Pyramid ganó popularidad en la comunidad Zope como un framework minimalista basado en los principios de Zope.

Historia

Zope Corporation se formó en 1995 en Fredericksburg, Virginia, bajo el nombre de Digital Creations, como una empresa conjunta con InfiNet (una empresa conjunta de una cadena de periódicos). La empresa desarrolló un motor de anuncios clasificados para Internet. En 1997, la empresa pasó a ser de propiedad independiente y privada. Los ingenieros de software de la empresa están dirigidos por el director de tecnología Jim Fulton. PythonLabs, creadores de Python, pasó a formar parte de la empresa en 2000 (el fundador de Python, Guido van Rossum, dejó Zope Corp en 2003). [6]

Lo que hoy se conoce como Zope 2 comenzó con la fusión de tres productos de software independientes (Bobo, Document Template y BoboPOS) en el servidor de aplicaciones Principia. A instancias de su mayor inversor, Opticality Ventures, Principia se volvió a publicar como software libre bajo el nombre de Zope en 1998. Bobo, y por lo tanto Zope, fue la primera solución de publicación de objetos web . [2] [3]

En noviembre de 2004 se lanzó Zope 3. Zope 3 es una reescritura completa que conserva únicamente la base de datos de objetos ZODB original . Está directamente destinado al desarrollo de aplicaciones web empresariales utilizando los paradigmas de desarrollo más nuevos. Sin embargo, Zope 3 no es compatible con Zope 2, por lo que las aplicaciones de Zope 2 no se ejecutan en Zope 3. Originalmente, se pretendía introducir una capa de compatibilidad con versiones anteriores para que el software de Zope 2 se ejecutara en Zope 3. En su lugar, un módulo conocido como Five introdujo los nuevos paradigmas de Zope 3 en Zope 2, aunque tampoco es posible la compatibilidad total de esa manera.

La existencia de dos frameworks web incompatibles llamados Zope ha provocado mucha confusión. En respuesta, en enero de 2010, Zope 3 fue renombrado como "BlueBream". [7] [8] "Zope" y "blue bream" son los nombres de una especie de pez, el Ballerus ballerus .

Fundación Zope

La Fundación Zope es una organización que promueve el desarrollo de la plataforma Zope mediante el apoyo a la comunidad que desarrolla y mantiene los componentes de software relevantes. La comunidad incluye tanto a los contribuyentes de software de código abierto, documentación e infraestructura web, como a los consumidores empresariales y organizacionales de la plataforma de software. Administra los sitios web zope.org, una infraestructura para la colaboración de código abierto.

Versiones de Zope

Zope 2

Un sitio web Zope normalmente está compuesto por objetos en una base de datos de objetos Zope , no por archivos en un sistema de archivos , como es habitual en la mayoría de los servidores web . Esto permite a los usuarios aprovechar las ventajas de las tecnologías de objetos, como la encapsulación . Zope asigna direcciones URL a objetos utilizando la jerarquía de contención de dichos objetos; los métodos también se consideran contenidos en sus objetos. Los datos también se pueden almacenar en otras bases de datos o en el sistema de archivos, pero ZODB es la solución más común.

Zope ofrece dos mecanismos para la creación de plantillas HTML : Document Template Markup Language (DTML) y Zope Page Templates (ZPT). DTML es un lenguaje basado en etiquetas que permite la implementación de secuencias de comandos sencillas en las plantillas. DTML tiene disposiciones para la inclusión de variables, condiciones y bucles. Sin embargo, DTML puede ser problemático: las etiquetas DTML intercaladas con HTML forman documentos HTML no válidos, y su uso requiere cuidado al incluir lógica en las plantillas, para conservar la legibilidad del código. Muchos desarrolladores líderes de Zope desaconsejan el uso de DTML. ZPT es una tecnología que aborda las deficiencias de DTML. Las plantillas ZPT pueden ser documentos XML bien formados o documentos HTML, en los que todo el marcado especial se presenta como atributos en el espacio de nombres TAL ( Template Attribute Language ). ZPT ofrece un conjunto muy limitado de herramientas para la inclusión condicional y la repetición de elementos XML. En consecuencia, las plantillas suelen ser bastante simples, con la mayor parte de la lógica implementada en código Python. Una ventaja importante de las plantillas ZPT es que se pueden editar en la mayoría de los editores gráficos HTML. ZPT también ofrece compatibilidad directa con la internacionalización .

Zope 2 es la base del sistema de gestión de contenidos Plone , así como del sistema de planificación de recursos empresariales de código abierto ERP5 .

Besugo azul

BlueBream es una reescritura realizada por los desarrolladores de Zope del servidor de aplicaciones web Zope 2. Fue creado bajo el nombre de "Zope 3", pero la existencia de dos frameworks incompatibles con el mismo nombre causó mucha confusión, y Zope 3 fue renombrado "BlueBream" en enero de 2010. [11] [12] BlueBream se distribuye bajo los términos de la Licencia Pública Zope [13] y, por lo tanto, es software libre .

Zope 2 ha demostrado ser un marco útil para el desarrollo de aplicaciones web, pero su uso reveló algunas deficiencias. [ cita requerida ] Por nombrar algunas, la creación de productos Zope 2 implica copiar una gran cantidad de código repetitivo (código "mágico") que simplemente tiene que estar allí, y la interfaz de administración incorporada es difícil de modificar o reemplazar. Zope 3 fue una reescritura del software que intenta abordar estas deficiencias al tiempo que conserva las ventajas de Zope que llevaron a su popularidad. BlueBream se basa en una arquitectura de componentes [14] que facilita la mezcla de componentes de software de varios orígenes escritos en Python . Aunque originalmente se pensó como un reemplazo para Zope 2, la Arquitectura de componentes de Zope se ha retroportado a Zope 2, comenzando con Zope 2.8. Muchas plataformas Zope como Plone están pasando por el mismo tipo de reescritura pieza por pieza. La primera versión de producción del nuevo software, Zope X3 3.0.0, se lanzó el 6 de noviembre de 2004.

Historia

El proyecto Zope 3 comenzó en febrero de 2001 como un esfuerzo por desarrollar una nueva versión de Zope como una reescritura casi completa, con el objetivo de conservar las características exitosas de Zope 2 mientras se intentaban corregir algunas de sus deficiencias. El objetivo era crear una plataforma para la programación de aplicaciones web más flexible y amigable para los desarrolladores que Zope 2. El proyecto comenzó con el desarrollo de una arquitectura de componentes , que permite la estructuración del código en pequeñas unidades componibles con interfaces introspectables. Las interfaces están respaldadas por un paquete de interfaz para proporcionar la funcionalidad de interfaces declaradas explícitamente al lenguaje Python . La primera versión de producción del software, Zope X3, se lanzó el 6 de noviembre de 2004. En enero de 2010, Zope 3 pasó a llamarse BlueBream. [11]

Tecnología

El objetivo del proyecto era permitir a los programadores utilizar Zope para exponer objetos Python arbitrarios como objetos modelo en la web sin necesidad de hacer que estos objetos cumplieran requisitos de comportamiento particulares. En Zope 2 había muchos requisitos de comportamiento para permitir que los objetos participaran en el marco, lo que dio como resultado una gran cantidad de clases base y atributos especiales. BlueBream utiliza una arquitectura de modelo/vista, que separa el código de presentación del código del dominio del problema. Las vistas y los modelos están vinculados entre sí por la arquitectura de componentes.

Las bibliotecas subyacentes de BlueBream han ido evolucionando hasta convertirse en una colección de bibliotecas útiles para el desarrollo de aplicaciones web en lugar de un único servidor de aplicaciones monolítico. BlueBream incluye paquetes separados para interfaces, arquitectura de componentes, servidor HTTP, editor, Zope Object Database (ZODB), Zope Page Templates, I18N , política de seguridad, etc. La arquitectura de componentes se utiliza para unirlos. La arquitectura de componentes se configura utilizando un lenguaje de marcado de configuración de ZCML (Zope Configuration Markup Language), un lenguaje de archivo de configuración basado en XML.

El proyecto Zope 3 fue pionero en la práctica de sprints para el desarrollo de software de código abierto . [15] Los sprints son sesiones intensivas de desarrollo en las que los programadores, a menudo de diferentes países, se reúnen en una sala y trabajan juntos durante un par de días o incluso varias semanas. Durante los sprints se utilizan varias prácticas extraídas del desarrollo de software ágil , como la programación en pareja y el desarrollo basado en pruebas . Además del objetivo de desarrollar software, los sprints también son útiles para que los desarrolladores separados geográficamente se reúnan en persona y atraigan nuevas personas al proyecto. También sirven como una forma de que los participantes aprendan unos de otros.

BlueBream se considera un marco estable, utilizado en proyectos de producción en todo el mundo, especialmente Launchpad .

Kit de herramientas de Zope

Como resultado del desarrollo de Zope 3/BlueBream, ahora hay muchos paquetes Python independientes que se utilizan y desarrollan como parte de BlueBream y, aunque muchos de ellos se pueden utilizar fuera de BlueBream, muchos otros no. El proyecto Zope Toolkit (ZTK) se inició para aclarar qué paquetes se podían utilizar fuera de BlueBream y para mejorar la reutilización de los paquetes. Por lo tanto, Zope Toolkit es una base para los marcos de trabajo de Zope. Zope 2.12 es la primera versión de un marco de trabajo web que se basa en Zope Toolkit, y Grok y BlueBream tenían previsto lanzar versiones basadas en ZTK durante 2010.

Adivinanza

En 2006, un grupo de desarrolladores de Zope 3 inició el proyecto Grok con el objetivo de que la tecnología de Zope 3 fuera más ágil y accesible para los recién llegados. Desde entonces, Grok ha tenido lanzamientos regulares y su tecnología principal (Martian, grokcore.component) también está encontrando aceptación en otros proyectos basados ​​en Zope 3 y Zope 2.

Zope 4

A finales de 2017, comenzó el desarrollo de Zope 4. [16] Zope 4 es el sucesor de Zope 2.13, y realiza muchos cambios que no son compatibles con versiones anteriores de Zope 2.

Zope 5

Zope 5 se lanzó en 2020.

Plantillas de páginas de Zope

Como se mencionó anteriormente, las plantillas de página de Zope son documentos XHTML , lo que significa que se pueden ver y editar utilizando editores HTML normales o herramientas compatibles con XHTML (una gran ventaja en comparación con otros lenguajes de plantillas utilizados para aplicaciones web). También se puede verificar la compatibilidad de las plantillas con XHTML, por lo que puede estar bastante seguro de que se expandirán automáticamente al formato XHTML adecuado.

Sin embargo, estas plantillas de página no están pensadas para ser presentadas tal como están, sino que están marcadas con elementos y atributos adicionales en espacios de nombres XML especiales (ver a continuación). Esta información adicional se utiliza para describir cómo se debe procesar finalmente la plantilla de página.

A continuación se muestran algunos ejemplos básicos. Para incluir condicionalmente un elemento en particular, como un divelemento, simplemente agregue el tal:conditionatributo al elemento de la siguiente manera:

< div  tal:condición = "..." > ...</div>

Para controlar lo que aparece dentro de un elemento, use el tal:contentatributo de esta manera:

< h1 >< abarca  tal: contenido = "..." /></ h1 >...

Por último, para introducir o reemplazar valores de atributos, utilice el tal:attributesatributo como se indica a continuación. Puede utilizar Python para modificar el href en tiempo de ejecución.

< a  href = ""  tal:attributes = "href python:'http://someurl.com/%s'%someobject" > ... </ a >

Esta es una explicación muy somera de las plantillas de página de Zope. El comportamiento de las plantillas de página de Zope está descrito casi por completo mediante un lenguaje de plantillas , basado en las especificaciones TAL, TALES y METAL:

Software destacado que utiliza Zope

Véase también

Referencias

  1. ^ "Registro de cambios — Documentación de Zope 5.8.6".
  2. ^ de Reuven M. Lerner. "At the Forge - Assessing Ruby on Rails". Linux Journal . Consultado el 26 de marzo de 2010. Zope también fue pionero en la idea de publicación de objetos, en la que una URL describe el método que se debe llamar en un objeto en particular.
  3. ^ ab Philip J Eby (11 de diciembre de 2003). "Comentario sobre "Lisp y productividad"". Joel on Software. Archivado desde el original el 18 de febrero de 2009. Consultado el 26 de marzo de 2010. En 1997, Jim Fulton (director de tecnología de Zope Corp) desarrolló una técnica que llamó "publicación de objetos" y la implementó en una biblioteca llamada Python Object Publisher (también conocida como Bobo). La metáfora de publicación de objetos se encuentra en muchos kits de herramientas de Python en la actualidad; en otros lenguajes, solo se encuentra en forma limitada, en el mejor de los casos.
  4. ^ Lutz, Mark (2006). "18: Temas avanzados de Internet". Programación Python (3.ª edición). O'Reilly Media . ISBN 9780596554613. Consultado el 27 de marzo de 2010. El uso de Zope se ha extendido tan rápidamente que muchos Pythonistas lo han considerado como una aplicación revolucionaria para Python : un sistema tan bueno que naturalmente pone a Python en el centro de atención del desarrollo.
  5. ^ Jon Udell (7 de febrero de 2000). "Zope es la aplicación revolucionaria de Python". BYTE . Archivado desde el original el 2 de marzo de 2000. Consultado el 4 de junio de 2011 .
  6. ^ "Guido van Rossum deja Zope.com - Slashdot". desarrolladores.slashdot.org .
  7. ^ "Documentación de BlueBream". Archivado desde el original el 22 de enero de 2010. Consultado el 17 de enero de 2010 .
  8. ^ "Reunión de la Junta Directiva de la Fundación Zope 2010-10-14" . Consultado el 17 de enero de 2010 .
  9. ^ "Registro de cambios". 9 de septiembre de 2022. Consultado el 18 de octubre de 2022 .
  10. ^ "bluebream 1.0". pypi.python.org. 18 de enero de 2011. Consultado el 4 de noviembre de 2020 .
  11. ^ ab "1. Introducción — Documentación de BlueBream v1.0b4". bluebream.zope.org . Archivado desde el original el 22 de enero de 2010 . Consultado el 17 de enero de 2010 .
  12. ^ "Zope.dev - Recursos e información de Zope".
  13. ^ "Preguntas frecuentes - General 5: ¿Cuál es la licencia de Zope 3?". Archivado desde el original el 22 de agosto de 2009. Consultado el 17 de agosto de 2012. Zope 3 tiene licencia Zope Public License, versión 2.1 (ZPL).
  14. ^ "Arquitectura de componentes del wiki de Zope 3". 9 de mayo de 2008. Archivado desde el original el 9 de mayo de 2008.
  15. ^ "Zope 3 wiki SprintSchedule". Archivado desde el original el 14 de agosto de 2012 . Consultado el 17 de agosto de 2012 .
  16. ^ "Registro de cambios — Documentación de Zope 4.0". zope.readthedocs.io .

Enlaces externos