Erweiterbarkeit

Plone ist nicht nur eine Anwendung, sondern auch ein sehr flexibles und erweiterbares Framework, mit dessen Hilfe das CMS den unterschiedlichsten Anforderungen angepasst werden kann.

Mit Archetypes lassen sich individuelle Artikeltypen erstellen. So wäre beispielsweise ein Artikeltyp Student denkbar, in dem neben den persönlichen Daten eines Studenten auch Informationen über seinen Studiengang gespeichert werden. Zope selbst, auf dem Plone basiert, ist ein Webapplikationsserver, mit dem sich Webanwendungen jeder Art, nicht nur Content-Management-Systeme, entwickeln lassen. Daher kann die Funktionalität von Plone durch Zope erheblich ausgeweitet werden. Letztlich kann Plone durch Einbindung von Modulen aus der Python-Bibliothek erweitert werden. Zope und Plone nutzen ohnehin zahlreiche externe Python-Module wie beispielsweise die Python Image Library PIL zur Manipulation von Bilddaten. Da Plone eine große aktive Community besitzt, gibt es für zahlreiche Anwendungsfälle bereits fertige Erweiterungen, die man einfach nachinstallieren kann. Eine Liste der Erweiterungen findet man unter http://plone.org/products.

../_images/produkte-hinzufuegen.png

Bereich, in dem Erweiterungen für Plone installiert werden.

Zope-Komponentenarchitektur

Zope basiert auf einer modernen Komponentenarchitektur Komponentenarchitektur, bei der ein überschaubarer Satz genau definierter Funktionalitäten in kompakten, gut strukturierten Komponenten zusammengefasst werden. Diese einfachen Komponenten werden zu komplexen Anwendungen zusammengefügt. Einmal entwickelte Komponenten können wiederverwendet werden. Die aus Komponenten aufgebauten Anwendungen bleiben zu jeder Zeit flexibel und erweiterbar. Die Zope-Entwickler-Community hat mit der Komponentenarchitektur einen Weg gefunden, die Komplexität moderner, leistungsfähiger Anwendungen so zu organisieren, dass sie effizient, sicher und einfach zu managen ist.

Zope besitzt als Framework bereits out-of-the-box eine Reihe von Komponenten, die in vielen Webanwendungen benötigt werden. Dies betrifft zum Beispiel die Unterstützung gängiger Protokolle wie HTTP, FTP, WebDAV oder XML-RPC, die Authentifizierung, das Sessionmanagement, die Internationalisierung und Lokalisierung, die GUI-Generierung, die automatische Erzeugung und Validierung von Formularen, sowie Templating, Indizierung und Workflow.

Ideale Integrationsplattform

Zope ist aufgrund seiner Fähigkeit, mit den unterschiedlichsten Systemen über Schnittstellen, Standards und Protokolle zusammenzuarbeiten, eine ideale Integrationsplattform, wenn es darum geht, heterogene Systeme in einer Webanwendung zusammenfassen.

Leistungsfähig, agil und elegant

Zope und Plone sind in der objektorientierten, agilen Programmiersprache Python geschrieben. Die Open-Source Programmiersprache wurde 1990 entwickelt und gilt unter Kennern als eine der leistungsfähigsten Sprachen überhaupt. Python ist aber darüber hinaus auch eine sehr elegante, prägnante und leserliche Programmiersprache. Dies hat einige entscheidende Vorteile. Code wird nämlich in einer modernen arbeitsteiligen Organisation wesentlich häufiger gelesen als geschrieben. Immer dann, wenn fremder Code übernommen oder eine bestehende Code-Basis überarbeitet werden soll, müssen die Entwickler den Code lesen, um ihn zu verstehen.

Zeit- und ressourcenschonende Entwicklung

Sean Kelly, ein Mitarbeiter der NASA, demonstriert die Auswirkungen dieser Tatsachen in seinem Screencast Recovery from Addiction. Anhand eines einfachen Beispiels zeigt er, dass dort, wo man mit Java 21 Zeile Code benötigt, mit drei Zeile Code in Python auskommt. In Java braucht er, der erfahrene Java-Experte, also siebenmal so viele Zeilen Code als in Python, um die gleiche Funktionalität zu erzielen. Rechnet man dies auf eine große Codebasis wie der von Plone hoch, kommt man zu interessanten Zahlen.

Plone hat zurzeit eine Codebasis von rund 285.000 Zeilen. Ein vergleichbares CMS, das in Java programmiert wurde, müsste also 1,2 Mio. Zeilen Code aufweisen. Und tatsächlich wird auf der Ohloh für Apache Lenya über 1,2 Mio. Zeilen und für Alfresco über 2 Mio. Zeilen Java-Code ausgewiesen.

Mit Python lassen sich daher wesentlich schneller produktive Ergebnisse erzielen als mit anderen Programmiersprachen. Außerdem bleiben Anwendungen, auch wenn sie wachsen, wartbar und flexibel. Alles in allem ermöglicht Python eine ressourcenschonende und effiziente Entwicklung.