Slideshare.net (beta)

 
Post to TwitterPost to Twitter
Post: 
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons

All comments

Add a comment on Slide 1

If you have a SlideShare account, login to comment; else you can comment as a guest


Showing 1-50 of 1 (more)

Lennart Regebro What Zope Did Wrong (And What To Do Instead)

From wooda, 11 months ago

An overview about the problems with Zope2 and Zope3 and how to fix more

1014 views  |  0 comments  |  0 favorites  |  58 downloads
 

Categories

Add Category
 
 
 
 

Groups / Events

 
Embed
options

More Info

This slideshow is Public
Total Views: 1014
on Slideshare: 1014
from embeds: 0

Slideshow transcript

Slide 1: What Zope did wrong (and what to do instead) Lennart Regebro EuroPython 2007, Vilnius

Slide 2: Zope is zuper!

Slide 3: First!

Slide 4: Object oriented!

Slide 5: Python!

Slide 6: Open source!

Slide 7: Batteries included!

Slide 8: Secure!

Slide 9: Easy!

Slide 10: And many other exclamation marks!!!

Slide 11: What Zope2 did right

Slide 12: Used Python

Slide 13: ZODB

Slide 14: DTML/ZPT

Slide 15: Batteries included

Slide 16: Easy entry into development

Slide 17: Zope2: The dead-ends

Slide 18: The ZODB pile of scripts

Slide 19: ZClasses

Slide 20: Disk-based products

Slide 21: Never ends Starts o easy

Slide 23: It's unpythonic!

Slide 24: Products instead of modules

Slide 25: Way to much magick!

Slide 26: Zope is the Application (not the library)‫‏‬

Slide 27: Maybe more?

Slide 28: Zope 3: Knight in shining armour!

Slide 30: Zope 3?

Slide 31: Zope 3!

Slide 32: To complicated

Slide 33: <configure xmlns=\"http://namespaces.zope.org/zope\" xmlns:browser=\"http://namespaces.zope.org/browser\" xmlns:hello=\"http://namespaces.zope.org/hello\"> <content class=\".hello.Hello\"> <require permission=\"zope.Public\" interface=\".interfaces.IHello\" set_schema=\".interfaces.IHello\" /> </content> <browser:defaultView for=\".interfaces.IHello\" name=\"edit.html\" /> <browser:addMenuItem class=\".hello.Hello\" title=\"Add Hello\" permission=\"zope.Public\" for=\"*\" />

Slide 34: Phew... Ugh.. .

Slide 35: Zope3: Death by abstraction

Slide 37: It's unpythonic!

Slide 38: XML

Slide 39: (So, not so unpythonic as people think)‫‏‬

Slide 40: In J2EE: A mail service API Implementation neutral Req: J2EE Not web-only The JavaMail API!

Slide 41: In Zope 3: A mail service API Implementation neutral Req: components Not web-only zope.app.mail

Slide 42: Zope 3: The long march

Slide 43: Development of Zope 2 slowed down

Slide 44: Documentation no longer updated

Slide 45: A general waiting for Godot

Slide 46: Backwards compatibility

Slide 47: Didn't happen

Slide 48: Forwards compatibility

Slide 49: Not Yet

Slide 50: Never ends Starts o easy

Slide 51: Phew... Ugh.. .

Slide 52: 2 + 3 = Five Argh! Ugh.. .

Slide 53: Low entry treshold and all the power of a big framework without dead ends?

Slide 56: GUI schema/form editor Information Manager TTW Layer GUI workflow editor IT department A CMS, ERP or similar Site Layer Site developer A Web application server Application Layer Application developer Application Layer API Language Component Architecture Core Layer Core developer Loads of components

Slide 57: Pythonic Use existing modules and APIs if possible − The whole application framework is a library − Highly modular Pick and choose from the modules − Modify and replace internal components −

Slide 58: Too much freedom?

Slide 59: Start with a finished application!

Slide 60: How can we accomplish this?

Slide 61: Python

Slide 62: A setup framework

Slide 63: Zope Component Architecture

Slide 64: Zope 3 the libraries

Slide 65: Grok

Slide 66: Information Manager GUI Tools IT department The CMS/ERP Site developer Application developer Grok Component Core developer Architecture