stringtranslate.com

zope

Zope es una familia de servidores de aplicaciones web gratuitos y de código abierto escritos en Python y su comunidad en línea asociada. Zope significa "Entorno de publicación de objetos Z" 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 una 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 marcos 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 contenidos Plone , que se ejecuta en Zope 2. BlueBream (anteriormente llamado Zope 3) está menos extendido pero es la base de varios sitios grandes, incluido Launchpad . Grok se inició como un marco más amigable para los programadores, "Zope 3 para cavernícolas", y en 2009 Pyramid ganó popularidad en la comunidad de Zope como un marco minimalista basado en los principios de Zope.

Historia

Zope Corporation se formó en 1995 en Fredericksburg, Virginia, con 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 CTO 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 ahora 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 fue relanzado como software libre con el nombre de Zope en 1998. Bobo, y por 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 sólo la base de datos de objetos ZODB original . Está destinado directamente 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 Zope 2 se ejecutara en Zope 3. En su lugar, se creó un módulo conocido como Five introdujo los nuevos paradigmas de Zope 3 en Zope 2, aunque la compatibilidad total tampoco es posible de esa manera.

La existencia de dos frameworks web incompatibles llamados Zope ha causado mucha confusión. En respuesta, en enero de 2010, Zope 3 pasó a llamarse "BlueBream". [7] [8] "Zope" y "besugo" son nombres de una especie de pez, Ballerus ballerus .

Fundación Zope

La Fundación Zope es una organización que promueve el desarrollo de la plataforma Zope apoyando a la comunidad que desarrolla y mantiene los componentes de software relevantes. La comunidad incluye tanto contribuyentes de software de código abierto, documentación e infraestructura web, como también empresas y organizaciones consumidoras de la plataforma de software. Gestiona los sitios web zope.org, una infraestructura para la colaboración de código abierto.

Versiones Zope

Zope 2

Un sitio web de Zope generalmente se compone de objetos en una base de datos de objetos de Zope , no de 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 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 proporciona dos mecanismos para la creación de plantillas HTML : Lenguaje de marcado de plantillas de documentos (DTML) y Plantillas de páginas Zope (ZPT). DTML es un lenguaje basado en etiquetas que permite la implementación de secuencias de comandos simples en las plantillas. DTML tiene disposiciones para 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 la 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 ( Plantilla Attribute Language ). ZPT ofrece un conjunto muy limitado de herramientas para la inclusión condicional y repetición de elementos XML. En consecuencia, las plantillas suelen ser bastante simples y la mayor parte de la lógica se implementa 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 apoyo directo a 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 .

Bream azul

BlueBream es una reescritura realizada por los desarrolladores de Zope del servidor de aplicaciones web Zope 2 . Fue creado bajo el nombre "Zope 3", pero la existencia de dos frameworks incompatibles con el mismo nombre causó mucha confusión, y Zope 3 pasó a llamarse "BlueBream" en enero de 2010. [11] [12] BlueBream se distribuye bajo los términos de la Licencia Pública Zope [13] y, por 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 necesaria ] Por nombrar algunos, 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 ahí, y la interfaz de administración integrada es difícil de modificar o reemplazar. Zope 3 fue una reescritura del software que intenta abordar estas deficiencias conservando al mismo tiempo las ventajas de Zope que llevaron a su popularidad. BlueBream se basa en una arquitectura de componentes [14] que facilita la combinación de componentes de software de diversos orígenes escritos en Python . Aunque originalmente se pensó como un reemplazo de Zope 2, la arquitectura de componentes de Zope se ha adaptado 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 intentaba corregir algunas de sus deficiencias. El objetivo era crear una plataforma más flexible y fácil de usar para programar aplicaciones web que Zope 2. El proyecto comenzó con el desarrollo de una arquitectura de componentes , que permite estructurar el 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 la necesidad de hacer que estos objetos cumplan requisitos de comportamiento particulares. En Zope 2 había muchos requisitos de comportamiento para permitir que los objetos participaran en el marco, lo que resultó en una gran cantidad de clases base mixtas y atributos especiales. BlueBream utiliza una arquitectura de modelo/vista, separando el código de presentación del código de dominio del problema. Las vistas y los modelos están vinculados entre sí mediante la arquitectura del componente.

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, base de datos de objetos Zope (ZODB), plantillas de páginas Zope, I18N, política de seguridad, etc. La arquitectura de componentes se utiliza para unirlos. La arquitectura del componente se configura utilizando ZCML (Zope Configuration Markup Language), un lenguaje de archivos 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 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 diversas prácticas extraídas del desarrollo ágil de software , como la programación en pares y el desarrollo basado en pruebas . Además del objetivo de desarrollar software, los sprints también son útiles para que los desarrolladores geográficamente separados se reúnan en persona y atraigan nuevas personas al proyecto. También sirven como una manera para que los participantes aprendan unos de otros.

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

Kit de herramientas Zope

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

Grok

En 2006, varios desarrolladores de Zope 3 iniciaron el proyecto Grok que querían hacer que la tecnología Zope 3 fuera más ágil de usar y más accesible para los recién llegados. Desde entonces, Grok ha visto 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 un sucesor de Zope 2.13 y realiza muchos cambios que no son compatibles con Zope 2.

Zope 5

Zope 5 se lanzó en 2020.

Plantillas de páginas de Zope

Como se mencionó anteriormente, las plantillas de páginas de Zope son en sí mismas 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 que las plantillas cumplan con XHTML, por lo que puede estar bastante seguro de que se expandirán automáticamente al XHTML adecuado.

Sin embargo, estas plantillas de página no deben representarse tal como están. En lugar de ello, están marcados con elementos y atributos adicionales en espacios de nombres XML especiales (ver más abajo). Esta información adicional se utiliza para describir cómo se debe procesar en última instancia la plantilla de página.

A continuación se muestran algunos ejemplos básicos. Para incluir condicionalmente un elemento 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 como este:

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

Finalmente, para introducir o reemplazar valores de atributos, utilice el tal:attributesatributo como se muestra 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 superficial de las plantillas de páginas de Zope. El comportamiento de las plantillas de páginas de Zope se describe casi por completo mediante un lenguaje de plantilla , fijado en las especificaciones TAL, TALES y METAL:

Software notable que utiliza Zope

Ver también

Referencias

  1. ^ "Registro de cambios: documentación de Zope 5.8.6".
  2. ^ ab Reuven M. Lerner. "At the Forge: evaluación de Ruby on Rails". Diario de Linux . 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). "Comentar sobre" Lisp y productividad"". Joel sobre 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 conocido como Bobo). La metáfora de la publicación de objetos se encuentra hoy en día en muchos kits de herramientas de Python; en otros idiomas se encuentra sólo en forma mutilada, en el mejor de los casos.
  4. ^ Lutz, Mark (2006). "18: Temas avanzados de Internet". Programación Python (3 ed.). Medios O'Reilly . 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 asesina de Python : un sistema tan bueno que naturalmente empuja a Python al centro de atención del desarrollo.
  5. ^ Jon Udell (7 de febrero de 2000). "Zope es la aplicación asesina de Python". BYTE . Archivado desde el original el 2000-03-02 . 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 del Consejo Directivo de la Fundación Zope 14-10-2010» . Consultado el 17 de enero de 2010 .
  9. ^ "Registro de cambios". 9 de septiembre de 2022 . Consultado el 18 de octubre de 2022 .
  10. ^ "dorada 1.0". pypi.python.org. 2011-01-18 . 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 la licencia pública Zope, versión 2.1 (ZPL).
  14. ^ "Arquitectura de componentes 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