ZK OSS: Webframework Vorstellung

Nachdem es urlaubsbedingt länger keinen Eintrag hier gegeben hat, möchte ich die Saison mit der Vorstellung eines Webframeworks für Java beginnen: dem ZK Framework

ZK Beispielseite

ZK ist ein Open Source Produkt einer Firma aus Taiwan und im Prinzip mit dem hier sehr populären Vaadin vergleichbar. Es ermöglicht die Erstellung eines Web-GUIs (Single Pager) mit einer Reihe von Komponenten, ohne die serverseitige Programmierung verlassen zu müssen oder sich mit HTML/Javascript zu beschäftigen. Dies wird durch eine Javascript-Library ermöglicht, welche beim Öffnen einer ZK-Seite geladen wird und danach über Ajax-Aufrufe mit dem Server im Hintergrund kommuniziert. Zwischen dem Client (Browser) und dem Server werden nach dem ersten Laden nur noch JSON-Daten ausgetauscht, in denen der Client den Server über User-Interaktionen (z.B. klicken eines Buttons) informiert und der Server zurückmeldet, wie das GUI darauf reagieren soll. Dadurch wird eine relativ rasche Interaktion zwischen Client und Server erreicht.

Man arbeitet beim Design der Seite hauptsächlich mit vorgegebenen Komponenten, welche man in einer .zul-Datei zusammenstellt. Jede Komponente kann über einen Namen angesprochen werden. Weiters ist es möglich, auch eigene Komponenten zu gestalten bzw. diese aus Basis-Komponenten zusammenzustellen.

In vielen Fällen wird man somit rein auf der Serverseite in Java programmieren und man braucht sich nicht um Ajax-Aufrufe, Javascript oder HTML kümmern. Dies wird alles von ZK erledigt. Trotzdem ist es möglich, auch Client-seitigen Code zu integrieren, etwa wenn man eine eigene Javascript-Bibliothek einbinden will oder gegenseitige Interaktion der Komponenten ohne Server-Calls zu implementieren. Somit kann man die nötigen Ajax-Calls verringern und die Geschwindigkeit optimieren.

ZK Spreadsheet

Was uns an ZK beeindruckt hat, sind die sehr schön gestalteten Komponenten, welche sehr (Windows) Desktop ähnlich sind. Und die Spreadsheet-Komponente, welche es ermöglicht Daten auf der Webseite in einem Spreadsheet ähnlich Excel bearbeiten zu lassen. Die Einarbeitung in das Framework geht relativ schnell, komplizierter wird es meist wenn man Probleme hat die nicht mit den Standard-Komponenten lösbar sind.

Um Integrationstests bzw. GUI-Tests durchzuführen, stellt ZK mit ZATS sogar eine eigene Library zur Verfügung, um GUI Interaktionen zu simulieren und das Ergebnis abzufragen. Hierzu ist kein eigener Browser nötig und die Ergebnisse können z.B. mit JUnit-Asserts abgefragt und in die eigene Test-Suite integriert werden.

ZK OSS ist in drei Editionen verfügbar: Die Edition ZK CE (Community-Edition) steht unter der Open-Source-Lizenz LGPL. Die Editionen ZK PE und ZK EE sind unter der ZK Open Source License oder einer kommerziellen Lizenz verfügbar.