Zope

Zope ist ein Gemeinschaftsprojekt befasst sich mit einem freien und Open-Source , objektorientierte Web – Application – Server in der geschriebenen Python – Programmiersprache . Zope steht für „Z Object Publishing Environment“ und war das erste System, das die jetzt gängige Objektveröffentlichungsmethodik für das Web verwendet. [1] [2] Zope wurde als Python- Killer-App erkannt , eine Anwendung, die Python im Rampenlicht platzierte. [3] [4]

In den letzten Jahren hat die Zope-Community mehrere zusätzliche Web-Frameworks mit unterschiedlichen Zielen und Prinzipien hervorgebracht, aber die Philosophie, die Menschen und den Quellcode teilen. Zope 2 ist nach wie vor das am weitesten verbreitete Framework, das weitgehend dank des Plone Content Management Systems , das auf Zope 2 läuft. BlueBream (früher Zope 3 genannt) ist weniger verbreitet, liegt aber neben einigen großen Standorten, darunter Launchpad . Grok wurde als programmorientierterer Rahmen „Zope 3 für Höhlenmenschen“ gestartet, und im Jahr 2009 gewann die Pyramide (ex BFG) in der Zope-Community als minimalistisches Rahmenwerk, das auf Zope-Prinzipien basiert.

<Die Vorlage Infobox-Organisation wird für die Verschmelzung in Betracht gezogen . Aufgaben

Geschichte

Die Zope Corporation wurde 1995 in Fredericksburg, Virginia unter dem Namen Digital Creations, als Joint Venture mit InfiNet (eine gemeinsame Zeitungsketten-Venture) gegründet. Das Unternehmen entwickelte eine klassifizierte Anzeigenmaschine für das Internet. 1997 wurde das Unternehmen eigenständig und privat. Die Software-Ingenieure des Unternehmens werden von CTO Jim Fulton geleitet. PythonLabs, Schöpfer von Python, wurde im Jahr 2000 Teil des Unternehmens. Python-Gründer Guido van Rossum verließ die Zope Corp im Jahr 2003. [5]

Was nun als Zope 2 bekannt ist, begann mit der Verschmelzung von drei separaten Softwareprodukten – Bobo, Dokumentvorlage und BoboPOS – in den Principia Applikationsserver. Auf Geheiß seines größten Investors, Opticality Ventures, wurde Principia 1998 als freie Software unter dem Namen Zope neu veröffentlicht. Bobo und damit Zope war die erste Web- Objekt- Publishing-Lösung. [1] [2]

Im November 2004 wurde Zope 3 veröffentlicht. Zope 3 ist ein vollständiges Rewrite , das nur die ursprüngliche ZODB- Objektdatenbank bewahrt . Es ist direkt für die Entwicklung von Webanwendungen mit den neuesten Entwicklungsparadigmen gedacht. Zope 3 ist jedoch nicht mit Zope 2 kompatibel, so dass Sie Zope 2 Anwendungen auf Zope 3 nicht ausführen können. Es war ursprünglich beabsichtigt, eine Rückwärtskompatibilitätsschicht einzuführen, so dass Zope 2 Software auf Zope 3 laufen würde. Stattdessen wurde ein Modul bekannt als Fünf die neuen Zope 3 -Paradigmen in Zope 2 eingeführt, obwohl die volle Kompatibilität auch nicht möglich ist.

Die Existenz von zwei inkompatiblen Web-Frameworks namens Zope hat eine Menge Verwirrung verursacht. Als Reaktion darauf wurde im Januar 2010 Zope 3 in „BlueBream“ umbenannt. [6] [7] „Zope“ und „blaue Brachsen“ sind Namen einer Art Fisch, Ballerus Ballerus .

Zope-Stiftung

Die Zope-Stiftung ist eine Organisation, die die Entwicklung der Zope-Plattform fördert, indem sie die Community unterstützt, die die entsprechenden Softwarekomponenten entwickelt und verwaltet. Die Community umfasst sowohl Open-Source-Software, Dokumentation und Web-Infrastruktur-Mitwirkenden, als auch Business-und Organisation Verbraucher der Software-Plattform. Es verwaltet die zope.org Webseiten, eine Infrastruktur für Open-Source-Collaboration.

Zope 2

Eine Zope- Website besteht in der Regel aus Objekten in einer Zope-Objekt-Datenbank , nicht Dateien auf einem Dateisystem , wie es bei den meisten Web-Servern üblich ist . Dies ermöglicht es Benutzern, die Vorteile von Objekttechnologien wie Verkapselung zu nutzen . Zope Karten- URLs zu Objekten unter Verwendung der Containment-Hierarchie solcher Objekte; Methoden gelten auch als in ihren Objekten enthalten. Daten können auch in anderen Datenbanken oder im Dateisystem gespeichert werden, aber ZODB ist die häufigste Lösung.

Zope bietet zwei Mechanismen für HTML- Templating: Dokumentvorlage Markup Language (DTML) und Zope Page Templates (ZPT). DTML ist eine tagbasierte Sprache, die die Implementierung einfacher Scripting in den Vorlagen ermöglicht. DTML hat Vorkehrungen für variable Einbeziehung, Bedingungen und Schleifen. Allerdings kann DTML problematisch sein: DTML-Tags, die mit HTML-Formular ungültige HTML-Dokumente durchsetzt sind, und seine Verwendung erfordert die Sorgfalt, wenn sie Logik in Vorlagen enthält, um die Code-Lesbarkeit beizubehalten. Die Verwendung von DTML wird von vielen führenden Zope-Entwicklern entmutigt. ZPT ist eine Technologie, die die Mängel der DTML adressiert. ZPT-Vorlagen können entweder gut geformte XML- Dokumente oder HTML-Dokumente sein, in denen alle Sondermarkierungen als Attribute im TAL ( Template Attribute Language) dargestellt werdenNamespace ZPT bietet eine sehr begrenzte Anzahl von Tools für bedingte Einbeziehung und Wiederholung von XML-Elementen. Folglich sind die Vorlagen in der Regel ganz einfach, mit den meisten Logik in Python-Code implementiert. Ein wesentlicher Vorteil von ZPT-Vorlagen ist, dass sie in den meisten grafischen HTML-Editoren bearbeitet werden können. ZPT bietet auch direkte Unterstützung für die Internationalisierung .

Zope 2 liegt dem Plone Content Management System sowie dem ERP5 Open Source Enterprise Resource Planning System zugrunde.

BlueBream

BlueBream ist ein Rewrite von den Zope-Entwicklern des Zope 2 Web Application Servers . Es wurde unter dem Namen „Zope 3“ erstellt, aber die Existenz von zwei unvereinbaren Frameworks mit dem gleichen Namen verursachte viel Verwirrung, und Zope 3 wurde im Januar 2010 in „BlueBream“ umbenannt. [9] [10] BlueBream wird unter den Bedingungen verteilt Der Zope Public License [11] und ist somit freie Software .

Zope 2 hat sich als nützliches Framework für die Entwicklung von Webanwendungen bewährt, aber seine Verwendung ergab einige Mängel. Zitat benötigt ] Um ein paar zu nennen, ist die Erstellung von Zope 2-Produkten das Kopieren vieler Kesselplatten-Code – „Magic“ -Kode – das muss nur da sein und die integrierte Management-Schnittstelle ist schwer zu verändern oder zu ersetzen. Zope 3 war eine Umschreibung der Software, die versucht, diese Mängel zu bewältigen und dabei die Vorteile von Zope zu behalten, die zu seiner Popularität geführt haben. BlueBream basiert auf einer Komponentenarchitektur [12] , die es einfach macht, Softwarekomponenten verschiedener Herkunft in Python zu mischen. Obwohl ursprünglich als Ersatz für Zope 2 gedacht, wurde die Zope Component Architecture stattdessen in Zope 2 zurückgekehrt, beginnend mit Zope 2.8. Viele Zope-Plattformen wie Plone gehen durch die gleiche Art von Stück-für-Stück-Rewriting. Die erste Produktionsfreigabe der neuen Software, Zope X3 3.0.0, wurde am 6. November 2004 veröffentlicht.

Geschichte

Das Zope-3-Projekt begann im Februar 2001 als eine Bemühung, eine neue Version von Zope als fast vollständiges Umschreiben zu entwickeln, mit dem Ziel, die erfolgreichen Features von Zope 2 beizubehalten, während er versucht, einige seiner Mängel zu beheben. Ziel war es, eine entwicklerfreundliche und flexible Plattform für die Programmierung von Web-Applikationen zu schaffen, als Zope 2 ist. Das Projekt begann mit der Entwicklung einer Komponentenarchitektur , die die Strukturierung von Code in kleine, kompatible Einheiten mit introspektiven Schnittstellen ermöglicht. Die Schnittstellen werden von einem Schnittstellenpaket unterstützt, um die Funktionalität von explizit deklarierten Schnittstellen zur Python-Sprache zur Verfügung zu stellen . Die erste Produktionsfreigabe der Software, Zope X3, wurde am 6. November 2004 veröffentlicht. Im Januar 2010 wurde Zope 3 in BlueBream umbenannt.[9]

Technologie

Ziel des Projektes war es, den Programmierern die Möglichkeit zu geben, Zope zu verwenden, um beliebige Pythonobjekte als Modellobjekte dem Web auszusetzen, ohne dass diese Objekte bestimmte Verhaltensanforderungen erfüllen müssen. In Zope 2 gab es viele Verhaltensanforderungen, um zu erlauben, dass Objekte an dem Framework teilnahmen, was zu einer großen Menge an Mixin- Basisklassen und speziellen Attributen führte. BlueBream verwendet eine Modell- / View-Architektur und trennt den Präsentationscode vom Problemdomänencode. Ansichten und Modelle werden durch die Komponentenarchitektur miteinander verknüpft.

Die Bibliotheken, die BlueBream zugrunde liegen, haben sich in eine Sammlung nützlicher Bibliotheken für die Webanwendungsentwicklung und nicht als einen einzigen monolithischen Anwendungsserver entwickelt. BlueBream enthält separate Pakete für Schnittstellen, Komponentenarchitektur, HTTP-Server, Publisher, Zope Object Database (ZODB), Zope Page Templates, I18N, Sicherheitsrichtlinien und so weiter. Die Bauteilarchitektur dient dazu, diese zusammenzukleben. Die Komponentenarchitektur wird mit einer ZCML (Zope Configuration Markup Language), einer XML-basierten Konfigurationsdateisprache, konfiguriert.

Das Zope 3-Projekt hat die Praxis der Sprints für Open-Source-Software- Entwicklung vorangetrieben . [13] Sprints sind intensive Entwicklungssitzungen, wenn Programmierer, oft aus verschiedenen Ländern, sich in einem Raum versammeln und für ein paar Tage oder sogar mehrere Wochen zusammenarbeiten. Während der Sprints werden verschiedene Praktiken aus agiler Softwareentwicklung verwendet, wie zB die Paarprogrammierung und die testgetriebene Entwicklung . Neben dem Ziel, Software zu entwickeln, sind Sprints auch für geographisch getrennte Entwickler nützlich, um sich persönlich zu treffen und neue Leute zum Projekt zu locken. Sie dienen auch als ein Weg für die Teilnehmer, voneinander zu lernen.

BlueBream gilt als ein stabiler Rahmen, der bei Produktionsprojekten weltweit eingesetzt wird, vor allem Launchpad .

Zope Toolkit

Als Ergebnis der Entwicklung von Zope 3 / BlueBream gibt es jetzt viele unabhängige Python-Pakete, die als Teil von BlueBream verwendet und entwickelt wurden, und obwohl viele davon außerhalb von BlueBream verwendbar sind, sind viele nicht. Das Zope Toolkit (ZTK) -Projekt wurde begonnen, um zu klären, welche Pakete außerhalb von BlueBream verwendbar waren, und um die Wiederverwendbarkeit der Pakete zu verbessern. So ist das Zope Toolkit eine Basis für die Zope Frameworks. Zope 2.12 ist die erste Veröffentlichung eines Web-Frameworks, das auf Zope Toolkit aufbaut, und Grok und BlueBream wurden im Jahr 2010 auf der Basis der ZTK veröffentlicht.

Grok

Hauptartikel: Grok (Web-Framework)

Im Jahr 2006 wurde das Grok-Projekt von einer Reihe von Zope 3-Entwicklern begonnen, die die Zope 3-Technologie agiler machen und den Neulingen besser zugänglich machen wollten. Grok hat seitdem regelmäßige Releases gesehen und seine Kerntechnologie (Martian, grokcore.component) findet auch die Aufnahme in anderen Zope 3 und Zope 2 basierten Projekten.

Zope Seitenvorlagen

Wie bereits erwähnt, sind Zope Page Templates selbst XHTML-Dokumente, was bedeutet, dass sie mit normalen HTML-Editoren oder XHTML-kompatiblen Tools betrachtet und bearbeitet werden können (ein großer Vorteil gegenüber anderen Vorlagensprachen für Webanwendungen). Vorlagen können auch auf XHTML-Compliance überprüft werden, so dass Sie ziemlich sicher sein können, dass sie sich automatisch in das richtige XHTML erweitern.

Diese Seitenvorlagen sollen jedoch nicht so dargestellt werden. Stattdessen werden sie mit zusätzlichen Elementen und Attributen in speziellen XML-Namespaces markiert (siehe unten). Diese zusätzliche Information wird verwendet, um zu beschreiben, wie die Seitenvorlage letztlich verarbeitet werden soll.

Hier sind einige grundlegende Beispiele. Um ein bestimmtes Element bedingt einzuschließen, wie ein div- Element, füge einfach das tal: condition- Attribut dem Element wie folgt hinzu:

< Div tal: condition = "..." >
 ... </ div >

Um zu kontrollieren, was in einem Element erscheint, verwenden Sie das Attribut tal: content wie folgt:

< H1 > < span tal: content = "..." /> </ h1 >
...

Um die Werte von Attributen einzuführen oder zu ersetzen, verwenden Sie das Attribut tal: attributes wie folgt. Sie können Python verwenden, um das Href zur Laufzeit zu ändern.

< A href = "" tal: attributes = "href Python: 'http: //someurl.com/%s'%someobject" > ... </ a >

Dies ist eine sehr flüchtige Erklärung von Zope Seitenvorlagen. Das Verhalten von Zope Page Templates wird fast vollständig durch eine Vorlagensprache beschrieben , die auf TAL-, TALES- und METAL-Spezifikationen festgelegt ist :

  • Vorlagenattributsprache (TAL),
  • Vorlage Attribut Sprachausdruck Syntax ( TALES ),
  • Makro-Erweiterungsvorlage Attributsprache ( METAL ).

Bemerkenswerte Software mit Zope

SchoolTool ist ein Open-Source- Schüler-Informationssystem , das Zope verwendet.

Siehe auch

  • Kostenloses Softwareportal
  • Pylonen-Projekt
  • Django
  • Web2py
  • Content Management (CM)
  • Content Management System (CMS)
  • Web Content Management System (WCMS)
  • Plone
  • Naaja
  • Zwiki
  • ERP5
  • Verdreht

Referenzen

  1. ^ Springe bis zu:b Reuven M. Lerner. „Bei der Schmiede – Bewertung von Rubin auf Schienen“ . Linux Journal . Abgerufen 2010-03-26 . Zope hat auch die Idee der Objektveröffentlichung vorangetrieben, in der eine URL die Methode beschreibt, die auf einem bestimmten Objekt aufgerufen werden soll.
  2. ^ Springe bis zu:b Philip J Eby (2003-12-11). „Kommentar zu“ Lisp und Produktivität „“ . Joel auf Software . Abgerufen 2010-03-26 . Im Jahr 1997 entwickelte Jim Fulton (der CTO bei Zope Corp) eine Technik, die er „Object Publishing“ nannte und in einer Bibliothek namens Python Object Publisher (aka Bobo) implementiert wurde. Die Objekt Publishing Metapher ist in vielen Python Toolkits heute gefunden; In anderen sprachen findet man sie erst in verkrüppelter form.
  3. Jump up^ Lutz, Mark (2006). „18: Erweiterte Internet-Themen“ . Programmierung Python (3 ed.). O’Reilly Medien . Abgerufen 2010-03-27 . Die Verwendung von Zope hat sich so schnell verbreitet, dass viele Pythonistas es als Python- Killer-Anwendung angesehen haben – ein System, das so gut ist, dass es natürlich Python in den Entwicklungsscheinwerfer drückt.
  4. Springe oben^ Jon Udell (2000-02-07). „Zope ist Pythons Killer App.“ . BYTE . Archiviert vom Original am 2000-03-02 . Abgerufen 2011-06-04 .
  5. Jump up^ Guido van Rossum Blätter Zope.com
  6. Jump up^ „BlueBream Dokumentation“ . Abgerufen 2010-01-17 .
  7. Jump up^ „Zope Foundation Board of Directors Sitzung 2010-10-14“ . Abgerufen 2010-01-17 .
  8. Jump up^ „Changelog – Zope 2 Dokumentation 2.13 Dokumentation“ .
  9. ^ Springe bis zu:b http://bluebream.zope.org/doc/1.0/introduction.html#overview
  10. Jump up^ http://foundation.zope.org/minutes/zfbod-minutes-20100114
  11. Jump up^ „FAQ – Allgemeines 5: Was ist die Lizenz von Zope 3?“ . Zope 3 ist unter Zope Public License, Version 2.1 (ZPL) lizenziert.
  12. Jump up^http://web.archive.org/web/20080509165741/http://wiki.zope.org/zope3/ComponentArchitecture
  13. Jump up^ „Archivierte Kopie“ . Archiviert vom Original am 14. August 2012 . Abgerufen am 17. August 2012 .

Write a Comment

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert