Zope 3
From Wikipedia, the free encyclopedia
Zope 3 is the new generation of the popular Zope web application server, rewritten from scratch with a component architecture and which has evolved into a large library of reusable Python components. The first production release of the software, Zope X3, was released on November 6, 2004. Zope 3 is distributed under the terms of the Zope Public License[1] and is thus free software.
Contents |
[edit] History
The Zope 3 project started in February 2001 as an effort to develop a new version of Zope as a complete rewrite, retaining the successful features of Zope 2 and fixing its shortcomings, thus making it an easier and powerful platform for programming web applications. The project began with the development of a component architecture, allowing to factor software into clean reusable units with introspectable interfaces. Zope 3 introduced an interface package in order to provide the functionality of explicitly declared interfaces to the Python language.
[edit] Technology
The goal of the project was to enable programmers to use Zope in order to publish Python objects without imposing any restrictions on them, such as special base classes, magic attributes and such. The presentation code is separated from the problem domain code, and is linked together by the component architecture.
Zope 3 is considered by some people more of a collection of useful libraries for web application development rather than a monolithic application server. Zope 3 includes separate packages for interfaces, component architecture, HTTP server, publisher, Zope Object Database (ZODB), Zope Page Templates, I18N, security policy, and so on. All these components are glued together with ZCML, an XML based configuration file language, and can be used separately from other parts of Zope.
The project rigorously follows the test-driven development method; all the code is covered with unit tests. A practice of documenting the software designs with doctests has emerged. Doctests are text documentation with included executable snippets of code that look like transcripts of interactive Python sessions. In comparison with the conventional unit tests, doctests are much more readable and narrative-oriented, while retaining the benefits of automated unit tests.
The Zope 3 project pioneered the practice of sprints for open source software development. The sprints are intensive development sessions when programmers from different countries gather in one room and work together for a couple of days or even several weeks. The sprints are usually organized in a way which draws a lot from the Extreme Programming discipline of software development. Sprints are good for attracting new people to the project, getting some work done, and getting geographically separated developers to meet in person.
[edit] Current status
Zope 3 is in active development and is now considered a stable framework, used on production projects worldwide. After 3.3, the Zope 3 project has moved towards making the whole project small separately installed modules, and 3.4 will be the last release of Zope downloadable as one big file. Instead user of Zope 3 will install only those modules needed for the product using the new Python egg technology for package distribution.
To ease the transition from current projects using Zope 2 to the Zope 3 component architecture, the Five project makes the core functionalities of Zope 3 available to Zope 2 developers. The Zope 2.8 and later include Five. Several open source projects, including the Plone and Silva content management systems have started using Five to provide a migration path for their developers to Zope 3.
[edit] External links
[[Image:|32x28px]] | Free Software Portal |
- The Zope 3 project
- Five (Zope 3 in Zope 2)
- Zope 3 demos
[edit] References
- ^ FAQ - General 5: What is the license of Zope 3?. “Zope 3 is licensed under Zope Public License, Version 2.1 (ZPL).”