Zope

Zope
Zope logo.png
Art der Site
Python Web Framework Entwicklung
Verfügbar in Englisch
Erstellt von Zope Corporation
Editor Zope Corporation
URL Zope.readthedocs.io
Kommerziell Nein
Anmeldung keiner
Gestartet Juli 1999
Aktueller Status Aktiv
Inhaltslizenz
ZOPE Public Lizenz

Zope ist eine Familie von frei und offen Netz Anwendungsserver geschrieben in Pythonund ihre damit verbundene Online -Community. Zope steht für "Z Object Publishing Environment" und war das erste System, das jetzt gemeinsam ist Objekt Veröffentlichungsmethode für das Web.[1][2] Zope wurde als Python bezeichnet Killer App, eine Anwendung, die dazu beigetragen hat, Python ins Rampenlicht zu stellen.[3][4]

In den letzten Jahren hat die Zope -Community mehrere zusätzliche hervorgebracht Webrahmen mit unterschiedlichen Zielen und Prinzipien, aber das Teilen von Philosophie, Menschen und Quellcode. Zope 2 ist immer noch der am weitesten verbreitete dieser Frameworks, vor allem dank der Plonen Content -Management -System, das auf Zope 2. Bluebream (früher als Zope 3 genannt) läuft Launchpad. Gräulich wurde als programmerfreundlicheres Framework "Zope 3 für Höhlenmenschen" und 2009 begonnen, und 2009 Pyramide in der Zope -Community als minimalistischer Rahmen an der Zope -Prinzipien an Popularität gewonnen.

Geschichte

Die Zope Corporation wurde 1995 in gegründet Fredericksburg, Virginia Unter dem Namen Digitale Kreationen als Joint Venture mit Infinet (ein gemeinsames Zeitungskettenunternehmen). Das Unternehmen entwickelte eine klassifizierte Werbe -Engine für das Internet. 1997 wurde das Unternehmen unabhängig und privat. Die Software -Ingenieure des Unternehmens werden von CTO Jim Fulton geleitet. Pythonlabs, Schöpfer von Python, wurde 2000 Teil des Unternehmens (Python -Gründer Guido van Rossum Links Zope Corp im Jahr 2003).[5]

Was heute als Zope 2 bekannt ist, begann mit der Verschmelzung von drei separaten Softwareprodukten - Bobo, Dokumentvorlage und Bobopos - in den Principia Application Server. Auf Geheiß seines größten Investors, Opticality Ventures, wurde Principia 1998 als kostenlose Software unter dem Namen Zope neu veröffentlicht. BOO und damit Zope war das erste Web Objekt Veröffentlichungslösung.[1][2]

Im November 2004 wurde Zope 3 freigelassen. Zope 3 ist a vollständige Umschreiben Das bewahrt nur das Original Zodb Objektdatenbank. Es ist direkt für die Entwicklung der Unternehmenswebanwendungen mit den neuesten Entwicklungsparadigmen gedacht. Zope 3 ist jedoch nicht mit Zope 2 kompatibel Fünf führten das neue Zope 3 -Paradigmen in Zope 2 ein, obwohl die vollständige Kompatibilität auch auf diese Weise nicht möglich ist.

Die Existenz von zwei inkompatiblen Webrahmen, die Zope namens Zope, hat viel Verwirrung verursacht. Als Reaktion darauf wurde im Januar 2010 Zope 3 in "Bluebream" umbenannt.[6][7] "Zope" und "Blue Bream" sind Namen einer Art Fisch. Ballerus Ballerus.

Zope Foundation

Zope Foundation
Gegründet März 2006; Vor 16 Jahren
Typ gemeinnützige Organisation
Fokus Quelloffene Software
Methode ZOPE Public Lizenz
Webseite Stiftung.Zope.dev

Die Zope Foundation ist eine Organisation, die die Entwicklung der Zope -Plattform fördert, indem die Community unterstützt wird, die die relevanten Softwarekomponenten entwickelt und verwaltet. Die Community umfasst sowohl Open -Source -Software-, Dokumentations- als auch Web -Infrastruktur -Mitwirkende sowie Geschäfts- und Organisationsverbraucher der Softwareplattform. Es verwaltet die Zope.org -Websites, eine Infrastruktur für die Zusammenarbeit mit Open Source.

Zope -Versionen

Zope
Bildschirmfoto
Zope-screenshot.png
ZOPE -Verwaltungsschnittstelle in einem Webbrowserfenster.
Entwickler (en) Zope Corporation
Erstveröffentlichung 1998; Vor 24 Jahren
Stabile Version
5.1.1[8] Edit this on Wikidata / 10. Februar 2021; Vor 17 Monaten
Geschrieben in Python
Betriebssystem Plattformübergreifend
Typ Netz Anwendungsserver
Lizenz ZOPE Public Lizenz
Webseite www.Zope.dev Edit this on Wikidata

Zope 2

Ein Zope Webseite besteht normalerweise aus Objekten in a Zope -Objektdatenbank, keine Dateien auf a Dateisystem, wie üblich bei den meisten Webserver. Dadurch können Benutzer die Vorteile von Objekttechnologien nutzen, wie z. Verkapselung. Zope Maps URLs an Objekte, die die Containment -Hierarchie solcher Objekte verwenden; Methoden werden auch in ihren Objekten als enthalten angesehen. Daten können auch in anderen Datenbanken oder im Dateisystem gespeichert werden, aber ZODB ist die häufigste Lösung.

Zope liefert zwei Mechanismen für Html Vorlagen: Dokumentvorlage Markup -Sprache (DTML) und Zope -Seitenvorlagen (ZPT). DTML ist eine Tag-basierte Sprache, die die Implementierung einfacher Skripten in den Vorlagen ermöglicht. DTML verfügt über Bestimmungen für variable Eingliederung, Bedingungen und Schleifen. DTML kann jedoch problematisch sein: DTML-Tags, die mit HTML-Form nicht-valid-HTML-Dokumenten durchsetzt sind, und deren Verwendung erfordert Pflege, wenn Logik in Vorlagen einbezogen wird, um die Code-Lesbarkeit beizubehalten. Die Verwendung von DTML wird von vielen führenden Zope -Entwicklern entmutigt. ZPT ist eine Technologie, die sich mit den Mängel von DTML befasst. ZPT-Vorlagen können entweder gut geformt werden Xml Dokumente oder HTML -Dokumente, in denen alle speziellen Markups als Attribute in der TAL dargestellt werden (TAL (Vorlagenattributsprache) Namespace. ZPT bietet nur sehr begrenzte Werkzeuge für die bedingte Einbeziehung und Wiederholung von XML -Elementen. Folglich sind die Vorlagen normalerweise recht einfach, wobei die meisten Logik in Python -Code implementiert werden. Ein wesentlicher Vorteil von ZPT -Vorlagen besteht darin, dass sie in den meisten grafischen HTML -Redakteuren bearbeitet werden können. ZPT bietet auch direkte Unterstützung für Internationalisierung.

Zope 2 liegt dem zugrunde Plonen Content -Management -System, ebenso wie ERP5 Open Source Unternehmensressourcenplanung System.

Blauer

Blauer
Entwickler (en) Zope Corporation
Erstveröffentlichung 2004; Vor 18 Jahren
Stabile Version
1.0 / 18. Januar 2011; Vor 11 Jahren[9]
Geschrieben in Python
Betriebssystem Plattformübergreifend
Typ Netz Anwendungsserver
Lizenz ZOPE Public Lizenz
Webseite Blauer.Zope.org

Bluebream ist ein Umschreiben der Zope -Entwickler der Zope Zope 2 Netz Anwendungsserver. Es wurde unter dem Namen "Zope 3" erstellt, aber die Existenz von zwei inkompatiblen Rahmenbedingungen mit demselben Namen verursachte viel Verwirrung, und Zope 3 wurde im Januar 2010 in "Bluebream" umbenannt.[10][11] Bluebream wird unter den Bestimmungen der verteilt ZOPE Public Lizenz[12] und ist so gratis Software.

Zope 2 hat sich als nützliches Rahmen für die Entwicklung von Webanwendungen erwiesen, aber seine Verwendung ergab einige Mängel. Um nur einige zu nennen und Zope 2 -Produkte zu erstellen, beinhaltet das Kopieren viel Boilerplate -Code -"Magic" Code-, der nur da sein muss, und die integrierte Verwaltungsschnittstelle ist schwer zu ändern oder zu ersetzen. Zope 3 war ein Umschreiben der Software, die versucht, diese Mängel anzugehen und gleichzeitig die Vorteile von Zope zu behalten, die zu ihrer Popularität führten. Bluebream basiert auf einem Komponentenarchitektur[13] Das erleichtert das Mischen von Softwarekomponenten verschiedener Ursprünge in geschriebenen Ursprüngen Python. Obwohl ursprünglich als Ersatz für Zope 2 gedacht, wurde die Zope -Komponentenarchitektur stattdessen auf Zope 2 zurückgebracht, beginnend mit Zope 2.8. Viele Zope -Plattformen wie Plonen durchlaufen die gleiche Art von Stück-für-Stück-Umschreiben. Die erste Produktionsveröffentlichung 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 Anstrengung, eine neue Version von Zope als fast vollständiges Umschreiben zu entwickeln, mit dem Ziel, die erfolgreichen Merkmale von Zope 2 beizubehalten und gleichzeitig zu versuchen, einige seiner Mängel zu beheben. Ziel war es, eine Entwicklerfreundlichkeit und flexiblere Plattform für Programmierwebanwendungen zu schaffen als Zope 2. Das Projekt begann mit der Entwicklung von a Komponentenarchitektur, was die Strukturierung von Code in kleine, komponierbare Einheiten mit introspektablen Schnittstellen ermöglicht. Die Schnittstellen werden von einem Schnittstellenpaket unterstützt, um die Funktionalität explizit deklarierter Schnittstellen zur Verfügung zu stellen Python -Sprache. Die erste Produktionsveröffentlichung der Software, Zope X3, wurde am 6. November 2004 veröffentlicht. Im Januar 2010 wurde Zope 3 umbenannt.[10]

Technologie

Ziel des Projekts war es, den Programmierern Zope zu ermöglichen, um willkürliche Python -Objekte als Modellobjekte für das Web aufzudecken, ohne dass diese Objekte bestimmte Verhaltensanforderungen erfüllen müssen. In Zope 2 gab es viele Verhaltensanforderungen, damit Objekte am Rahmen teilnehmen konnten, was zu einer großen Menge an eine große Menge an führte mischen Basisklassen und spezielle Attribute. Bluebream verwendet eine Modell-/View -Architektur, wodurch der Präsentationscode vom Problemdomänencode getrennt wird. Ansichten und Modelle werden durch die Komponentenarchitektur miteinander verknüpft.

Die Bibliotheken, die BlueBream zugrunde liegen, haben sich zu einer Sammlung nützlicher Bibliotheken für die Entwicklung von Webanwendungen entwickelt und nicht zu einem einzigen monolithischen Anwendungsserver. Bluebream enthält separate Pakete für Schnittstellen, Komponentenarchitektur, HTTP -Server, Publisher, Zope -Objektdatenbank (ZODB), Zope -Seitenvorlagen, I18N, Sicherheitsrichtlinien usw. Die Komponentenarchitektur wird verwendet, um diese zusammenzukleben. Die Komponentenarchitektur wird mit einem ZCML (Zope Configuration Markup Language), einer XML -basierten Konfigurationsdateisprache, konfiguriert.

Das Zope 3 -Projekt war Pionier der Praxis von Sprints zum Quelloffene Software Entwicklung.[14] Sprints sind intensive Entwicklungssitzungen, wenn Programmierer, oft aus verschiedenen Ländern, in einem Raum versammeln und einige Tage oder sogar einige Wochen zusammenarbeiten. Während der Sprints verschiedene Praktiken aus Agile Software Entwicklung werden verwendet, wie z. Paar-Programmierung und Testgetriebene Entwicklung. Neben dem Ziel der Entwicklung von Software sind Sprints auch für geografisch getrennte Entwickler nützlich, um sich persönlich zu treffen und neue Personen für das Projekt anzuziehen. Sie dienen auch als Möglichkeit für die Teilnehmer, voneinander zu lernen.

Bluebream wird als stabiles Rahmen angesehen, das für Produktionsprojekte weltweit verwendet wird, insbesondere für Produktionsprojekte Launchpad.

Zope Toolkit

Zope Toolkit
Andere Namen Ztk
Entwickler (en) Zope Foundation
Erstveröffentlichung 26. Juni 2010; vor 12 Jahren
Stabile Version
1.1.6 / 1. Mai 2013; Vor 9 Jahren
Vorschau -Version
2.0a1 / 1. Mai 2013; Vor 9 Jahren
Repository Github.com/Zopefoundation/Zopetoolkit
Geschrieben in Python
Betriebssystem Plattformübergreifend
Typ Web Framework
Lizenz ZOPE Public Lizenz
Webseite Zopetoolkit.readthedocs.io

Infolge 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 außerhalb von Bluebream verwendet werden können, sind viele nicht. Das Zope Toolkit (ZTK) -Projekt wurde gestartet, um zu klären, welche Pakete außerhalb von BlueBream verwendet werden können, und um die Wiederverwendbarkeit der Pakete zu verbessern. Somit 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 Gräulich Und Bluebream wurde im Jahr 2010 Releases auf der Grundlage des ZTK auf Basis der ZTK eingestellt.

Gräulich

2006 wurde das GROK -Projekt von einer Reihe von Zope 3 -Entwicklern gestartet, die die Zope 3 -Technologie agiler und für Neuankömmlinge zugänglicher machen wollten. GROK hat seitdem reguläre Veröffentlichungen gesehen und seine Kerntechnologie (Martian, grokcore.comPonent) findet auch die Aufnahme in anderen Projekten von Zope 3 und Zope 2.

Zope 4

Ende 2017 begann die Entwicklung auf Zope 4.[15] Zope 4 ist ein Nachfolger von Zope 2.13, was viele Änderungen vornimmt, die nicht mit Zope 2 kompatibel sind.

Zope 5

Zope 5 wurde 2020 freigelassen.

Zope -Seitenvorlagen

Wie bereits erwähnt, sind Zope -Seitenvorlagen selbst XHTML -Dokumente, was bedeutet, dass sie mit normalen HTML -Editoren oder XHTML -konformen Tools angezeigt und bearbeitet werden können (ein großer Vorteil im Vergleich zu anderen Vorlagensprachen, die für Webanwendungen verwendet werden). Vorlagen können auch auf XHTML -Konformität überprüft werden, sodass Sie ziemlich zuversichtlich sein können, dass sie automatisch in das richtige XHTML expandieren.

Diese Seitenvorlagen sollen jedoch nicht so wie sie sind. Stattdessen sind sie mit zusätzlichen Elementen und Attributen in speziellen XML -Namespaces (siehe unten) gekennzeichnet. Diese zusätzlichen Informationen werden verwendet, um zu beschreiben, wie die Seitenvorlage letztendlich verarbeitet werden soll.

Hier sind einige grundlegende Beispiele. Bedinglich ein bestimmtes Element einzuschließen, wie a div Element fügen Sie einfach das hinzu Tal: Zustand Attribut auf das Element wie folgt:

<div Tal: Zustand="...">   ...div> 

Verwenden Sie das, was in einem Element erscheint, um das zu steuern, was in einem Element erscheint, das Tal: Inhalt solche Attribut:

<H1> <Spanne Tal: Inhalt="..."/> </H1> ...

Um Werte von Attributen einzuführen oder zu ersetzen, verwenden Sie schließlich die Tal: Attribute Attribut wie unten. Sie können Python verwenden, um die HREF zur Laufzeit zu ändern.

<a href="" " Tal: Attribute="href python: 'http: //someurl.com/%S'%SomeObject">...a> 

Dies ist eine sehr flüchtige Erklärung der Zope -Seitenvorlagen. Das Verhalten von Zope -Seitenvorlagen wird durch a fast vollständig beschrieben Vorlagesprache, behoben auf Tal-, Geschichten und Metallspezifikationen:

Bemerkenswerte Software mit Zope

Schooltool ist eine Open Source Schülerinformationssystem Das verwendet Zope.
Plonen ist eine Open Source Content -Management -System Das verwendet Zope.

Siehe auch

Verweise

  1. ^ a b Reuven M. Lerner. "Bei der Schmiede - Beurteilung von Ruby on Rails". Linux Journal. Abgerufen 2010-03-26. Zope war auch Pionier der Idee des Objektverlags, bei der eine URL die Methode beschreibt, die auf ein bestimmtes Objekt aufgerufen werden sollte.
  2. ^ a b Philip J Eby (2003-12-11). "Kommentar zu" Lisp und Produktivität "". Joel über Software. Abgerufen 2010-03-26. 1997 entwickelte Jim Fulton (The CTO bei Zope Corp) eine Technik, die er als "Objektveröffentlichung" bezeichnete, und implementierte in einer Bibliothek namens Python Object Publisher (auch bekannt als Bobo). Die Objektveröffentlichungsmetapher findet sich heute in vielen Python -Toolkits. In anderen Sprachen ist es bestenfalls in verkrüppelter Form gefunden.
  3. ^ Lutz, Mark (2006). "18: Fortgeschrittene Internet -Themen". Programmieren von Python (3 ed.). O'Reilly Media. ISBN 9780596554613. Abgerufen 2010-03-27. Die Verwendung von Zope hat sich so schnell ausgebreitet, dass viele Pythonistas als Python angesehen haben Killeranwendung - Ein System, das so gut ist, dass es Python natürlich in den Entwicklungslicht bringt.
  4. ^ Jon Udell (2000-02-07). "Zope ist Pythons Killer -App". BYTE. Archiviert von das Original Am 2000-03-02. Abgerufen 2011-06-04.
  5. ^ "Guido van Rossum verlässt Zope.com - Slashdot". Entwickler.Slashdot.org.
  6. ^ "Bluebream -Dokumentation". Abgerufen 2010-01-17.
  7. ^ "Zope Foundation Board of Directors Meeting 2010-10-14". Abgerufen 2010-01-17.
  8. ^ https://github.com/zopefoundation/zope/releases/tag/5.1.1.
  9. ^ "Bluebream 1.0". pypi.python.org. 2011-01-18. Abgerufen 2020-11-04.
  10. ^ a b "1. Einführung - Bluebream V1.0b4 Dokumentation". bluebream.zope.org.
  11. ^ http://foundation.zope.org/minutes/zfbod-minutes-20100114
  12. ^ "FAQ - General 5: Was ist die Lizenz von Zope 3?". Zope 3 ist unter Zope Public Lizenz, Version 2.1 (ZPL), lizenziert.
  13. ^ "Zope 3 Wiki -Komponentenarchitektur". 9. Mai 2008. archiviert von das Original am 9. Mai 2008.
  14. ^ "Archivierte Kopie". Archiviert von das Original am 14. August 2012. Abgerufen 17. August, 2012.{{}}: CS1 Wartung: Archiviertes Kopie als Titel (Link)
  15. ^ "Changelog - Zope -Dokumentation 4.0 Dokumentation". zope.readthedocs.io.

Externe Links