Component Architecture

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. You will be required to install zope.event which provides simple event framework. The zope.component package and it's dependencies are available in egg format from Python Package Index (PyPI).

You can install zope.component and it's dependencies 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 it's dependencies from PyPI and install it in your Python path.

If this is not working for you, you can install zope.component and it's dependencies 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.

  1. zope.interface
  2. zope.event
  3. zope.component

Projects

Here is a list of projects using Zope Component Architecture:

  1. Zope 3
  2. Zope 2
  3. Plone
  4. Creative Commons Publisher (Desktop)
  5. Gaphor (Desktop UML Tool)
  6. Silva
  7. Grok
  8. Sample Inventory
  9. SchoolTool
  10. EvoGrid (Genetic Algorithms Framework)
  11. Launchpad (Proprietary)
  12. (If you know any project using Zope Component Architecture, please add here)

There are two other major projects using zope.interface package:

  1. Twisted (Network/Web)
  2. Kiwi (Desktop)



( 101 subscribers )