
ZK (Zero Kode), framework de développement web OpenSource
Posté le 28 octobre 2009 :: Développement
ZK (Zero Kode) est un framework de développement Web OpenSource. Il permet de réaliser des interfaces Web complexes et dynamiques en se basant sur le principe de l’AJAX. L’AJAX (Asynchronous JavaScript And XML) est une technique qui permet de réaliser des pages (X)HTML dynamique où uniquement une partie des pages sont rechargés depuis le serveur. ZK est un moteur basé sur le principe de l’Ajax et sur un système d’évènements. Il ne gère que la partie Vue du modèle MVC, on peut donc l’intégrer dans un framework (Hibernate, Struts, etc.).
Description de ZK
ZK est une application Java nécessitant un serveur supportant les supports Servlet 2.4. La servlet ZK s’occupe du traitement des évènements provenant du client. On peut utiliser ZK de deux façons différentes : en utilisant l’API Java, comme on pourrait le faire avec SWING, ou en utilisant le système de balise basé sur XUL et XHTML fourni. Malgré le fait qu’il utilise la syntaxe de XUL/XHTML (nommé ici ZUML, pour ZK User Interface Markup Language), il est compatible avec la plupart des navigateur récents (Internet Explorer 5.5+, Firefox 1.0+, Opera 9+, etc.).
Le ZUML a été créé pour développer facilement des interfaces utilisateurs. Il permet de marier et mélanger plusieurs langages de balises. Il est aussi possible d’inclure directement du code Java, et du code JSP. Le ZUML ne nécessite aucune configuration et compilation il est donc très simple de maintenir des pages écrites avec ce langage.
L’API de ZK comporte plus de 60 composants XUL et 80 composants XHTML qui vont du simple label, en passant par les frames, la gestion de l’auto-complétion, etc. Ces composants sont avant tout des composants Java, il est donc très simple de les étendre et d’en créer des spécifiques.
ZK utilise un modèle centré sur le serveur. Toutes les opérations s’effectuent sur le serveur, le client Web ne fait qu’envoyer des évènements au serveur qui lui répond.
Un exemple en ZK
Le code suivant permet d’afficher un menu que l’on peut trouver dans un client lourd classique. On peut y retrouver le noms des composants SWING équivalent, par exemple MenuBar.
<window title="menu demo">
<menubar>
<menu label="Fichier">
<menupopup>
<menuitem label="Nouveau" onClick="alert(self.label)"/>
</menupopup>
</menu>
</menubar>
</window>
Conclusion
ZK offre de nouvelles solutions pour réaliser des applications Web dynamiques et conviviales. Le ZUML étant très proche des autres langages de balise, il est assez simple pour un développeur de s’y plonger. Malgré la relative jeunesse du projet, il est rapidement devenu l’un des plus dynamique sur SourceForge. De nombreuses sociétés l’ont déjà utilisée pour leurs projets (IBM, Sogeti, etc). La communauté se développe très rapidement et de ce fait le projet évolue rapidement et de nouveaux composants apparaissent régulièrement.
Pour en savoir plus
-
Site du projet : http://www.zkoss.org
-
Démonstration en ligne : http://www.zkoss.org/zkdemo/userguide/
-
Tutoriel en français : http://www.supinfo-projects.com/fr/2006/zk%5F2006%5Ffr/introduction/
-
Retour d’expérience : http://www.zkoss.org/community/openmind.dsp
- Outil graphique d’édition de formulaire : http://www.zkoss.org/smalltalks/zerokode1/zerokode1.dsp
Michel Loiseleur
(Vous souhaitez reproduire cet article ?)
















