Développer des applications web peut être plus moins long et difficile en fonction du framework web utilisé. Wicket étonne par sa simplicité, sa rapidité de développement et l’élégance du modèle de programmation. Il s’agit d’un framework web de type composant entièrement en Java pour la partie serveur et en xHTML / CSS pour la partie cliente. Wicket possède également un moteur Ajax fortement intégré au framework permettant de bénéficier de certaines fonctionnalités très facilement. Pour bien développer en Wicket ? Il suffit de maîtriser le langage Java et les concepts objets.
Lors de la soirée web du Paris JUG du 10 mars 2009, nous avons développé une mini application web de gestion de contacts. Certes il ne s’agit pas d’un cas réel d’entreprise, mais cette application permet déjà d’illustrer différentes fonctionnalités sommes toutes assez variées.
La diversité des « use case » ainsi développés permet d’initier un comparatif entre frameworks web. Les critères importants de ce comparatif sont le temps de réalisation, le nombre de lignes de code produites ainsi que le nombre de lignes de configuration (XML ou annotations).
Nous fournissons, via ce blog, un Starter Kit sous forme de projet Eclipse contenant les fichiers HTML ainsi que les ressources (images / CSS). Nous fournissons aussi la solution, sous forme de projet Eclipse également, telle que développée lors du Paris JUG.
Le concours consiste à développer la même application avec le framework web de votre choix en utilisant le « Starter Kit » mis à disposition. N’hésitez pas à nous poster vos résultats via les commentaires et nous ferons un résumé comparatif avec ceux ci que nous publierons pour le prochain JUG.
Pour information les fonctionnalités de l’application fournie en solution sont les suivantes :
- La navigation entre pages
- L’organisation d’une structure commune des pages (Type Tiles / Sitemesh)
- La désactivation du lien correspondant à la page courante
- L’édition d’un contact
- La création d’un contact
- Lister les contacts
- L’ajout rapide d’un contact dans une liste
- Le refresh de la date courante via appels Ajax
- L’édition « in place » d’un libellé sans passer par un écran d’édition
- L’ajout de la validation (Nom et prénom obligatoires, contrôle du format date, contrôle du type email)
- Utilisation d’un date picker
- Synchronisation du format du DatePicker avec le format utilisé par le convertisseur
- Ajout des mêmes contrôles de validation côté client, en Javascript
- Gestion de la problématique du refresh afin d’éviter la double soumission
- Non duplication du code du formulaire… le même composant doit être utilisé pour la page d’édition de contacts et de liste des contacts
- Le drag & drop depuis la liste vers le formulaire d’édition
- L’affichage de message d’erreurs
- La réutilisation des mêmes messages d’erreurs en validation serveur et javascript
- Le tri de la liste des contacts par nom et par prénom
Le résultat du développement avec Wicket est le suivant :
- 12 classes (classes internes incluses et la classe Contact exclue)
- 163 lignes de codes
- 1 seule configuration XML (Le filtre dans le web.xml)
- 0 lignes de javascript codées
- Temps de développement < 1 heure
Pour information, la classe Contact à elle seule représente 33 lignes de code, soit 17% de l’application.
Bon courage et un livre Wicket in Action sera offert par tirage au sort à l’un des participants de ce concours !