À l'occasion de la sortie de Zope 3.3.0 voici une micro présentation permettant d'appréhender rapidement ce qu'offre Zope 3 pour le développeur web.
Zope est un serveur d'application web écrit en
Python. Les éléments (documents, images, templates ..) sont des objets stockés dans la base de données objets (ZODB) et sont publiés sur différents protocoles : HTTP, FTP, WebDAV, XML-RPC. On ne parle plus en termes de pages mais d'objets auxquels on applique des méthodes (vue, action, etc.). L'ensemble peut être entièrement piloté par une interface Web.
Zope 3 est une réécriture complète de Zope 2 sous forme d'une architecture à base de composants. De nombreuses versions sont apparues depuis 3 ans et il est aujourd'hui utilisable et utilisé en production (par ex. le
Launchpad d'Ubuntu ou le projet
SchoolTool).
Zope 3 permet d'aborder la puissance de Zope de manière plus directe et plus propre. Il est plus cohérent, plus homogène, plus léger et de plus en plus simple au fil des versions. Il est conçu dès le départ pour les projets complexes, mais il est maintenant possible de faire de petits sites et c'est probablement la meilleure façon d'apprendre progressivement. Néanmoins, il est préférable d'être à l'aise avec la programmation objet et les
design patterns. La modularité et la souplesse de Zope 3 rendent la plupart de ses composants indépendants du serveur d'application. À l'opposé, il est possible de réutiliser des produits externes sans les modifier grâce à l'écriture d'adaptateurs. L'accent est mis sur les notions d'interfaces, de tests unitaires et fonctionnels, et d'autodocumentation.
Vous trouverez dans la suite de l'article une liste des fonctionnalités de Zope 3, ainsi que deux exemples simples et concrets d'utilisation des technologies zope : la ZODB et les ZPT.
Zope 3 est sous licence ZPL 2, compatible avec la GPL.