SlideShare a Scribd company logo
1 of 10
Download to read offline
Plone Application Development Patterns                                 file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html




                  Plone Application Development Patterns
          Sally Kleinfeldt, The Nature Conservancy

          October 2007 -- Naples



          Overview
               Background
               First application: ConPro
               Second application: EAST
               Pattern Library
               Questions


          The Nature Conservancy
               Environmental nonprofit protecting ecologically important lands and waters
               Science-based approach
               117 million acres protected
               1 million members
               Work in 50 states and 30 countries
               3,000 employees


          Background - Technology
               Traditional IT shop
                    Supporting HR, Finance, database applications
                    Plus creating conservation applications
               Adopted Zope in 2000
                    Nature.org, intranet, internal applications
                    ZMI development, RDB storage


          Background - Technology
               Adopted Plone in 2004
                   ConserveOnline.org, internal applications
                   Filesystem development, RDB or ZODB storage


          Background - Applications
               Spatial and non-spatial
               Mix of data and content
               Users, roles, permissions important


1 of 10                                                                                                           11/1/07 5:52 PM
Plone Application Development Patterns                                    file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html


               Workflow sometimes
               Increasing need for custom applications for conservation
               Increasing need for cross-application integration


          ConPro - What Is It
               System to manage structured and unstructured information about our conservation projects
               Information previously managed in complex Excel spreadsheets, and associated documents, often
               in the field
               Need for import, export, versioning, locking, security, search


          ConPro - Requirements
               50+ page functional requirements
               Assumption of relational storage for ad hoc SQL queries
               Spreadsheet dictated the data model
               Users defined edit screen mockups based on the spreadsheet
               Versioning, security, workflow requirements less clear


          ConPro - Data Model
          Customer-specified data model for RDB was very complex.




          ConPro - Development
               Plone chosen for compatibility with ConserveOnline
               Unable to hire expert consultant to guide development


2 of 10                                                                                                              11/1/07 5:52 PM
Plone Application Development Patterns                                 file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html


               Initial focus on spreadsheet import/export, SQL methods, edit forms
               Design of classes, security, overall application left until the end


          ConPro - Development
               Archetypes stub objects for object security, the rest hand crafted SQL methods and page templates;
               workflow not used
               Customers changed their minds midstream about data model and edit forms
               Rescued by Plone experts and much effort


          ConPro - Results
               Late and overbudget - 30 person months
               ~400 hand written SQL methods
               50 hand written edit, display, report forms
               Ad hoc SQL queries never implemented
               Difficult to maintain and extend
               Big success with users!


          ConPro - Home Page




3 of 10                                                                                                           11/1/07 5:52 PM
Plone Application Development Patterns                          file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html



          ConPro - Project Info Page




          ConPro - Project Info Page
          Turn it on its side - here's all the information...




          ConPro - Project Viability




4 of 10                                                                                                    11/1/07 5:52 PM
Plone Application Development Patterns                                  file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html




          ConPro - Project Viability
          Turn it on its side - here's all the information...




          ConPro - Lessons
                Avoid excessive requirements phase for new/unclear applications
                Users should not dictate technology decisions
                Relational storage increases cost, avoid if possible
                Have guidance from experts on your first project, learn to do things The Plone Way
                Start with classes, security, overall application functioning; page templates later


          EAST - What Is It

5 of 10                                                                                                            11/1/07 5:52 PM
Plone Application Development Patterns                                  file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html


               Ecoregional Assessment Status Tool
               ERA: science-based analysis of an ecoregion to determine highest value areas for conservation
               New system for management to track status of this work
               <200 assessments, each with <20 attributes


          EAST - Requirements
               Well understood application
                    Initial version done in pure Zope prior to ConPro
               Informal project driven by developer to re-implement The Plone Way
               Customer flexible, no technology assumptions
               Simple application


          EAST - Class Diagram
          Developer and customer created the UML diagram together.




          EAST - Development
               Archetypes content types with ZODB storage
               UML modeling with ArchGenXML generating starter product
               Security and UI refinements added (listing, search, reports, view)


          EAST - Results
               1 week to develop
               2 content types, 23 page templates, workflow to track status


6 of 10                                                                                                            11/1/07 5:52 PM
Plone Application Development Patterns                               file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html


               Easy to maintain and extend
               Big success with users!

          Customer: quot;This has been my most pleasant development experience everquot;


          EAST - ERA Page




          Learning Lessons
               Our technology choices had been haphazard
               Need to base decisions on what works in our environment
               Consistency
               Repeatable development results


          Application Patterns
               Solution: define quot;application patternsquot;
                    A set of components, technologies, and tools
                    Used to create a certain type application
                    Good at solving certain types of problems


7 of 10                                                                                                         11/1/07 5:52 PM
Plone Application Development Patterns                                   file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html


                      In the context of our organization and level of development expertise


          Pattern Definition - Problem
               Internet or intranet
               Type of information (spatial, structured, unstructured)
               Sensitivity of information
               Amount of information
               Number of users, sessions
               Organizational level (global, regional, local)
               Community (conservation, marketing, finance, legal, etc.)


          Pattern Definition - Technology
               Components

               GIS, web, database, ORM, search, authentication, user management, security, workflow, error
               handling, logging, help system, etc.

               Platform and toolkit

               Development platform, language, testing frameworks, OS, etc.


          Pattern Definition - Technology
               Integration mechanisms

               Web services platforms, enterprise search, etc.

               Risks (security, business)

               Cost


          Plone Pattern - Problem
               Intranet

               Mix of structured and unstructured information, non-spatial or minimally

               Non-spatial or minimally spatial requirements

               (We use .Net framework with ESRI tools for spatial apps)

               Suitable when information is restricted to authorized users/groups


          Plone Pattern - Problem

8 of 10                                                                                                             11/1/07 5:52 PM
Plone Application Development Patterns                                   file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html


               Small to mid size (up to thousands of objects, not millions)
               Any number of TNC staff
               Any organizational level or community


          Plone Pattern - Technology
               Non-spatial or embedded maps only
               LDAP authentication
               Archetypes, ArchGenXML


          Plone Pattern - Technology
               ZODB storage unless special circumstances
                  Extra cost for RDB must be justified
                  MySQL supported - but not Oracle???


          When Is RDB Storage Justified?
          Good reasons:

               Legacy data that can't be moved
               Simultaneous access from other (legacy) tools


          When Is RDB Storage Justified?
          Bad reasons:

               Faster, more stable than ZODB

               Making reports with Crystal Reports etc.

               Ad hoc SQL queries by power users

               => Provide capability to periodically load data into the RDB


          How Fast Can We Make One?




9 of 10                                                                                                             11/1/07 5:52 PM
Plone Application Development Patterns                               file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html




           90 seconds at 900 degrees F (485 C)

           http://www.fornobravo.com/vera_pizza_napoletana/pizza_napoletana.html


           Pretty Fast...
           15 days to produce application with ZODB storage given UML diagram produced jointly by customer
           and developer with up to

                5 content types, 1 custom view per type
                5 reports and/or custom search pages
                Standard editing pages
                6 custom permissions, 2 custom roles, 1 custom workflow


           Plone Pattern - Cost Caveats
           Predictable cost requires:

                Use of shared product providing common elements
                     LDAP setup
                     Provide application mixin class with common behavior
                     Customize portal look and feel
                Better for users as well as developers


           Acknowledgements
           Eric Coffman, lead developer on these projects


           Questions




10 of 10                                                                                                        11/1/07 5:52 PM

More Related Content

What's hot

Rubymotion inspect 2014_review
Rubymotion inspect 2014_reviewRubymotion inspect 2014_review
Rubymotion inspect 2014_review
Bob Firestone
 
Presentación rs232 java
Presentación rs232 javaPresentación rs232 java
Presentación rs232 java
John Rojas
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScript
Kevin Whinnery
 

What's hot (20)

Why java is important in programming language?
Why java is important in programming language?Why java is important in programming language?
Why java is important in programming language?
 
130700548484460000
130700548484460000130700548484460000
130700548484460000
 
The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180The Ring programming language version 1.5.1 book - Part 4 of 180
The Ring programming language version 1.5.1 book - Part 4 of 180
 
Language Workbenches
Language WorkbenchesLanguage Workbenches
Language Workbenches
 
Java Intro
Java IntroJava Intro
Java Intro
 
The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184The Ring programming language version 1.5.3 book - Part 5 of 184
The Ring programming language version 1.5.3 book - Part 5 of 184
 
Rubymotion inspect 2014_review
Rubymotion inspect 2014_reviewRubymotion inspect 2014_review
Rubymotion inspect 2014_review
 
C c#
C c#C c#
C c#
 
OSCON Titanium Tutorial
OSCON Titanium TutorialOSCON Titanium Tutorial
OSCON Titanium Tutorial
 
Summer training presentation on "CORE JAVA".
Summer training presentation on "CORE JAVA".Summer training presentation on "CORE JAVA".
Summer training presentation on "CORE JAVA".
 
Introduction to Agile Software Development & Python
Introduction to Agile Software Development & PythonIntroduction to Agile Software Development & Python
Introduction to Agile Software Development & Python
 
ISS Art. How to do IT. Kotlin Multiplatform
ISS Art. How to do IT. Kotlin MultiplatformISS Art. How to do IT. Kotlin Multiplatform
ISS Art. How to do IT. Kotlin Multiplatform
 
Presentación rs232 java
Presentación rs232 javaPresentación rs232 java
Presentación rs232 java
 
IS L04 Programming Language
IS L04 Programming LanguageIS L04 Programming Language
IS L04 Programming Language
 
Core Java
Core JavaCore Java
Core Java
 
DSL development
DSL developmentDSL development
DSL development
 
The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.5.2 book - Part 5 of 181The Ring programming language version 1.5.2 book - Part 5 of 181
The Ring programming language version 1.5.2 book - Part 5 of 181
 
Write Better JavaScript
Write Better JavaScriptWrite Better JavaScript
Write Better JavaScript
 
Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
 
The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189The Ring programming language version 1.6 book - Part 6 of 189
The Ring programming language version 1.6 book - Part 6 of 189
 

Viewers also liked

The Metaverse Republic - Virtual Worlds Forum 2007
The Metaverse Republic - Virtual Worlds Forum 2007The Metaverse Republic - Virtual Worlds Forum 2007
The Metaverse Republic - Virtual Worlds Forum 2007
Antonio Bonanno
 

Viewers also liked (10)

Gitb[1]
Gitb[1]Gitb[1]
Gitb[1]
 
The Metaverse Republic - Virtual Worlds Forum 2007
The Metaverse Republic - Virtual Worlds Forum 2007The Metaverse Republic - Virtual Worlds Forum 2007
The Metaverse Republic - Virtual Worlds Forum 2007
 
componentes del ordenador
componentes del ordenadorcomponentes del ordenador
componentes del ordenador
 
Wageindicator Foundation: a Case Study
Wageindicator Foundation: a Case StudyWageindicator Foundation: a Case Study
Wageindicator Foundation: a Case Study
 
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
Duco Dokter - Plone for the enterprise market: technical musing on caching, C...
 
How to market Plone the Web2.0 way
How to market Plone the Web2.0 wayHow to market Plone the Web2.0 way
How to market Plone the Web2.0 way
 
Kamon Ayeva Let The Machine Work For You Using Plone Content Rules For Mo...
Kamon Ayeva   Let The Machine Work For You   Using Plone Content Rules For Mo...Kamon Ayeva   Let The Machine Work For You   Using Plone Content Rules For Mo...
Kamon Ayeva Let The Machine Work For You Using Plone Content Rules For Mo...
 
Veda Williams Project Management Secrets A Disciplined Approach To Develo...
Veda Williams   Project Management Secrets   A Disciplined Approach To Develo...Veda Williams   Project Management Secrets   A Disciplined Approach To Develo...
Veda Williams Project Management Secrets A Disciplined Approach To Develo...
 
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
Lennart Regebro   What Zope Did Wrong (And What To Do Instead)Lennart Regebro   What Zope Did Wrong (And What To Do Instead)
Lennart Regebro What Zope Did Wrong (And What To Do Instead)
 
Paul Everitt Community And Foundation Plones Past, Present, Future
Paul Everitt   Community And Foundation   Plones Past, Present, Future Paul Everitt   Community And Foundation   Plones Past, Present, Future
Paul Everitt Community And Foundation Plones Past, Present, Future
 

Similar to Sally Kleinfeldt - Plone Application Development Patterns

Karthik Balasubramanian (Resume)
Karthik Balasubramanian (Resume)Karthik Balasubramanian (Resume)
Karthik Balasubramanian (Resume)
karthik_bala
 
Ramkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developerRamkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developer
Ramkumar Shankar
 
Robin_Informatica
Robin_InformaticaRobin_Informatica
Robin_Informatica
Robin Goyal
 
PITSS General Presentation - Dec, 2012
PITSS General Presentation - Dec, 2012PITSS General Presentation - Dec, 2012
PITSS General Presentation - Dec, 2012
jgmarra
 
LaranEvansResume
LaranEvansResumeLaranEvansResume
LaranEvansResume
butest
 
Resume_ChuangCao
Resume_ChuangCaoResume_ChuangCao
Resume_ChuangCao
Chuang Cao
 
Vishal Soni-J2EE
Vishal Soni-J2EEVishal Soni-J2EE
Vishal Soni-J2EE
vishal soni
 

Similar to Sally Kleinfeldt - Plone Application Development Patterns (20)

UnnivmNew
UnnivmNewUnnivmNew
UnnivmNew
 
Subhadra Banerjee_latest
Subhadra Banerjee_latestSubhadra Banerjee_latest
Subhadra Banerjee_latest
 
Karthik Balasubramanian (Resume)
Karthik Balasubramanian (Resume)Karthik Balasubramanian (Resume)
Karthik Balasubramanian (Resume)
 
Naveen_Toppo
Naveen_ToppoNaveen_Toppo
Naveen_Toppo
 
Resume
ResumeResume
Resume
 
Ramkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developerRamkumar_python_perl_unix shell script developer
Ramkumar_python_perl_unix shell script developer
 
What to curate? Preserving and Curating Software-Based Art
What to curate? Preserving and Curating Software-Based ArtWhat to curate? Preserving and Curating Software-Based Art
What to curate? Preserving and Curating Software-Based Art
 
LUXproject functionality overview R11.8
LUXproject functionality overview R11.8LUXproject functionality overview R11.8
LUXproject functionality overview R11.8
 
Saptalopa_Resume - Copy
Saptalopa_Resume - CopySaptalopa_Resume - Copy
Saptalopa_Resume - Copy
 
Robin_Informatica
Robin_InformaticaRobin_Informatica
Robin_Informatica
 
PITSS General Presentation - Dec, 2012
PITSS General Presentation - Dec, 2012PITSS General Presentation - Dec, 2012
PITSS General Presentation - Dec, 2012
 
LaranEvansResume
LaranEvansResumeLaranEvansResume
LaranEvansResume
 
Resume_ChuangCao
Resume_ChuangCaoResume_ChuangCao
Resume_ChuangCao
 
Vishal Soni-J2EE
Vishal Soni-J2EEVishal Soni-J2EE
Vishal Soni-J2EE
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
Highly confidential security system - sole survivors - SRS
Highly confidential security system  - sole survivors - SRSHighly confidential security system  - sole survivors - SRS
Highly confidential security system - sole survivors - SRS
 
Resume
ResumeResume
Resume
 
redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)redpill Mobile Case Study (Salvation Army)
redpill Mobile Case Study (Salvation Army)
 
Dipalee Shah Resume
Dipalee Shah ResumeDipalee Shah Resume
Dipalee Shah Resume
 
Cochrane von Suchodoletz File Creation, Rendering and Formats
Cochrane von Suchodoletz File Creation, Rendering and FormatsCochrane von Suchodoletz File Creation, Rendering and Formats
Cochrane von Suchodoletz File Creation, Rendering and Formats
 

More from Vincenzo Barone

Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Vincenzo Barone
 
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Vincenzo Barone
 

More from Vincenzo Barone (20)

Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
Wichert Akkerman   Plone Deployment Practices   The Plone.Org SetupWichert Akkerman   Plone Deployment Practices   The Plone.Org Setup
Wichert Akkerman Plone Deployment Practices The Plone.Org Setup
 
Philipp Von Weitershausen Untested Code Is Broken Code
Philipp Von Weitershausen   Untested Code Is Broken CodePhilipp Von Weitershausen   Untested Code Is Broken Code
Philipp Von Weitershausen Untested Code Is Broken Code
 
Rocky Burt Subtyping Unleashed
Rocky Burt   Subtyping UnleashedRocky Burt   Subtyping Unleashed
Rocky Burt Subtyping Unleashed
 
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...Alec Mitchell   Relationship Building   Defining And Querying Complex Relatio...
Alec Mitchell Relationship Building Defining And Querying Complex Relatio...
 
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
Tom Lazar   Using Zope3 Views And Viewlets For Plone 3.0 Product DevelopmentTom Lazar   Using Zope3 Views And Viewlets For Plone 3.0 Product Development
Tom Lazar Using Zope3 Views And Viewlets For Plone 3.0 Product Development
 
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
Xavier Heymans   Plone Gov   Plone In The Public Sector. Panel Presenting The...Xavier Heymans   Plone Gov   Plone In The Public Sector. Panel Presenting The...
Xavier Heymans Plone Gov Plone In The Public Sector. Panel Presenting The...
 
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...Brent Lambert   Plone In Education A Case Study Of The Use Of Plone And Educa...
Brent Lambert Plone In Education A Case Study Of The Use Of Plone And Educa...
 
Wichert Akkerman - Plone.Org Infrastructure
Wichert Akkerman - Plone.Org InfrastructureWichert Akkerman - Plone.Org Infrastructure
Wichert Akkerman - Plone.Org Infrastructure
 
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...Philipp Von Weitershausen   Plone Age  Mammoths, Sabers And Caveen   Cant The...
Philipp Von Weitershausen Plone Age Mammoths, Sabers And Caveen Cant The...
 
Denis Mishunov Making Plone Theme 10 Most Wanted Tips
Denis Mishunov   Making Plone Theme   10 Most Wanted Tips Denis Mishunov   Making Plone Theme   10 Most Wanted Tips
Denis Mishunov Making Plone Theme 10 Most Wanted Tips
 
Duncan Booth Kupu, Past Present And Future
Duncan Booth   Kupu, Past Present And FutureDuncan Booth   Kupu, Past Present And Future
Duncan Booth Kupu, Past Present And Future
 
Jeroen Vloothuis Bend Kss To Your Will
Jeroen Vloothuis   Bend Kss To Your WillJeroen Vloothuis   Bend Kss To Your Will
Jeroen Vloothuis Bend Kss To Your Will
 
Jared Whitlock Open Source In The Enterprise Plone @ Novell
Jared Whitlock   Open Source In The Enterprise    Plone @ NovellJared Whitlock   Open Source In The Enterprise    Plone @ Novell
Jared Whitlock Open Source In The Enterprise Plone @ Novell
 
Thomas Moroz Open Source And The Open Society Using Plone To Build Commun...
Thomas Moroz   Open Source And The Open Society   Using Plone To Build Commun...Thomas Moroz   Open Source And The Open Society   Using Plone To Build Commun...
Thomas Moroz Open Source And The Open Society Using Plone To Build Commun...
 
Roberto Allende Plone Cono Sur Creating A Plone Users Group From Scratch
Roberto Allende Plone Cono Sur   Creating A Plone Users Group From ScratchRoberto Allende Plone Cono Sur   Creating A Plone Users Group From Scratch
Roberto Allende Plone Cono Sur Creating A Plone Users Group From Scratch
 
David Rey Lessons Learned Updating Content Licensing To Be Plone 3 Compat...
David Rey   Lessons Learned   Updating Content Licensing To Be Plone 3 Compat...David Rey   Lessons Learned   Updating Content Licensing To Be Plone 3 Compat...
David Rey Lessons Learned Updating Content Licensing To Be Plone 3 Compat...
 
BaláZs Ree Introduction To Kss, Kinetic Style Sheets
BaláZs Ree   Introduction To Kss, Kinetic Style SheetsBaláZs Ree   Introduction To Kss, Kinetic Style Sheets
BaláZs Ree Introduction To Kss, Kinetic Style Sheets
 
Gael Le Mignot How To Minimize Cpu And Memory Usage Of Zope And Plone Appli...
Gael Le Mignot   How To Minimize Cpu And Memory Usage Of Zope And Plone Appli...Gael Le Mignot   How To Minimize Cpu And Memory Usage Of Zope And Plone Appli...
Gael Le Mignot How To Minimize Cpu And Memory Usage Of Zope And Plone Appli...
 
Martin Aspeli Extending And Customising Plone 3
Martin Aspeli   Extending And Customising Plone 3Martin Aspeli   Extending And Customising Plone 3
Martin Aspeli Extending And Customising Plone 3
 
Godefroid Chapelle Ajax With Plone 3 Kss Development Patterns
Godefroid Chapelle   Ajax With Plone 3   Kss Development PatternsGodefroid Chapelle   Ajax With Plone 3   Kss Development Patterns
Godefroid Chapelle Ajax With Plone 3 Kss Development Patterns
 

Recently uploaded

MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdfMASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
Cocity Enterprises
 

Recently uploaded (20)

Mahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Mahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot GirlsMahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
Mahendragarh Escorts 🥰 8617370543 Call Girls Offer VIP Hot Girls
 
Call Girls in Benson Town / 8250092165 Genuine Call girls with real Photos an...
Call Girls in Benson Town / 8250092165 Genuine Call girls with real Photos an...Call Girls in Benson Town / 8250092165 Genuine Call girls with real Photos an...
Call Girls in Benson Town / 8250092165 Genuine Call girls with real Photos an...
 
Certified Kala Jadu, Black magic specialist in Rawalpindi and Bangali Amil ba...
Certified Kala Jadu, Black magic specialist in Rawalpindi and Bangali Amil ba...Certified Kala Jadu, Black magic specialist in Rawalpindi and Bangali Amil ba...
Certified Kala Jadu, Black magic specialist in Rawalpindi and Bangali Amil ba...
 
Toronto dominion bank investor presentation.pdf
Toronto dominion bank investor presentation.pdfToronto dominion bank investor presentation.pdf
Toronto dominion bank investor presentation.pdf
 
In Sharjah ௵(+971)558539980 *_௵abortion pills now available.
In Sharjah ௵(+971)558539980 *_௵abortion pills now available.In Sharjah ௵(+971)558539980 *_௵abortion pills now available.
In Sharjah ௵(+971)558539980 *_௵abortion pills now available.
 
GIFT City Overview India's Gateway to Global Finance
GIFT City Overview  India's Gateway to Global FinanceGIFT City Overview  India's Gateway to Global Finance
GIFT City Overview India's Gateway to Global Finance
 
Bhubaneswar🌹Kalpana Mesuem ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswa...
Bhubaneswar🌹Kalpana Mesuem  ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswa...Bhubaneswar🌹Kalpana Mesuem  ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswa...
Bhubaneswar🌹Kalpana Mesuem ❤CALL GIRLS 9777949614 💟 CALL GIRLS IN bhubaneswa...
 
Fixed exchange rate and flexible exchange rate.pptx
Fixed exchange rate and flexible exchange rate.pptxFixed exchange rate and flexible exchange rate.pptx
Fixed exchange rate and flexible exchange rate.pptx
 
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdfMASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
MASTERING FOREX: STRATEGIES FOR SUCCESS.pdf
 
Strategic Resources May 2024 Corporate Presentation
Strategic Resources May 2024 Corporate PresentationStrategic Resources May 2024 Corporate Presentation
Strategic Resources May 2024 Corporate Presentation
 
Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...
Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...
Female Escorts Service in Hyderabad Starting with 5000/- for Savita Escorts S...
 
Turbhe Fantastic Escorts📞📞9833754194 Kopar Khairane Marathi Call Girls-Kopar ...
Turbhe Fantastic Escorts📞📞9833754194 Kopar Khairane Marathi Call Girls-Kopar ...Turbhe Fantastic Escorts📞📞9833754194 Kopar Khairane Marathi Call Girls-Kopar ...
Turbhe Fantastic Escorts📞📞9833754194 Kopar Khairane Marathi Call Girls-Kopar ...
 
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdf
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdfSeeman_Fiintouch_LLP_Newsletter_May-2024.pdf
Seeman_Fiintouch_LLP_Newsletter_May-2024.pdf
 
Escorts Indore Call Girls-9155612368-Vijay Nagar Decent Fantastic Call Girls ...
Escorts Indore Call Girls-9155612368-Vijay Nagar Decent Fantastic Call Girls ...Escorts Indore Call Girls-9155612368-Vijay Nagar Decent Fantastic Call Girls ...
Escorts Indore Call Girls-9155612368-Vijay Nagar Decent Fantastic Call Girls ...
 
Collecting banker, Capacity of collecting Banker, conditions under section 13...
Collecting banker, Capacity of collecting Banker, conditions under section 13...Collecting banker, Capacity of collecting Banker, conditions under section 13...
Collecting banker, Capacity of collecting Banker, conditions under section 13...
 
7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options7 tips trading Deriv Accumulator Options
7 tips trading Deriv Accumulator Options
 
7 steps to achieve financial freedom.pdf
7 steps to achieve financial freedom.pdf7 steps to achieve financial freedom.pdf
7 steps to achieve financial freedom.pdf
 
Virar Best Sex Call Girls Number-📞📞9833754194-Poorbi Nalasopara Housewife Cal...
Virar Best Sex Call Girls Number-📞📞9833754194-Poorbi Nalasopara Housewife Cal...Virar Best Sex Call Girls Number-📞📞9833754194-Poorbi Nalasopara Housewife Cal...
Virar Best Sex Call Girls Number-📞📞9833754194-Poorbi Nalasopara Housewife Cal...
 
Test bank for advanced assessment interpreting findings and formulating diffe...
Test bank for advanced assessment interpreting findings and formulating diffe...Test bank for advanced assessment interpreting findings and formulating diffe...
Test bank for advanced assessment interpreting findings and formulating diffe...
 
Kurla Capable Call Girls ,07506202331, Sion Affordable Call Girls
Kurla Capable Call Girls ,07506202331, Sion Affordable Call GirlsKurla Capable Call Girls ,07506202331, Sion Affordable Call Girls
Kurla Capable Call Girls ,07506202331, Sion Affordable Call Girls
 

Sally Kleinfeldt - Plone Application Development Patterns

  • 1. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html Plone Application Development Patterns Sally Kleinfeldt, The Nature Conservancy October 2007 -- Naples Overview Background First application: ConPro Second application: EAST Pattern Library Questions The Nature Conservancy Environmental nonprofit protecting ecologically important lands and waters Science-based approach 117 million acres protected 1 million members Work in 50 states and 30 countries 3,000 employees Background - Technology Traditional IT shop Supporting HR, Finance, database applications Plus creating conservation applications Adopted Zope in 2000 Nature.org, intranet, internal applications ZMI development, RDB storage Background - Technology Adopted Plone in 2004 ConserveOnline.org, internal applications Filesystem development, RDB or ZODB storage Background - Applications Spatial and non-spatial Mix of data and content Users, roles, permissions important 1 of 10 11/1/07 5:52 PM
  • 2. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html Workflow sometimes Increasing need for custom applications for conservation Increasing need for cross-application integration ConPro - What Is It System to manage structured and unstructured information about our conservation projects Information previously managed in complex Excel spreadsheets, and associated documents, often in the field Need for import, export, versioning, locking, security, search ConPro - Requirements 50+ page functional requirements Assumption of relational storage for ad hoc SQL queries Spreadsheet dictated the data model Users defined edit screen mockups based on the spreadsheet Versioning, security, workflow requirements less clear ConPro - Data Model Customer-specified data model for RDB was very complex. ConPro - Development Plone chosen for compatibility with ConserveOnline Unable to hire expert consultant to guide development 2 of 10 11/1/07 5:52 PM
  • 3. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html Initial focus on spreadsheet import/export, SQL methods, edit forms Design of classes, security, overall application left until the end ConPro - Development Archetypes stub objects for object security, the rest hand crafted SQL methods and page templates; workflow not used Customers changed their minds midstream about data model and edit forms Rescued by Plone experts and much effort ConPro - Results Late and overbudget - 30 person months ~400 hand written SQL methods 50 hand written edit, display, report forms Ad hoc SQL queries never implemented Difficult to maintain and extend Big success with users! ConPro - Home Page 3 of 10 11/1/07 5:52 PM
  • 4. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html ConPro - Project Info Page ConPro - Project Info Page Turn it on its side - here's all the information... ConPro - Project Viability 4 of 10 11/1/07 5:52 PM
  • 5. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html ConPro - Project Viability Turn it on its side - here's all the information... ConPro - Lessons Avoid excessive requirements phase for new/unclear applications Users should not dictate technology decisions Relational storage increases cost, avoid if possible Have guidance from experts on your first project, learn to do things The Plone Way Start with classes, security, overall application functioning; page templates later EAST - What Is It 5 of 10 11/1/07 5:52 PM
  • 6. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html Ecoregional Assessment Status Tool ERA: science-based analysis of an ecoregion to determine highest value areas for conservation New system for management to track status of this work <200 assessments, each with <20 attributes EAST - Requirements Well understood application Initial version done in pure Zope prior to ConPro Informal project driven by developer to re-implement The Plone Way Customer flexible, no technology assumptions Simple application EAST - Class Diagram Developer and customer created the UML diagram together. EAST - Development Archetypes content types with ZODB storage UML modeling with ArchGenXML generating starter product Security and UI refinements added (listing, search, reports, view) EAST - Results 1 week to develop 2 content types, 23 page templates, workflow to track status 6 of 10 11/1/07 5:52 PM
  • 7. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html Easy to maintain and extend Big success with users! Customer: quot;This has been my most pleasant development experience everquot; EAST - ERA Page Learning Lessons Our technology choices had been haphazard Need to base decisions on what works in our environment Consistency Repeatable development results Application Patterns Solution: define quot;application patternsquot; A set of components, technologies, and tools Used to create a certain type application Good at solving certain types of problems 7 of 10 11/1/07 5:52 PM
  • 8. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html In the context of our organization and level of development expertise Pattern Definition - Problem Internet or intranet Type of information (spatial, structured, unstructured) Sensitivity of information Amount of information Number of users, sessions Organizational level (global, regional, local) Community (conservation, marketing, finance, legal, etc.) Pattern Definition - Technology Components GIS, web, database, ORM, search, authentication, user management, security, workflow, error handling, logging, help system, etc. Platform and toolkit Development platform, language, testing frameworks, OS, etc. Pattern Definition - Technology Integration mechanisms Web services platforms, enterprise search, etc. Risks (security, business) Cost Plone Pattern - Problem Intranet Mix of structured and unstructured information, non-spatial or minimally Non-spatial or minimally spatial requirements (We use .Net framework with ESRI tools for spatial apps) Suitable when information is restricted to authorized users/groups Plone Pattern - Problem 8 of 10 11/1/07 5:52 PM
  • 9. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html Small to mid size (up to thousands of objects, not millions) Any number of TNC staff Any organizational level or community Plone Pattern - Technology Non-spatial or embedded maps only LDAP authentication Archetypes, ArchGenXML Plone Pattern - Technology ZODB storage unless special circumstances Extra cost for RDB must be justified MySQL supported - but not Oracle??? When Is RDB Storage Justified? Good reasons: Legacy data that can't be moved Simultaneous access from other (legacy) tools When Is RDB Storage Justified? Bad reasons: Faster, more stable than ZODB Making reports with Crystal Reports etc. Ad hoc SQL queries by power users => Provide capability to periodically load data into the RDB How Fast Can We Make One? 9 of 10 11/1/07 5:52 PM
  • 10. Plone Application Development Patterns file:///Users/sek/tnc/naples/sallyk-slides/plone-patterns.html 90 seconds at 900 degrees F (485 C) http://www.fornobravo.com/vera_pizza_napoletana/pizza_napoletana.html Pretty Fast... 15 days to produce application with ZODB storage given UML diagram produced jointly by customer and developer with up to 5 content types, 1 custom view per type 5 reports and/or custom search pages Standard editing pages 6 custom permissions, 2 custom roles, 1 custom workflow Plone Pattern - Cost Caveats Predictable cost requires: Use of shared product providing common elements LDAP setup Provide application mixin class with common behavior Customize portal look and feel Better for users as well as developers Acknowledgements Eric Coffman, lead developer on these projects Questions 10 of 10 11/1/07 5:52 PM