Zope 3 Developer's Handbook

Overview

Be the first in line when the green flag for Zope 3 goes down with the help of the Zope Developer's Handbook. This collection of cookbook recipes provides easy-to-follow solutions to common problems you may face as a Zope or Python developer when beginning to implement the Zope 3 open-source application server. Utilize the book's solutions-oriented, task-based structure, as well as the supporting website for code used in each recipe, to help build your Zope components. Stay at the front of the line with the Zope ...

See more details below
Paperback
$50.01
BN.com price
(Save 9%)$54.99 List Price
Other sellers (Paperback)
  • All (12) from $1.99   
  • New (4) from $6.59   
  • Used (8) from $1.99   
Sending request ...

Overview

Be the first in line when the green flag for Zope 3 goes down with the help of the Zope Developer's Handbook. This collection of cookbook recipes provides easy-to-follow solutions to common problems you may face as a Zope or Python developer when beginning to implement the Zope 3 open-source application server. Utilize the book's solutions-oriented, task-based structure, as well as the supporting website for code used in each recipe, to help build your Zope components. Stay at the front of the line with the Zope Developer's Handbook.

Read More Show Less

Product Details

  • ISBN-13: 9780672326172
  • Publisher: Sams
  • Publication date: 12/17/2004
  • Series: Developer's Library Series
  • Pages: 426
  • Product dimensions: 6.96 (w) x 9.10 (h) x 1.00 (d)

Meet the Author

Zope 3 Developer's HandbookAbout the Author

Stephan Richter is a doctoral student in physics at Tufts University in Somerville, Massachusetts. He has been part of the Zope community since the summer of 1999. He has been involved in many community activities, such as documentation and organizing the first EuroZope conference. Stephan has also consulted with many Zope solution providers, developed many add-on products, and published two community-written books on Zope. Since attending the first public Zope 3 sprint early in 2002, Stephan has been actively involved in developing Zope 3, and he has taken command of several subprojects, such as internationalization and documentation.

Read More Show Less

Read an Excerpt

IntroductionIntroduction

What is Zope? Although this sounds like a simple question that could be answered in a line or two, it is inadequate to say that it is an open-source application server or that it is a content management system. Both of these descriptions are true, but they really put a limit on Zope that simply does not exist. So, before we look at a more complete definition of Zope, let's discuss some of the solutions Zope has been used for.

As mentioned previously, many people use Zope as a content management system (CMS). CMSs are usually Web-based (browser-managed) systems. Basically, a user can manage the content of a page through a set of web forms, workflows, and editing tools. However, people have also used Zope for an entirely different CMS genre. Some companies, such as struktur AG, have successfully used Zope to interface with the

Zope is also commonly used as a Web application server, in which case it is used to build web-based applications, such as online shops or project management tools. Of course, Zope is also suitable for regular websites.

Zope can also be employed as a reliable back-end server, to help manage the logistics of a company's operations. In fact, bluedynamics.com in Austria built a logistic software program based on Zope 2 ZClasses and a relational database that was able to handle hundreds of thousands of transactions each day, from taking credit card information and billing the customer to ordering products from the warehouse, using

Now that you know about some of the uses of Zope, we can use the following more formal definition of Zope: Zope is an application and back-end server framework that allowsdevelopers to quickly implement protocols, build applications (usually web-based), and function as glue among other Internet-enabled services.

Before it developed Zope, Zope Corporation reviewed many possible programming languages for developing the framework, such as Java, C/C++, Perl, and Python. After extensive research, the developers of Zope found that only Python would give them a competitive advantage compared to the other large framework providers, such as IBM and BEA.Powerful Python

Python is a high-level, object-oriented scripting language that produces—by design—clean code through mandatory indentation. Although Perl is also an interpreted scripting language, it lacks the cleanness and object-orientation of Python. Java, on the other hand, provides a nice object-oriented approach, but it fails to provide powerful tools to build applications quickly. So it is not surprising that Python is used in a wide variety of real-world situations, such as by NASA, which uses Python to interpret simulation data and connect various small C/C++ programs. Also, Mailman, the well-known mailing list manager, was developed using Python. Academics use this easy-to-learn language for their introductory programming courses.

Because Python is such an integral part of the understanding of Zope, you should know it well. If you are looking for some introductory documentation, you should start with the tutorial that is available at the Python home page, http://www.python.org/doc/ current/tut/tut.html. Also, there are a wide variety of books on Python, including Python Web Programming by Steve Holden, Python Programming Patterns by Thomas Christopher, and Python How to Program by Harvey Deitel, et al.In the Beginning There Was...

Zope's is a classic open-source story, and knowing this story gives some background on why the software behaves the way it does.

Before Zope was born, Zope Corporation (which was originally named Digital Creations) developed and distributed three separate products, called Bobo, Principia, and Aqueduct. Bobo was an object publisher written in Python, which allowed a developer to publish objects as pages on the Web. It also served as an object database and an object request broker (ORB), converting URLs into object paths. Most of this base was implemented by Jim Fulton in 1996, after he gave a frustrating Python CGI tutorial at the International Python Conference. Even though Bobo was licensed under a "free" license, it was not totally open-source, and Principia was its commercial big brother.

In 1998, Hadar Pedhazur, a well-known venture capitalist, convinced Digital Creations to open up its commercial products and publish them as open source under the name Zope. Zope stands for "Z Object Publishing Environment." The first Zope release was 1.7, and it came out in December 1998. Paul Everitt, former CEO, and all the other people at Zope Corporation, converted their product company into a successful consultant firm.

In the summer of 1999, Zope Corporation published version 2.0, which is currently the stable release, expected to be replaced by Zope 3.0 in the next year. Zope gained a lot of popularity with the 2.x series; it is now included in all major Linux distributions, and many books have been written about it. Originally this was going to be a book on the Zope 2.x API, but with the beginning of the Zope 3.x development in late 2001, it seemed much more useful to do the documentation right and write an API book parallel to the development itself. In fact, when these words were originally written (in 2001), there was no Zope Management Interface (ZMI), and the initial security had just been recently implemented. Currently, the first stable version of Zope 3, X3.0.0, has just been released, and by the time you read this book, Zope X3.1 might already exist.Zope 3 Components

Zope 3 makes use of many of the latest and hottest development patterns and technologies, with "a twist," as Jim Fulton likes to say. But Zope 3 also reuses some of the parts that were developed for previous versions. Users will be glad to find that Acquisition (but in a very different form) is available again, as are Zope page templates (ZPT) and Document Template Markup Language (DTML), although with less emphasis. Also, Zope 3 contains a ZMI, but this ZMI has been completely developed from scratch in a modular fashion so that components can be reused and the entire GUI can also be altered as desired.

But DTML, ZPT, and Acquisition are not the only components to receive a new face in Zope 3; external data handling has also been totally reworked to make external data play better together with the internal persistence framework, so that the system can take advantage of transactions and event channels. Furthermore, the various external data sources are now handled much more generically and are therefore more transparent to the developer. But which external data sources are supported? By default, Zope 3 comes with a database adapter for Gadfly; additional adapters for PostGreSQL and other databases already exist, and many others will follow. Data sources that support

During the past five years (during the age of Zope 2), not only was Zope developed and improved, but many third-party products were written by members of the very active Zope community for their everyday need. These products range from hot fixes, database adapters, and Zope objects to a wide range of end-user software, such as e-commerce, content management, and e-learning systems. Some of these products have turned out to be very useful to a wide variety of people—so much so that their concepts have been incorporated into the Zope 3 core. The prime examples are the two localization and internationalization tools Localizer (by Juan David Ibáñez Palomar) and ZBabel (by Andrew K. Milton and Stephan Richter), whose existence significantly shaped the implementation of the localization and internationalization support of Zope 3. Another great product that has made it into the Zope 3 core, Formulator, was originally written by Martijn Faassen. Formulator allows the developer to define fields (representing some metadata of a piece of content) that represent data on the one side and HTML fields on the other. The developer can then combine fields in a form and have it displayed on the Web. Formulator was also provides a validator, which validates user-entered data on the server side. Formulator's concepts were modularized into schemas and forms/widgets and incorporated into Zope 3.

Altogether, the Zope framework is much cleaner now (and more Pythonic), and features that failed to make it into the Zope 2 core have been incorporated.The Goals of This Book

The main target audience for this book is developers who would like to develop on top of the Zope 3 framework; this book refers to these people as Zope developers. Python programmers will also find many of the chapters of this book interesting because they introduce concepts that could be used in other Python applications besides Zope. Python programmers could also use this book as an introduction to Zope.

In general, this book is arranged in such a way that you can easily understand the Zope 3 structure. Part I, "Zope

3 from a User's Point of View," gets you set up so that you can evaluate and develop with Zope 3. Part II, "The Ten-Thousand-Foot View," consists of chapters that are meant as introductions to various important concepts of Zope 3. If you are a hands-on developer, you might want to skip this part until you have done some development. Parts III, "Content Components—The Basics," and IV, "Content Components—Advanced Techniques," are the heart of the book, where you develop a new content component that implements many features over the course of 12 chapters. When you understand how to develop content components, you can face Part V, "Other Components," which introduces other components that might be important for your projects. Part VI, "Advanced Topics," is intended for people who want to use Zope technologies outside Zope 3. Part VII, "Writing Tests," is dedicated to various ways to write tests. The emphasis on testing is one of the most important philosophical transitions the Zope 3 development team has undergone.

This book should encourage you to start helping in the development of Zope 3. You might want to help enhance the Zope 3 core itself, or you might want to develop third-party packages, reaching from new content objects to entire applications, such as an e-commerce system. This book covers all the modules and packages required for you to start developing.

© Copyright Pearson Education. All rights reserved.

Read More Show Less

Table of Contents

I Zope 3 from a user's point of view
1 Installing Zope 3 7
2 The new web-based Zope user interface 15
3 Installing new Zope packages 23
4 Setting up virtual hosting 27
II The ten-thousand-foot view
5 The Zope 3 development process 33
6 An introduction to interfaces 41
7 The component architecture : an introduction 45
8 Zope schemas and forms 53
9 Introduction to the Zope configuration markup language (ZCML) 65
10 Introduction to Zope's 118n and L10n support 71
11 Metadata and the Dublin core 79
12 Porting applications from Zope 2 to Zope 3 85
III Content components - the basics
13 Writing new content objects 91
14 Adding views for content objects 111
15 Custom schema fields and form widgets 125
16 Securing components 135
17 Changing size information 141
18 Internationalizing packages 145
IV Content components - advanced techniques
19 Events and subscribers 159
20 Approval workflow for messages 177
21 Providing online help screens 191
22 Object-to-filesystem mapping, using FTP as an example 195
23 Availability of content via XML-RPC 211
24 Developing new skins 219
V Other components
25 Building and storing annotations 235
26 New principal-source plug-ins 247
27 Principal annotations 257
28 Creating new browser resources 265
29 Registries with global utilities 269
30 Local utilities 289
31 Vocabularies and related fields/widgets 305
32 Exception views 313
VI Advanced topics
33 Writing new ZCML directives 321
34 Implementing TALES namespaces 327
35 Changing traversal behavior 335
36 Registering new WebDAV namespaces 343
37 Using TALES outside page templates 353
38 Developing new TALES expressions 359
39 The life of a request 369
VII Writing tests
40 Writing basic unit tests 379
41 Doc tests : example-driven unit tests 385
42 Writing functional tests 389
43 Creating functional doc tests 395
44 Writing tests against interfaces 401
A Attribution-NonCommercial-NoDerivs license 2.0 407
B Zope public license (ZPL) version 2.1 413
Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)