Benutzer:Marc van Woerkom/qooxdoo
aus Wikipedia, der freien Enzyklopädie
qooxdoo ['kʊksdu] ist ein Ajax-GUI-Framework, welches den Bau von Webbrowser-Anwendungen ermöglicht, welche herkömmlichen Desktop-Anwendungen stark ähneln. Es handelt sich um ein Open Source-Projekt unter EPL- und LGPL-Lizenz.
qooxdoo bietet eine grosse Bibliothek an fertigen JavaScript-Komponenten für die Entwicklung von GUI-Anwendungen (u.a. Widgets, Eventhandler, Timer, Layoutmanager, Themes) und gibt einen wohldurchdachten Rahmen für die Organisation und Ausführung dieser Anwendungen vor (deswegen handelt es sich nicht nur um eine Bibliothek, sondern um ein Framework).
Innerhalb der Rich Ajax Platform (RAP) der Eclipse-Foundation wird qooxdoo für die Implementierung des RWT-Toolkits verwendet, dem Ajax-Pendant zum SWT-Toolkit.
Inhaltsverzeichnis |
[Bearbeiten] Einführung
[Bearbeiten] Vorzeit und Terminalanwendungen
In den Anfangszeiten der Informationstechnik fand die Wechselwirkung zwischen Anwender und Rechnern, also die Eingabe und Ausgabe von Informationen, nur über sehr einfache Peripheriegeräte statt (Schalter, Lochkartenstanzer etc.). In den 80er Jahren erfuhren Rechner eine grosse Verbreitung auch in Privathaushalten und kleineren Unternehmen, wobei die Eingabe bereits über elektronische Tastaturen und die Ausgabe über Monitore mit Textdarstellung realisiert wurde (Terminalbetrieb).
[Bearbeiten] Desktopanwendungen
Mit zunehmender Leistungsfähigkeit der Grafikhardware und der Verbreitung der Maus konnten auch im Massenmarkt grafische Benutzeroberflächen eingeführt werden. Heute noch populäre Systeme, wie MacOS oder Microsoft Windows wurden veröffentlicht, die sich der Metapher des Desktop bedienten, eine Technologie, die bereits in den 70er Jahren am Xerox PARC Labor entwickelt wurde. Im Vergleich zu den bis dahin verbreiteten Terminalanwendungen waren diese Anwendungen, sog. Desktopanwendungen, leichter zu bedienen und erfuhren daher eine rasche Verbreitung. Besonders bekannte Vertreter sind z.B. Microsoft Word und Microsoft Excel.
[Bearbeiten] Webanwendungen
In den 90er Jahren wurde auch das Internet eine Massentechnologie, die vor allem durch den Webbrowser den Durchbruch schaffte. Es war jetzt möglich, von überall auf der Welt mit anderen vernetzten Systemen zu interagieren. Nach einiger Zeit begann man, auch mit dieser Technologie Anwendungen zu realisieren. Die Eingabe und Ausgabe der Informationen erfolgt dabei über den Webbrowser, der sich neben dem Desktop als zweite Plattform für Anwendungen etablierte.
Im Vergleich zu den Desktopanwendungen schnitten Webanwendungen lange Zeit schlechter ab, was die Eingabe von Daten anging, da das für die Realisierung der Oberfläche verwendete HTML nur sehr einfache Formularelemente zur Dateneingabe kennt. Bei der Ausgabe von Daten konnte für die Präsentation teilweise eine höhere Qualität erreicht werden, als bei Desktopanwendungen, was aber weniger an den technischen Möglichkeiten lag (beide Anwendungstypen können Bilddateien anzeigen, Desktopanwendungen haben zudem die Möglichkeit über Canvas-Widgets frei zu zeichnen), als an der Tatsache, dass die Hersteller von Webanwendungen meist bessere Grafiker (später: Webdesigner) beschäftigten, als die Hersteller von Desktopanwendungen.
Typisch für Webanwendungen war der Zyklus
- Browser holt Seitendokument vom Server (evt. Warten) und zeigt es an,
- Benutzer tätigt Eingabe,
- Eingabe wird zum Server geschickt (evt. Warten),
- Server schickt aktualisiertes Dokument, Neuaufbau der Seite
was eine viel gröbere Interaktivität, als bei Desktopanwendungen darstellt.
[Bearbeiten] Dynamisches HTML und Ajax
Mit der besseren Programmierbarkeit der Webbrowser durch JavaScript und der Nutzbarmachung der vom Browser geladenen Dokumente für JavaScript-Programme in Form eines DOM-Objektbaums, sowie Mausabfragen, konnte die Eingabe und Ausgabe in Webanwendungen stark verbessert werden. Diese Techniken sind als Dynamisches HTML bekannt.
Zudem einigten sich die beiden grössten Browserentwickler, Microsoft und das Mozilla Projekt, auf einen gemeinsamen Weg, wie eine Webanwendung im Hintergrund Daten mit einem Server austauschen kann (XMLHttpRequest-Objekt, asynchrones JavaScript). Beide Techniken wurden dann ab ca. 2004 kombiniert und unter dem Schlagwort Ajax bekannt. Ajax-basierte Webanwendungen zeichnen sich durch eine weitere verbesserte Handhabung und Präsentation im Vergleich zu klassischen Anwendungen aus. Z.B. konnte der oben skizzierte Zyklus des fortgesetzten Neuholens von Seitendokumenten dadurch oft vermieden werden. Ein berühmtes Beispiel ist Google Maps. Zudem wurde mehr Wert auf die Einbeziehung der Nutzer in Anwendungen gelegt, soziale Aspekte traten in den Vordergrund. Das Schlagwort Web 2.0 etablierte sich für diese neuen Webanwendungen.
Klassisch: Desktop mit Desktop-Anwendungen (ca. seit 80er Jahren). |
Webbrowser mit Webbrowser-Anwendung (ca. seit 90er Jahren). |
Mozilla-Webbrowser mit XUL-Anwendung (ca. seit 1997). |
Webbrowser mit qooxdoo-Anwendung (ca. seit 2005). |
[Bearbeiten] XUL-Anwendungen
Um die Lücke in Präsentation und Handhabung (Look & Feel) zu Desktopanwendungen weiter zu verringern, unternahm man weitere Anstrengungen. Die Mozillaentwickler hatten die Aufgabe, das Aussehen ihres Browsers stark an verschiedene Auftraggeber anzupassen (Browser-Branding), z.B. sollte der von AOL genutzte Mozilla (die Netscape u.a. deswegen gekauft hatten) stark firmenspezifisch aussehen. Die Entwickler schufen hierzu die XUL-Technologie, bei der grafische Standardelemente (sog. Widgets) durch Angabe eines XML-Dokumentes deklarativ spezifiziert werden und durch JavaScript-Methoden gesteuert werden. Dies ermöglichte mit relativ geringen Aufwand eine verbesserte Präsentation.
Im obigen Bild sieht man z.B. zwei Treeview-Widgets zur Anzeige von hierarchischen Daten (Baum-Datenstruktur), die von Hause aus nicht zur Verfügung stehen - man müsste diese normalerweise relativ aufwendig selbst programmieren. Nachteil der XUL-Technologie ist, das sie bislang nur in Browsern zur Verfügung steht, die auf Mozilla-Quellcode basieren.
[Bearbeiten] qooxdoo-Anwendungen
Bei qooxdoo hat man sich die Mühe gemacht, die in der GUI-Programmierung üblichen Widgets mit Hilfe von JavaScript und DOM zu realisieren. Ein Entwickler, der qooxdoo nutzt, kann auf diesen vorhandenen Quellcode zurückgreifen und sich auf die Entwicklung seiner eigenen Anwendung konzentrieren. Dabei wurde ein hinreichend vollständiger Satz an Widgets geschaffen, so dass es möglich ist, Webanwendungen damit zu realisieren, die in der Präsentation und Handhabung kaum noch Unterschiede zu Desktopanwendungen aufweisen.
Das Bild mit der qooxdoo-Anwendung zeigt zwei Fenster, eines davon mit Reitern, das andere mit Check-Boxes, Radio-Buttons und einer simplen Schaltfläche. Man beachte, dass diese Anwendung im Browser selbst läuft.
[Bearbeiten] Ausblick
Innerhalb der Rich Ajax Platform (RAP) der Eclipse-Foundation wird qooxdoo als Rendering-Engine für die Implementierung des RWT-Toolkits verwendet. Dies ist als Pendant zum SWT-Toolkit gedacht, mit den gleichen Softwareschnittstellen, aber halt in Ajax-Technologie für den Einsatz im Webbrowser realisiert. Der Entwickler braucht nur noch eine Quellcodeversion für beide Plattformen (Desktop und Webbrowser) zu erstellen und pflegen. Er entscheidet dann lediglich, für welche Plattform der Code generiert werden soll, die beträchtlichen Unterschiede zwischen beiden Plattformen werden durch die Frameworks und Toolkits verborgen.
[Bearbeiten] Vorteile
Vorteile von qooxdoo-Anwendungen sind:
- Portabilität: Diese Anwendungen laufen im Webbrowser und stehen somit dem Anwender auf allen Systemen zur Verfügung, auf dem ein von qooxdoo unterstützter Webbrowsertyp vorhanden ist (u.a. Internet Explorer, Mozilla, Safari).
- Einfache Bedienung: Die Anwendungen haben das von klassischen Desktopanwendungen gewohnte Look & Feel und sind daher für den Anwender leicht zu bedienen.
- Anpassbarkeit: Die Entwickler können eigene Themes definieren und damit das Look & Feel geeignet für ihre Anwendung anpassen.
[Bearbeiten] Programmierung
Die Ähnlichkeit zu klassischen GUI-Toolkits, wie Qt, Swing, MFC etc. besteht auch auf der Programmierebene, die Anwendungen werden aus Widgets zusammengestellt und mit Hilfe von Events gesteuert.
[Bearbeiten] Einordnung
Ein ähnliches Ziel, nämlich den Browser als GUI-Plattform zu verwenden, verfolgte bereits das Mozilla-Projekt mit seiner XUL-Technologie, diese ist jedoch auf deren Browservarianten beschränkt.
Ähnlicher zu qooxdoo ist das Dojo-Framework, welches ebenfalls auf die Implementierung einer Cross-Plattform-GUI rein via JavaScript und DOM setzt.
[Bearbeiten] Geschichte
Das Framework wurde von 1und1-Mitarbeitern als Open-Source-Projekt gestartet.
[Bearbeiten] Sonstiges
Der Name ist eine Verballhornung des Spruchs guckst Du (badisch gesprochen).
[Bearbeiten] Literatur
- Crane, Dave und Eric Pascarello mit Darren James: Ajax in Action, Manning, 2005 - Darstellung der Implementierungstechniken.