Anzeige
Anzeige
UX & Design

Ajax-Framework mit Fokus auf grafische Benutzeroberflächen: Qooxdoo

Mit dem Open-Source-Projekt Qooxdoo – sprich „guckstdu“ – hat die 1&1 Internet AG ein umfangreiches Ajax-Framework initiiert. Es bietet eine weitreichende Unterstützung für die professionelle JavaScript-Anwendungsentwicklung, ein performantes GUI-Toolkit und gute Client-Server-Kommunikation.

4 Min.
Artikel merken
Anzeige
Anzeige

Die Open-Source-Software Qooxdoo bietet nicht nur zahlreiche praktische
Lösungen, sondern auch eine technologische Basis für eigene Anwendungen
ambitionierter Softwareentwickler. Die Demonstration [1] auf der Website von Qooxdoo bietet Interessierten einen guten Einstieg, um das freie JavaScript-Framework eingehend unter die Lupe zu nehmen.

Framework, GUI-Toolkit, Ajax-Schnittstelle

Anzeige
Anzeige

Qooxdoo unterstützt die Erstellung komplexer Webanwendungen mit dem von klassischen Desktopapplikationen gewohnten Look-and-Feel. Anders als andere Frameworks beschränkt es sich nicht nur auf browserunabhängige DOM-, Event- oder Ajax-Schnittstellen, sondern legt darüber hinaus großen Wert auf ein einheitliches integriertes Widget-System. Beispiele dafür sind die durchgängige Bedienbarkeit per Tastatur, ausgefeiltes Fokusmanagement, Drag & Drop sowie die einfache Erstellung von Themes für komplette Anwendungen.

Das Programmierkonzept von Qooxdoo sieht vor, den Client weitgehend unabhängig vom Server in JavaScript zu entwickeln. Um eine professionelle Entwicklung von JavaScript-basierten Anwendungen zu ermöglichen, ist das Framework daher vollständig klassen- und objektorientiert. Es implementiert auf Basis von JavaScript auch höhere Features von Objektorientierung wie Interfaces und Mixins, verwendet Namespaces zur Organisation der Klassen und verzichtet darauf, native JavaScript-Typen zu erweitern. Den Entwicklungsprozess unterstützt Qooxdoo durch einen integrierten JavaScript-Linker und -Optimierer, der alle von der Anwendung verwendeten Klassen in korrekter Reihenfolge zu einer JavaScript-Datei zusammenfasst. Bei der Optimierung werden die Dateigröße minimiert, die Laufzeit verbessert und die Lesbarkeit erschwert (Obfuscation), was bei kommerziellen Angeboten und aus Sicherheitsgründen wichtig sein kann. Ein integrierter API-Viewer zeigt alle Qooxdoo-Klassen und auch die API-Dokumentation von Anwendungscodes an.

Anzeige
Anzeige

Ein wichtiges Merkmal von Qooxdoo: Es verwendet für die Gestaltung der Oberflächen nur JavaScript, DOM und CSS. Es werden keinerlei Plugins wie ActiveX, Java, Flash oder Silverlight vorausgesetzt. Unterstützt werden alle zurzeit gängigen Browser wie Internet Explorer, Firefox, Opera sowie der neue Safari 3. Qooxdoo abstrahiert die nativen DOM- und CSS-Schichten des Browsers und gleicht so die Vielzahl der Browser-Inkompatibilitäten aus. Der Programmierer kommt aus diesem Grund nur noch mit den höheren Programmierschnittstellen in Berührung und benötigt für die Benutzung von Qooxdoo daher weder HTML- noch CSS-Kenntnisse.

Anzeige
Anzeige

Bei Desktop- oder GUI-Anwendungen hat sich eine einheitliche grafische Formensprache herausgebildet, die programmiertechnisch mit Hilfe von Widgets realisiert wird. Qooxdoo bietet hierfür in seinem Toolkit verschiedene Menü- oder Dialogfenster, Schaltflächen, Radio-Buttons, Check-Boxen, Beschriftungen, Eingabefelder, Listen- oder Baumansichten und vieles mehr.

Die in der GUI-Programmierung üblichen Widgets wurden mit Hilfe von
JavaScript und DOM für den Webbrowser realisiert. Die Ähnlichkeit zu
klassischen GUI-Toolkits wie QT, Swing oder MFC besteht auch auf der
Programmierebene. Die Anwendungen werden aus Widgets zusammengestellt
und mit Hilfe von Events gesteuert. Layout-Manager sorgen für die
korrekte Platzierung der Widgets und ermöglichen flexible Layouts, die
sich zum Beispiel an die Größe des aktuellen Browserfensters anpassen.
Unterstützt werden Tastatur- und Maus-Navigation sowie
Drag-&-Drop-Funktionen. Das Erscheinungsbild der Anwendung – Farben,
Rahmen, Schriften, Symbole usw. – wird über so genannte „Themes“
festgelegt. Themes sind in einem deklarativen Stil ähnlich zu CSS
definiert, so dass nicht nur Programmierer, sondern auch Designer diese gestalten können.

Anzeige
Anzeige

Qooxdoo ist als reines Client-Framework nicht an eine bestimmte
Servertechnologie gebunden und wird in Projekten mit Java-,
PHP-, Perl-, Ruby-, Python- und .Net-Backends eingesetzt. Die mitgelieferten
RPC-Server für Java, PHP und Perl ermöglichen einen einfachen Aufruf von
Funktionen auf dem Server.

Community

Über die öffentliche Qooxdoo-Mailingliste werden
aktuelle und zukünftige Entwicklungen von der Community diskutiert, Bugs gemeldet oder
Fragen von Einsteigern und Fortgeschrittenen beantwortet. Im
Wiki-Bereich der Homepage kann jedermann zur Dokumentation des
Frameworks beitragen. Auch das Bug-Tracking und die Quelltexte in der
Versionsverwaltung sind öffentlich zugänglich. Benutzer rund um den
Globus haben einen wesentlichen Teil zur Stabilität und Ausgereiftheit
des Frameworks beigetragen.

Anwendungsbeispiele

Aufgrund seiner Ausrichtung auf desktopähnliche Anwendungen eignet sich Qooxdoo gut für webbasierte Intranetanwendungen, die früher vielleicht mit Delphi oder VisualBasic erstellt worden wären. Da ein Teil der Rechenlast auf den Client ausgelagert werden kann, ist eine hohe Skalierbarkeit von Qooxdoo-Anwendungen möglich. Das Framework kann daher problemlos auch auf öffentlichen Websites mit sehr hohem Traffic eingesetzt werden. Ein Beispiel dafür ist der neue GMX-Webmailer. Dieser erinnert in seiner jetzigen Form viel mehr an Desktopanwendungen wie Outlook als sein Vorgänger. Er ist clientseitig vollständig mit Qooxdoo realisiert und demonstriert sehr gut das Potenzial des Frameworks.

Anzeige
Anzeige

Neben reinen Anwendungen, die mit Qooxdoo erzeugt werden, gibt es auch Projekte, die auf dem Widget-System von Qooxdoo aufsetzen, um eigene Programmiermodelle zu realisieren. Innerhalb der Rich-Ajax-Platform (RAP) der Eclipse-Foundation wird Qooxdoo als Rendering-Engine für die Implementierung des RAP-Widget-Toolkit realisiert. RAP kombiniert das Entwicklungsmodell von Eclipse mit der Welt der Ajax-Anwendungen. RAP-Anwendungen werden in Java gegen eine Teilmenge der Standard-Widget-Toolkit-Schnittstelle programmiert und laufen vollständig auf dem Server. Eine generische JavaScript-Schicht im Client erstellt beziehungsweise modifiziert auf Anfrage des Servers dynamisch Qooxdoo-Widgets und leitet Events an den Server weiter.

Ausblick

Schon in der aktuellen Version 0.7.1 ist Qooxdoo für den produktiven Einsatz geeignet, dennoch gibt es einige Dinge, die bis zur Version 1.0 noch verbessert und erweitert werden sollen. Als nächster Schritt steht die Überarbeitung des Layout-Managers an, um eine bessere Anpassung der Widget-Themes an und eine bessere Integration von Qooxdoo-Widgets in „normale“ Webseiten zu ermöglichen. Außerdem soll der Code, der auf unterster Ebene für die Abstraktion der Browser-Inkompatibilitäten zuständig ist, besser vom Widget-System entkoppelt werden. Somit könnte Qooxdoo auch ohne Widgets auf einfachen Webseiten eingesetzt werden, um etwa die Funktionalitäten abzudecken, die Frameworks wie Jquery oder Prototype heute bieten.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige