Zope - Zope

Zope
Zope logo.png
Tipo de site
Desenvolvimento de framework web Python
Disponível em inglês
Criado por Zope Corporation
editor Zope Corporation
URL zope .readthedocs .io
Comercial Não
Cadastro Nenhum
Lançado Julho de 1999 ( 1999-07 )
Status atual Ativo
Licença de conteúdo
Licença Pública Zope

Zope é uma família de servidores de aplicativos da web gratuitos e de código aberto escritos em Python e sua comunidade online associada. Zope significa "Z Object Publishing Environment", e foi o primeiro sistema a usar a agora comum metodologia de publicação de objetos para a web. O Zope foi chamado de aplicativo Python killer , um aplicativo que ajudou a colocar o Python em destaque.

Nos últimos anos, a comunidade Zope gerou vários frameworks web adicionais com objetivos e princípios díspares, mas compartilhando filosofia, pessoas e código-fonte. O Zope 2 ainda é o mais difundido desses frameworks, em grande parte graças ao sistema de gerenciamento de conteúdo Plone , que roda no Zope 2. BlueBream (anteriormente chamado de Zope 3) é menos difundido, mas é a base de vários sites grandes, incluindo o Launchpad . Grok foi iniciado como uma estrutura mais amigável ao programador, "Zope 3 para homens das cavernas", e em 2009 o Pyramid ganhou popularidade na comunidade Zope como uma estrutura minimalista baseada nos princípios do Zope.

História

A Zope Corporation foi formada em 1995 em Fredericksburg, Virgínia, sob o nome Digital Creations, como uma joint venture com a InfiNet (uma joint venture da rede de jornais). A empresa desenvolveu um motor de anúncios classificados para a Internet. Em 1997, a empresa tornou-se privada e independente. Os engenheiros de software da empresa são liderados pelo CTO Jim Fulton. PythonLabs, criadores do Python, tornou-se parte da empresa em 2000 (o fundador do Python, Guido van Rossum, deixou a Zope Corp em 2003).

O que agora é conhecido como Zope 2 começou com a fusão de três produtos de software separados - Bobo, Document Template e BoboPOS - no servidor de aplicação Principia. A pedido de seu maior investidor, Opticality Ventures, Principia foi relançado como software livre sob o nome de Zope em 1998. Bobo, e portanto Zope, foi a primeira solução de publicação de objetos na Web .

Em novembro de 2004, o Zope 3 foi lançado. Zope 3 é uma reescrita completa que preserva apenas o banco de dados de objetos ZODB original . Ele se destina diretamente ao desenvolvimento de aplicativos da Web corporativos usando os mais novos paradigmas de desenvolvimento. Zope 3 é, entretanto, não compatível com Zope 2, então você não pode rodar aplicações Zope 2 no Zope 3. Ele foi originalmente planejado para introduzir uma camada de compatibilidade retroativa para que o software Zope 2 rodasse no Zope 3. Ao invés de um módulo conhecido como Five introduziu os novos paradigmas do Zope 3 no Zope 2, embora a compatibilidade total também não seja possível dessa forma.

A existência de dois frameworks Web incompatíveis chamados Zope causou muita confusão. Em resposta, em janeiro de 2010, o Zope 3 foi renomeado para "BlueBream". "Zope" e "brema azul" são nomes de um tipo de peixe, Ballerus ballerus .

Fundação Zope

Fundação Zope
Fundado Março de 2006 ; 15 anos atrás ( 2006-03 )
Modelo sem fins lucrativos
Foco Software livre
Método Licença Pública Zope
Local na rede Internet Foundation .zope .org

A Fundação Zope é uma organização que promove o desenvolvimento da plataforma Zope apoiando a comunidade que desenvolve e mantém os componentes de software relevantes. A comunidade inclui software de código aberto, contribuidores de documentação e infraestrutura da web, bem como consumidores de negócios e organizações da plataforma de software. Ele gerencia os sites zope.org, uma infraestrutura para colaboração de código aberto.

Versões do Zope

Zope
Captura de tela
Zope-screenshot.png
Interface de gerenciamento do Zope em uma janela do navegador da web.
Desenvolvedor (s) Zope Corporation
lançamento inicial 1998 ; 23 anos atrás ( 1998 )
Versão estável
5.1.1  Edite isso no Wikidata / 10 de fevereiro de 2021 ; 8 meses atrás ( 10 de fevereiro de 2021 )
Escrito em Pitão
Sistema operacional Plataforma cruzada
Modelo Servidor de aplicação web
Licença Licença Pública Zope
Local na rede Internet www .zope .org Edite isso no Wikidata

Zope 2

Um site Zope normalmente é composto de objetos em um banco de dados de objetos do Zope , não arquivos em um sistema de arquivos , como é normal com a maioria dos servidores web . Isso permite que os usuários aproveitem as vantagens das tecnologias de objetos, como o encapsulamento . Zope mapeia URLs para objetos usando a hierarquia de contenção de tais objetos; os métodos também são considerados contidos em seus objetos. Os dados também podem ser armazenados em outros bancos de dados ou no sistema de arquivos, mas o ZODB é a solução mais comum.

O Zope fornece dois mecanismos para modelos HTML : Document Template Markup Language (DTML) e Zope Page Templates (ZPT). DTML é uma linguagem baseada em tag que permite a implementação de scripts simples nos modelos. A DTML possui disposições para inclusão de variáveis, condições e loops. No entanto, a DTML pode ser problemática: tags DTML intercaladas com documentos HTML não válidos de formulários HTML e seu uso requer cuidado ao incluir a lógica em modelos, para manter a legibilidade do código. O uso de DTML é desencorajado por muitos desenvolvedores líderes do Zope. ZPT é uma tecnologia que corrige as deficiências do DTML. Os modelos ZPT podem ser documentos XML bem formados ou documentos HTML, nos quais todas as marcações especiais são apresentadas como atributos no namespace TAL ( Template Attribute Language ). O ZPT oferece um conjunto muito limitado de ferramentas para inclusão e repetição condicional de elementos XML. Consequentemente, os modelos geralmente são bastante simples, com a maioria das lógicas implementadas no código Python. Uma vantagem significativa dos modelos ZPT é que eles podem ser editados na maioria dos editores gráficos de HTML. ZPT também oferece suporte direto para internacionalização .

O Zope 2 é a base do sistema de gerenciamento de conteúdo Plone , bem como do sistema de planejamento de recursos empresariais de código aberto ERP5 .

BlueBream

BlueBream
Desenvolvedor (s) Zope Corporation
lançamento inicial 2004 ; 17 anos atrás ( 2004 )
Versão estável
1.0 / 18 de janeiro de 2011 ; 10 anos atrás ( 18/01/2011 )
Escrito em Pitão
Sistema operacional Plataforma cruzada
Modelo Servidor de aplicação web
Licença Licença Pública Zope
Local na rede Internet bluebream .zope .org

BlueBream é uma reescrita pelos desenvolvedores do Zope do servidor de aplicação web Zope 2 . Foi criado com o nome de "Zope 3", mas a existência de dois frameworks incompatíveis com o mesmo nome causou muita confusão, e o Zope 3 foi renomeado para "BlueBream" em janeiro de 2010. BlueBream é distribuído sob os termos da Licença Pública do Zope e é, portanto, software livre .

O Zope 2 provou ser um framework útil para o desenvolvimento de aplicações Web, mas seu uso revelou algumas deficiências. Para citar alguns, a criação de produtos Zope 2 envolve copiar muito código clichê - código "mágico" - que precisa estar lá, e a interface de gerenciamento embutida é difícil de modificar ou substituir. O Zope 3 foi uma reescrita do software que tenta resolver essas deficiências enquanto retém as vantagens do Zope que levaram à sua popularidade. O BlueBream é baseado em uma arquitetura de componentes que facilita a combinação de componentes de software de várias origens escritos em Python . Embora originalmente pretendido como um substituto para o Zope 2, a Arquitetura de Componentes do Zope foi retrocedida para o Zope 2, começando com o Zope 2.8. Muitas plataformas Zope como o Plone estão passando pelo mesmo tipo de reescrita peça por peça. O primeiro lançamento de produção do novo software, Zope X3 3.0.0, foi lançado em 6 de novembro de 2004.

História

O projeto Zope 3 começou em fevereiro de 2001 como um esforço para desenvolver uma nova versão do Zope como uma reescrita quase completa, com o objetivo de reter os recursos de sucesso do Zope 2 enquanto tentava consertar algumas de suas deficiências. O objetivo era criar uma plataforma mais flexível e amigável para o desenvolvedor para a programação de aplicações web do que o Zope 2. O projeto começou com o desenvolvimento de uma arquitetura de componentes , que permite a estruturação do código em pequenas unidades composíveis com interfaces introspectivas. As interfaces são suportadas por um pacote de interface para fornecer a funcionalidade de interfaces explicitamente declaradas para a linguagem Python . O primeiro lançamento de produção do software, Zope X3, foi lançado em 6 de novembro de 2004. Em janeiro de 2010, o Zope 3 foi renomeado para BlueBream.

Tecnologia

O objetivo do projeto era permitir que os programadores usassem o Zope para expor objetos Python arbitrários como objetos modelo para a web sem a necessidade de fazer esses objetos cumprirem requisitos de comportamento específicos. No Zope 2 havia muitos requisitos de comportamento para permitir que os objetos participassem do framework, o que resultou em uma grande quantidade de classes base mixin e atributos especiais. BlueBream usa uma arquitetura de modelo / visualização, separando o código de apresentação do código de domínio do problema. Vistas e modelos são vinculados pela arquitetura do componente.

As bibliotecas subjacentes ao BlueBream têm evoluído para uma coleção de bibliotecas úteis para o desenvolvimento de aplicativos da web, em vez de um único servidor de aplicativos monolítico. BlueBream inclui pacotes separados para interfaces, arquitetura de componentes, servidor HTTP, editor, banco de dados de objetos do Zope (ZODB), modelos de páginas do Zope, I18N, política de segurança e assim por diante. A arquitetura do componente é usada para uni-los. A arquitetura do componente é configurada usando ZCML (Zope Configuration Markup Language), uma linguagem de arquivo de configuração baseada em XML.

O projeto Zope 3 foi pioneiro na prática de sprints para o desenvolvimento de software de código aberto . Sprints são sessões de desenvolvimento intensivo em que os programadores, geralmente de países diferentes, se reúnem em uma sala e trabalham juntos por alguns dias ou mesmo várias semanas. Durante os sprints, várias práticas extraídas do desenvolvimento ágil de software são usadas, como programação em pares e desenvolvimento orientado a testes . Além do objetivo de desenvolver software, os sprints também são úteis para desenvolvedores separados geograficamente se encontrarem pessoalmente e atrair novas pessoas para o projeto. Eles também servem como uma forma de os participantes aprenderem uns com os outros.

O BlueBream é considerado um framework estável, usado em projetos de produção em todo o mundo, principalmente o Launchpad .

Zope Toolkit

Como resultado do desenvolvimento do Zope 3 / BlueBream, agora existem muitos pacotes Python independentes usados ​​e desenvolvidos como parte do BlueBream, e embora muitos deles sejam utilizáveis ​​fora do BlueBream, muitos não são. O projeto Zope Toolkit (ZTK) foi iniciado para esclarecer quais pacotes podem ser usados ​​fora do BlueBream e para melhorar a reutilização dos pacotes. Portanto, o Zope Toolkit é uma base para os frameworks Zope. Zope 2.12 é o primeiro lançamento de um framework web que se baseia no Zope Toolkit, e Grok e BlueBream foram configurados para ter lançamentos baseados no ZTK durante 2010.

Grok

Em 2006, o projeto Grok foi iniciado por vários desenvolvedores do Zope 3 que queriam tornar a tecnologia do Zope 3 mais ágil em uso e mais acessível para os novatos. Grok tem visto desde então lançamentos regulares e sua tecnologia central (Martian, grokcore.component) também está encontrando aceitação em outros projetos baseados em Zope 3 e Zope 2.

Zope 4

No final de 2017, o desenvolvimento começou no Zope 4. Zope 4 é um sucessor do Zope 2.13, fazendo muitas mudanças que não são compatíveis com versões anteriores do Zope 2.

Zope 5

Zope 5 foi lançado em 2020.

Zope Page Templates

Como mencionado anteriormente, os Zope Page Templates são eles próprios documentos XHTML, o que significa que podem ser vistos e editados usando editores HTML normais ou ferramentas compatíveis com XHTML (uma grande vantagem em comparação com outras linguagens de template usadas para aplicações Web). Os modelos também podem ser verificados quanto à conformidade com o XHTML, para que você possa ter certeza de que eles se expandirão automaticamente para o XHTML adequado.

No entanto, esses modelos de página não devem ser renderizados como estão. Em vez disso, eles são marcados com elementos e atributos adicionais em namespaces XML especiais (veja abaixo). Essas informações adicionais são usadas para descrever como o gabarito de página deve ser processado.

Aqui estão alguns exemplos básicos. Para incluir condicionalmente um elemento específico, como um elemento div , basta adicionar o atributo tal: condition ao elemento da seguinte maneira:

<div tal:condition="...">
  ...
</div>

Para controlar o que aparece dentro de um elemento, use o atributo tal: content como este:

<h1><span tal:content="..."/></h1>
...

Finalmente, para introduzir ou substituir valores de atributos, use o atributo tal: attribute como abaixo. Você pode usar Python para alterar o href em tempo de execução.

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

Esta é uma explicação muito superficial dos Templates de Página do Zope. O comportamento dos Templates de Página do Zope é quase completamente descrito por uma linguagem de template , fixada nas especificações TAL, TALES e METAL:

Software notável usando Zope

SchoolTool é um sistema de informação de estudante de código aberto que usa Zope.
Plone é um sistema de gerenciamento de conteúdo de código aberto que usa Zope.

Veja também

Referências

links externos