Plone?
Plone ist ein Content Management System, basierend auf dem Applikationsserver Zope, der Objektdatenbank ZODB und der Programmiersprache Python.
$ whoami
Johannes Raggam (DI(FH))
Web Developer, Open Source Enthusiast, Linux User, Python Aficionado, Plone Developer.
Plone seit 2004, Plone Core Contributor seit 2009, BlueDynamics Alliance Partner seit 2010, Plone Framework Team Member seit 2012
$ whatis Plone
- Enterprise CMS
- Collaboration System
- Document Management System
- CMS Framework
$ apropos Plone
- Object Database, Content Tree und Object Traversal
- Security Record ++
- Permission und Workflow System ++
- UI: Backend = Frontend
- Plugability ++
$ locate Plone
- GPLv2
- Python 2.7
- Zope 2, Mother of all Frameworks
- ZODB (Zope Object Database)
- Zope Component Architecture GOODNESS!
- Legacy Code Hell MADNESS!
- Buildout GOOD/MADNESS!
- 236 PyPI Packges!
$ whois Plone
- Seit 2002 (Europython, Alex Limi, Alan Runyan: Plone 1.0)
- Offenes Entwicklungsmodell:
- = 318 Core Contributors!
- PLIP Process
- Sprints
- Github to the rescue!
- Pull-Requests
- Code reviews
- GIT! (Bis 2010: svn)
-
Continuous Integration to the rescue!
Europython 2002: 61 Tracks, 18 davon direkt Zope related.
The Plone Foundation
- Plone Board
- Framework Team
- Testing Team
- Security Team
- Documentation Team
- UI Team
- Accessibility Team
NASA Science science.nasa.gov
Neues Contenttype Framework: plone.app.contenttypes
- Basierend auf Dexterity (Schemata sowie Behaviors definieren Typ-Funktionalität)
- Löst altes Archetypes basiertes Framework ab
- Schneller, schlanker, einfachere API
- Pythonic anstatt Javaesk
Bereits in Plone 4.3 verwendbar
Neues Kalender Framework: plone.app.event
- Zeitzonen!
- Recurring Events!
- Verbesserter iCalendar Export
- iCalendar Import
- als Addon: CalDAV
Bereits in Plone 4.3 verwendbar
Neues Javasript Development Environment: Mockup
plone.github.io/mockup
- Javascripts ohne Plone und Python
- Easy für Frontend Entwickler
- Weite Teile völlig generisch
-
Patternslib basiert (ähnlich Web Components)
- Grunt Task Management
- Bower Package Management
- Require.js
- Tests ++ (Karma, Chai)
- Bootstrap 3
Neues Widgetset: plone.app.widgets
- Komplett modernisiertes Form Widget Set
- Basierend auf Javasript Framework Mockup
Bereits in Plone 4.3 verwendbar
Neues Theme: Barceloneta
- Moderne Web Technologien: HTML 5, CSS 3
- Basierend auf Javasript Framework Mockup
- Bootstrap 3
Mehr
- Radikales Aufräumen mit Legacy Code: Portal Skins Removal, zope.formlib->z3c.form, portal_tools Removal, ...
- Automatische CSRF Protection für alle Forms (auch Addons)
- Neue Multilingual Lösung
- Chameleon Template Engine
Noch mehr: https://dev.plone.org/report/24
Developer, Developer, Developer!
Die Abstraktion des Frontends durch Mockup kann helfen.
Web Dev Paradimen Shift: Mehr Frontend, Weniger Backend
Plone braucht eine JSON API.
Wie und wo Daten gehalten werden, wird egal.
Use It!
$ git clone git@github.com:plone/buildout.coredev.git
$ cd buildout.coredev
$ git co 5.0
$ python2.7 bootstrap.py
$ ./bin/buildout
$ ./bin/instance fg