Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Plone-driven Plone development (PD2)


Published on

Lightning talk at the Plone conference 2009. Describing an approach, where you model your site using Plone content and generate lots of code using Plone templating mechanisms.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Plone-driven Plone development (PD2)

  1. 1. PD 2 Plone Driven Plone Development Henning Rietz, Condat AG Plone Conference 2009 Budapest, 29.10.2009 IT from Berlin
  2. 2. What it means <ul><li>Model driven development </li></ul><ul><ul><li>The model is Plone content </li></ul></ul><ul><ul><li>Code generation by using views on this content </li></ul></ul><ul><ul><li> (Code is just a view on a domain model.) </li></ul></ul>
  3. 3. What we don‘t like <ul><li>Writing boilerplate code </li></ul><ul><li>Editing *.zcml, *.xml </li></ul><ul><li>Migration migraine (Plone 2  3  4  …) </li></ul><ul><li>Learning curve for new developers </li></ul>
  4. 4. What we love <ul><li>Plone </li></ul><ul><li>Model driven development </li></ul><ul><li>ArchGenXML </li></ul><ul><li>Application of design patterns </li></ul>
  5. 5. What we did – Set up <ul><li>Domain model (meta model) in UML </li></ul><ul><ul><li>Describes all the concepts of site development </li></ul></ul><ul><ul><li>Site, Section, Page, Viewlet, Type, Attribute, Form, DBTable etc. </li></ul></ul><ul><li>Layout model </li></ul><ul><ul><li>Concepts / structures for the code generation </li></ul></ul><ul><ul><li>File, Directory, FileSeries, FileGroup, etc. </li></ul></ul><ul><li>Model  AT Content (using ArchGenXML) </li></ul><ul><li>PageTemplates, DTML Templates for code generation, using domain model objects as contexts </li></ul>
  6. 6. What we do – daily work <ul><li>Model lives in ZEO server </li></ul><ul><li>Developers work with local ZEO Client, which writes to local file system </li></ul><ul><li>Describe customer site in terms of the domain model </li></ul><ul><li>Push the button </li></ul><ul><li>Make customer specific extensions </li></ul><ul><li>Iterate </li></ul>
  7. 7. What PD 2 does for you <ul><li>Generates .py, .pt, .cpt, .cpy, .xml, .sql, .zcml </li></ul><ul><li>Model can be accessed (and changed!) at runtime for generic parts </li></ul><ul><li>Homogenous environment, easy to extend </li></ul><ul><li>Makes your design patterns explicit </li></ul><ul><li>Helps new developers to become productive very fast </li></ul><ul><li>Prepares you for major changes in Plone architecture (e.g. AT  Dexterity) </li></ul><ul><li>Integrates different technologies in a single model </li></ul><ul><li>Documentation </li></ul> Henning Rietz,