Zope und Python Anwendungen in der Praxis

Presentation i held on CeBIT 2003 at the LinuxForum. Its a general view on Python and Zope. Its a OpenOffice.org Document automatically converted to html by CMFOODocument.

Zope und Python Anwendungen in der Praxis

Simon Eisenmann (struktur AG)
http://www.struktur.de, http://www.icoya.de

Python als interpretierte, interaktive und objektorientierte Programmiersprache kombiniert bemerkenswerte Mächtigkeit mit klarem Syntax. Dieser Vortag bietet Einblicke in praxisnahe Python Anwendungen am Beispiel des Applications Servers Zope und der Office Suite OpenOffice und zeigt dass Python weit mehr ist als eine Rapid Application Development Language. Wann sprechen Sie Python und Zope?

Inhaltsverzeichnis

Zope und Python Anwendungen in der Praxis
Was ist Python
Warum sollte man Python verwenden?
Warum könnten wir Python brauchen?
Was macht Python so besonders?
What About Application Speed vs. Development Speed?
Was ist Zope
Python und Zope im Einsatz
Was Zope für Sie tun kann
Zope Core Features
Content Management mit icoya OpenContent
Editor Integration (ExternalEditor)
OpenOffice Integration (CMFOODocument)
Mehrsprachiger Inhalt (I18NLayer)
Weitere Informationen
Fragen?

Was ist Python

Python is an Open Source programming language created by Guido van Rossum. While it has been available since 1990, it has recently seen a dramatic increase in popularity. If you're wondering what all the fuss is about, you've come to the right place. We like Python and we think you'll like it too.

Python combines remarkable power with very clear syntax. It has modules, classes, exceptions, very high level dynamic data types, and dynamic typing. There are interfaces to many system calls and libraries, as well as to various windowing systems (X11, Motif, Tk, Mac, MFC). New built-in modules are easily written in C or C++. Python is also usable as an extension language for applications that need a programmable interface.

The Python implementation is portable: it runs on many brands of UNIX, on Windows, DOS, OS/2, Mac, Amiga...

Warum sollte man Python verwenden?

Because Python is simply the best combination of technical excellence and eminent practicality of any programming language available today. Python is simple, elegant, powerful and reliable. And since it's an open-source language, it's backed by thousands of professionals who each have a vested interest in its being the best tool it can be.

Warum könnten wir Python brauchen?

If you are completely satisfied with how the software in your organization is created and maintained, then you probably don't need Python. But if you have a backlog of requests, bug-ridden or inflexible applications, stressed-out developers or frustrated users, then maybe a contributing factor is your development tool. Python can help you increase your development speed, power and flexibility.

Was macht Python so besonders?

Python besteht aus einer einzigartigen Kombination verschiedener Eigenschaften: Python ist:

  1. Kostenlos: Alles was benötigt wird kann umsonst heruntergeladen und weiterverbreitet werden – inklusive Upgrades.

  2. Open-Source: Der gesamte Code, welcher Python ausmacht ist zur Einsicht und Anpassung verfügbar.

  3. Maintainbar: Mit einfachem, klarem Syntax hat Python es geschafft, aufgeblähten Syntax wie man es von anderen Programmiersprachen kennt, zu vermeiden. Deshalb kann ein Python Program von anderen Programmieren (neben dem Author) selbst durch lesen des Codes leicht verstanden werden.

  4. Für jeden Zweck: Python enthält einen vollständig gefüllten Werkzeugkasten mit Tools für jeden erdenklichen Zweck.

  5. High-Level: Python kümmert sich um viele low-level Programmier-Details, welche andere Programmiersprachen dem Programmierer überlassen. Das bedeutet das Python Programme auf vielen völlig unterschiedlichen Platformen laufen und Speicher effizient verwalten.

  6. Interpretiert: Das Compilieren kann sehr zeitraubend sein. Python programme werden interpretiert, was erlaubt Python Dateien sofort zu verändern und dann zu verwenden.

  7. Object-orientiert: Alles ist ein Objekt. Ja alles inklusive Module, Funktionen, Attribute und Methoden. Alles ist ein Objekt in Python und jedes Objekt beinhaltet standartisierte optimierte Funktionalität.

  8. Introspectiv: Objekte können on-the-fly inspiziert oder verändert werden.

  9. Erweiterbar: Der Funktionsumfang von Python kann leicht direkt, oder mittels C, C++,Java Modulen erweitert werden.

  10. Vollständig: Python bietet die Möglichkeit mit einer kleinen Anzahl mächtiger Konstruktoren eine unbegrenzte Anzahl von Problemen zu lösen.

  11. Dynamisch: Der Programmcode kann zur Laufzeit verändert werden, was Applikationen wesentlich flexibler macht.

  12. Robust: Python hat einfaches, aber effektives Error Handling genauso wie mächtige Test- und Debug-Werkzeuge.

  13. Cross-Platform: Python Programme können ins gleicher qualität ohne code Anpassung auf Windows, Linux, Unix, Macintosh, OS/2, Amiga, und vielen mehr laufen.

  14. Gesprächig: Python unterstützt COM, DCOM, CORBA, XML, SOAP, Web, Databases, usw.

What About Application Speed vs. Development Speed?

    Was ist Zope

    Zope is an open source web application server primarily written in the Python programming language. It features a transactional object database which can store not only content and custom data, but also dynamic HTML templates, scripts, a search engine, and relational database (RDBMS) connections and code. It features a strong through-the-web development model, allowing you to update your web site from anywhere in the world. To allow for this, Zope also features a tightly integrated security model. Built around the concept of "safe delegation of control", Zope's security architecture also allows you to turn control over parts of a web site to other organizations or individuals. The transactional model applies not only to Zope's object database, but to many relational database connectors as well, allowing for strong data integrity. This transaction model happens automatically, ensuring that all data is succesfully stored in connected data sources by the time a response is returned to a web browser or other client.

    Python und Zope im Einsatz

    1. Vielerorts ist Python im Einsatz. (Google, RedHat, ...)

    2. Einige Zope powered Webseiten ( http://www.cbsnewyork.com/ , http://www.activestate.com/ )

    Was Zope für Sie tun kann

    Zope Core Features

    There are numerous products (plug-in Zope components) available for download to extend the basic set of site building tools. These products include new content objects; relational database and other external data source connectors; advanced content management tools; and full applications for e-commerce, content and document management, or bug and issue tracking.

    1. Demonstration: dynamische Seiten mit Restricted Python Scripts

    2. Demonstration: PageTempaltes and Beispielen

    Content Management mit icoya OpenContent

    icoya OpenContent ist die schnelle und kostengünstige Lösung für die Erstellung und Pflege  Ihrer Website oder Ihres Intranets.  Icoya basiert dem Zope Content Management Framework - CMF (cmf.zope.org) und auf Plone (www.plone.org).

    1. Demonstration: icoya OpenContent

    Editor Integration (ExternalEditor)

    WebDAV Client/Server mit Python in der praktischen Anwendung. External Editor ermöglicht beliebigen Anwendungen via WebDAV Dokumente aus Zope zu editieren.

    1. Demonstration: Editor Integration inkusive Tk Python Client.

    OpenOffice Integration (CMFOODocument)

    Showcase der OpenOffice Anbindung. OpenOffice Dokumente bestehen aus archivierten XML Dateien welche via Python über eine XSL Transformation (libxslt) zur Webdarstellung gebracht werden.

    1. Demonstration: CMFOODocument

    Mehrsprachiger Inhalt (I18NLayer)

    In Europa sind mehrsprachige Webseiten schon fast Plicht. Icoya unterstützt mehrsprachige Webseiten und ist vollständig Unicode fähig. Das Layout kann mittels GNU Gettext Katalogen  ebenfalls vollständig internationalisiert werden.

    1. Demonstration: Erstellung mehrsprachigen Inhaltes mit icoya. Zugriff auf das mehrsprachige Dokument abhängig von Browsereinstellungen oder Cookie.

    1. Demonstration: Gettext Katalog mittels kBabel

    Weitere Informationen

    Zope und Plone werden von einer Community weltweit weiter entwickelt. Hunderte Entwicker tragen aktiv zum Erfolg von Python/Zope bei.

    http://www.icoya.de - Weitere Informationen zu icoya OpenContent

    http://www.python.org - Python Community

    http://www.zope.org - Zope Community

    http://www.dzug.de - Deutsche Zope User Group

    Fragen?

Copyright Simon Eisenmann http://longsleep.org/ - License under Creative Commons License - valid: xhtml, css

powered by icoya