Welcome to the Zope Component Architecture (ZCA) wiki page. This page is created to provide information about ZCA. Here, you can see an introduction, installation instructions and few articles. There is also a list of projects using ZCA.
Introduction
ZCA is about how to create reusable components, but not reusable components itself. You can see many packages built on top of Zope component architecture in Python Package Index also in Zope subversion repository .
A component is a reusable object with introspectable interfaces. Also components are cohesive and decoupled objects. A component provides an interface implemented in a class. It doesn't matter how a component is implemented, the important part is that it complies with its interface contracts. An interface is an object that describes how you work with a particular component. Using Zope component architecture we can spread the complexity of systems over multiple cooperating components. Zope component architecture help us to create two basic kinds of components, adapters and utilities.
Installation
The zope.component package represents the core of Zope component architecture. Together with the zope.interface package, it provides facilities for defining, registering and looking up components. The zope.component and zope.interface are available in egg format from Python Package Index (PyPI).
You can install zope.component and zope.interface using easy_install, provided you have internet connection. To install zope.component you can enter this command:
easy_install zope.component
This command will download zope.component and zope.interface from PyPI and install it in your Python path.
If this is not working for you, you can install zope.component and zope.interface offline after downloading the packages from PyPI. You can install packages in the order given below. For Windows, you can download binary package of zope.interface.
Articles
- README.txt inside zope.interface
- Component Architecture Overview
- Component Architecture Approach
- README.txt inside zope.component
- The Zope 3 Component Architecture (Socket Example)
- http://wiki.zope.org/zope3/components.html
- Zope Guide Components
- http://griddlenoise.blogspot.com/2005/12/zope-component-architecture-interfaces.html
- http://griddlenoise.blogspot.com/2005/12/zope-component-architecture-one-way-to.html
- http://plone.org/documentation/tutorial/borg/a-whirlwind-tour-of-zope-3
- http://martinaspeli.net/articles/component-architecture-design-lessons
- ZCA book (PDF)
- Blog post by Lennart Regebro
- http://www.bud.ca/blog/disambiguating-the-duck
- http://griddlenoise.blogspot.com/2007/05/abc-may-be-easy-as-123-but-it-cant-beat.html
- http://twistedmatrix.com/projects/core/documentation/howto/components.html
- http://www.bud.ca/blog/the-great-python-component-swap-meet
- http://rhodesmill.org/brandon/adapters/
- http://shane.willowrise.com/archives/promoting-the-zope-component-architecture/
- https://lists.secondlife.com/pipermail/pyogp/2008-July/000021.html (Christian Scholz's Mail Part 1)
- https://lists.secondlife.com/pipermail/pyogp/2008-July/000022.html (Christian Scholz's Mail Part 2)
- https://lists.secondlife.com/pipermail/pyogp/2008-July/000025.html (Christian Scholz's Mail Part 3)
- https://lists.secondlife.com/pipermail/pyogp/2008-July/000026.html (Christian Scholz's Mail Part 4)
- http://mrtopf.de/blog/an-introduction-to-the-zope-component-architecture/
- http://www.slideshare.net/mikerhodes/look-again-at-the-zca (slides)
- http://fridge.pov.lt/~alga/ep2010/ep2010-agejevas.html#1 (slides)
- http://grok.zope.org/about/component-architecture
- http://plone.org/products/dexterity/documentation/manual/five.grok
- http://docs.repoze.org/bfg/1.3/narr/zca.html
- http://faassen.n--tree.net/blog/view/weblog/2009/11/06/0
- http://hillview.1on.de/archives/157-Theres-nothing-left-to-see.html
- http://pypi.python.org/pypi/grokcore.component
- http://www.martinaspeli.net/articles/a-java-component-architecture
- http://www.stereoplex.com/2007/dec/28/adapters-in-django-and-the-revenge-of-zope/
- http://www.plope.com/Members/chrism/pluginizing_an_app
Criticism
(Criticism is added here for the record, please read the comments also)
- http://blog.ianbicking.org/zope-3-critique.html
- http://web.archive.org/web/20071109215151/http://www.z3lab.org/sections/blogs/jean-marc-orliaguet/2006_09_29_zope-component
- http://web.archive.org/web/20071109215157/http://www.z3lab.org/sections/blogs/jean-marc-orliaguet/2006_10_02_zope-component
- http://web.archive.org/web/20071109215229/http://www.z3lab.org/sections/blogs/jean-marc-orliaguet/2006_10_10_zope3-presentation-layer
- http://www.coactivate.org/projects/topp-engineering/blog/2008/10/20/what-bothers-me-about-the-component-architecture/
- http://mockit.blogspot.com/2009/11/emperors-new-clothes.html
- http://philikon.wordpress.com/2008/09/17/what-zope-can-learn-from-mozilla/
Projects
Here is a list of projects using Zope Component Architecture:
- Zope 3
- Zope 2
- Plone
- Creative Commons Publisher (Desktop)
- Gaphor (Desktop UML Tool)
- Silva
- Grok
- Sample Inventory
- SchoolTool
- EvoGrid (Genetic Algorithms Framework)
- Launchpad (Proprietary)
- (If you know any project using Zope Component Architecture, please add here)
There are few other projects using zope.interface package: