Get your wingS back!

Alternativen

Zum Abschluss wollen wir noch eine kurze Gegenüberstellung mit den ebenfalls freien MVC-Frameworks Echo2 und Eclipse RAP wagen. Beide können ebenfalls sehr beeindruckende Ergebnisse vorweisen und verfolgen mit ihren reinen Java-APIs durchaus ähnliche Ansätze. Das Echo2-Framework orientiert sich hierbei nicht ganz so stark an den bekannten Brüdern aus dem Desktop-Bereich und vernachlässigt einige Querschnitt-Details zugunsten einer einfacheren Implementierung. So bietet es nur stark reduzierte Layoutmöglichkeiten (horizontal, vertikal, matrix) und schwächelt durch den fehlenden CellEditor-Ansatz oder einer Aktualisierung auf Zellenebene im Bereich der Tabellen. Dafür bietet es eine schicke Optik und eine hervorragende Cross-Browser-Kompatibilität.

Deutlich anspruchsvoller dagegen ist dort der Blick hinter die Kulisse. Aufgrund des Ansatzes, die Sicht exklusiv über DOM aufzubauen, kann das aktuelle HTML-Dokument nur über zusätzliche Werkzeuge wie FireBug eingesehen werden. Etwas problematisch dagegen ist, dass selbst mit diesen Hilfsmitteln der Zugriff auf große Teile des JavaScript-und Ajax-Teils verwehrt bleibt, was die eigene Komponentenentwicklung und Fehlersuche schwierig gestaltet. Viele Detailfunktionen wie Abstände, Ränder, Tastatursteuerung und Drag & Drop welche in wingS standardmäßig enthalten sind, rüstet erst das unabhängige Projekt EchoPointNG mit erweiterten Komponenten nach. Leider vermisst man dann auch wieder öfters den Blick unter die Haube des sonst sehr stabilen Frameworks.

Relativ neu auf dem Markt ist das Projekt Eclipse RAP, welches sich ehrgeizige Ziele gesetzt hat. Es ist analog zu den anderen Teilen in Eclipse als OSGi-Plugin realisiert und möchte die API der Eclipse Rich Client Plattform (RCP) vollständig für Web-Anwendungen zugänglich machen. Das ist ein anspruchvolles Ziel, beinhaltet RCP doch letztendlich alle Elemente der bekannten Eclipse IDE Workbench. Zum Einsatz kommt daher das Ajax-Framework quooxdoo, welches clientseitig selbst nochmals eine vollständige, recht gut gelungene Bibliothek an Widgets für JavaScript bereitstellt. RAP generiert daher selbst auch keinerlei HTML sondern ausschließlich JavaScript-Code der dann im Browser zur Ausführung kommt und die entsprechenden qooxdoo Widgets erzeugt, konfiguriert und nutzt. Jedes Widget hat somit immer zwei Komponenten-Repräsentationen: Eine „SWT“-Instanz auf dem Server und eine qooxdoo-Instanz auf dem Client (vgl. Half- Object Pattern). Auch beim Layout greift RAP etwas tiefer in die Trickkiste, da es originale SWT Implementierungen verwendet. Bei Komponenten deren Pixelgröße nicht a priori bekannt sind, werden diese im Einzelfall erst unsichtbar im Browser gerendert, deren Maße an den Server zurückgesendet um dann erst im zweiten Schritt im Browser gelayoutet zu werden. Ein Styling dieser Widgets erlaubt qooxdoo, und damit auch RAP, über das Setzen von Properties der qooxdoo Widgets welche in RAP dann als Property-Datei abgelegt werden können.

Tabelle 1: MVC Web-Frameworks
Feature wingS Echo2 RAP
Programmier-
Modell
Swing-nahe Properitär SWT/JFace-nahe, Eclipse RCP
Container Servlet Servlet OSGi
Styleability CSS, Layout-Templates XML Stylesheets Qooxdoo Properties
Layouter Grid, GridBag, Box, Flow, Template, Border Row, Column, Grid Row, Grid, Form, Fill
Layout-
Berechnung
Client-Seitig Client-Seitig Client & Server-Seitig
Render-
Technik
HTML, CSS, JavaScript HTML via DOM,
indirekt CSS
JavaScript-Code
Verwendete
UI Kits
Yahoo UI Library Keine quooxdoo
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.