Accéder au contenu principal

Vaadin, un Framework pour créer des applications Web en Java

Vaadin est un Framework Java permettant de développer une application Web entièrement en Java. Il est certes basé sur GWT (Google Web Toolkit), mais l'utilise de manière relativement transparente. Vaadin est une société Finlandaise qui existe depuis 2007 (initialement sous le nom d'IT Mill Toolkit).
Ses principaux avantages sont :
- une API très proche de Swing
- une librairie Open Source
- de très nombreux Addons gratuits
Ses inconvénients :
- la lourdeur de la librairie (18 Mo minimum) depuis la version 7, essentiellement à cause des thèmes.
- la "relative" complexité dans l'utilisation des Widgetsets et des CSS
- quelques Addons sont payants, tels que les Charts, le Calendar, le TouchKit (il faut bien vivre)
- l'éditeur graphique payant, mais comme avec Swing, on peut s'en passer

Installation dans Eclipse

Pour vous faire une idée de l'interface, vous pouvez regarder les démos : http://demo.vaadin.com/sampler/#.  Cela vous donnera une assez bonne idée de ce que la librairie peut faire.
Vaadin propose un plugin Eclipse pour la création de nouveaux projets. Le plugin est disponible à l'adresse http://vaadin.com/eclipse. Celui ci permet de créer des projets, mais également des thèmes ou de nouveaux Widgets.
Pour la compilation des WidgetSets et des thèmes, un nouveau bouton est rajouté dans la barre de menu.
Le plugin permet également d'installer Vaadin Designer. Cette version nécessite une licence. La version sans licence permet juste d'évaluer l'outil rapidement mais ne permet pas de sauvegarder les modifications. Le Designer nécessite également l'utilisation d'Internet Explorer 10 au moins.

Création de la première application "Click Me"

Une fois le plugin installé, vous pouvez créer votre première application Vaadin. Un exemple est généré par défaut, permettant de tester assez rapidement le Framework.

Création du projet

Sélectionnez un projet Vaadin 7.

Entrez le nom du projet et sélectionnez le conteneur de servlet : Tomcat 7, par exemple.


Modifiez éventuellement les noms des classes si vous souhaitez utiliser ce projet comme modèle ultérieurement. Toutes les versions de Vaadin 7 sont proposées.
Si vous n'avez pas déjà de projet avec la version proposée, la nouvelle version sera automatiquement téléchargée.
 Voici un exemple de l'arborescence ainsi générée.
 Voici le code source généré par défaut

 package com.example.testvaadin76;  
   
 import javax.servlet.annotation.WebServlet;  
   
 import com.vaadin.annotations.Theme;  
 import com.vaadin.annotations.VaadinServletConfiguration;  
 import com.vaadin.server.VaadinRequest;  
 import com.vaadin.server.VaadinServlet;  
 import com.vaadin.ui.Button;  
 import com.vaadin.ui.Button.ClickEvent;  
 import com.vaadin.ui.Label;  
 import com.vaadin.ui.UI;  
 import com.vaadin.ui.VerticalLayout;  
   
 @SuppressWarnings("serial")  
 @Theme("testvaadin76")  
 public class Testvaadin76UI extends UI {  
   
      @WebServlet(value = "/*", asyncSupported = true)  
      @VaadinServletConfiguration(productionMode = false, ui = Testvaadin76UI.class)  
      public static class Servlet extends VaadinServlet {  
      }  
   
      @Override  
      protected void init(VaadinRequest request) {  
           final VerticalLayout layout = new VerticalLayout();  
           layout.setMargin(true);  
           setContent(layout);  
   
           Button button = new Button("Click Me");  
           button.addClickListener(new Button.ClickListener() {  
                public void buttonClick(ClickEvent event) {  
                     layout.addComponent(new Label("Thank you for clicking"));  
                }  
           });  
           layout.addComponent(button);  
      }  
   
 }  

Exécution

Pour exécuter cette première application, cliquez avec le bouton droit et sélectionnez "Debug on the Server", puis sélectionnez Tomcat 7.
L'application démarre et ouvre une fenêtre dans le navigateur interne d'Eclipse. Les traces s'affichent en dessous et vous pouvez mettre des points d'arrêts.

Une fois l'application testée, elle peut être exportée sous la forme d'un fichier War complet qui ainsi peut être déployé dans n'importe qu'elle conteneur de servlet.

Conclusion

Vaadin montre que l'on peut faire des applications Web entièrement en Java à la manière de Swing. Cela peut sembler simple au départ, mais peut vite se complexifier dès que l'on souhaite avoir des interfaces beaucoup plus évoluées. Fort heureusement, la communauté autour de Vaadin apporte son lot d'addons qui en simplifient largement l'utilisation : https://vaadin.com/directory#!browse. Le principal avantage pour un développeur Swing est qu'il n'est pas trop dépaysé (voir https://vaadin.com/swing) et que la phase de débogage reste à peu près similaire. Il existe des solutions un peu similaires, telles que http://www.webswing.org, mais Vaadin offre des possibilités qui vont bien plus loin que Swing pour le monde Web.
Un des inconvénients est cependant que pour la moindre modification, il faut recompiler et relancer l'application, ce qui n'est pas toujours nécessaire avec des Frameworks basés sur du XHTML. Essayez par vous mêmes pour vous faire votre propre opinion. Personnellement, je trouve que ce Framework Open Source vaut largement le détour.

Long Life Vaadin


Commentaires

Posts les plus consultés de ce blog

Supprimer les partitions Raspberry sur une carte SD sous Windows 7 avec Diskpart

Si vous souhaitez récupérer une ancienne carte SD utilisée pour démarrer un Raspberry pour un autre usage (appareil photo, etc), il vous faudra supprimer les deux partitions créées au moment de l'écriture de l'image sur la carte SD. Vous pouvez voir les partition en sélectionnant Menu Windows/Ordinateur/bouton droit "Gérer". Voici un exemple du résultat final. Vous pouvez supprimer la partition Unix de 7 Gb (ou 4Gb en fonction de la taille de votre carte) en sélectionnant la partition puis en faisant "bouton droit Supprimer". Laissez juste une partition pour pouvoir faire les autres manipulations avec DISKPART. Démarrez l'outil DISKPART en ligne de commande. Une nouvelle fenêtre s'ouvrira. Microsoft DiskPart version 6.1.7601 Copyright (C) 1999-2008 Microsoft Corporation. Sur l'ordinateur : FRVILN0H305806 DISKPART> list disk   N° disque  Statut         Taille   Libre    Dyn  GPT   ---------  -------------  -------  -------  ---  ---   D

Comment lire son écran de téléphone Android sur PC (2)

Voici une nouvelle manière d'accéder à votre téléphone depuis votre PC. Cette méthode utilise le câble USB et Google Chrome. Elle fonctionne donc sur Windows, Mac et Linux. Les pré-requis sont les mêmes que ceux du billet précédent : Téléphone configuré en mode Développement Drivers USB installés sur le PC Google Chrome installé L'application Vysor s'installe comme une extension de Google Chrome. Cherchez dans le Webstore et lancez l'installation. Une fois installée, l'application apparaît dans les extensions. Vous pouvez la lancer de différentes manières. La manière la plus simple est d'ouvrir la fenêtre des applications : chrome://apps/ Une autre manière est de créer un raccourci en cliquant sur « Détails ». Ensuite créez un raccourci sur le bureau, le menu démarrer et/ou la barre de tâche. Vous pouvez également cliquer sur afficher dans la boutique et lancer l'application depuis la boutique. Une fois

Serveur d'impression CUPS sur Raspberry Pi

Je possède une très vieille imprimante laser HP Laserjet 6L noir et blanc de 12 ans d'age qui a survécu à plusieurs imprimantes jet d'encre couleurs tombées en désuétude pour obsolescence programmée. J'envisage tout de même sérieusement de les démanteler pour les recycler en CNC, graveur ou autre.   Je continue donc a utiliser cette bonne petite imprimante parallèle qui me rend bien des services (en 12 ans, j'ai changé le toner 3 fois pour un coût de 20 € la cartouche). J'ai donc dû m'équiper d'une adaptateur USB/Parallèle pour pouvoir la connecter sur un PC récent. Le problème principal est que le driver de cette imprimate n'est reconnu que par un seul de mes PC sous Windows 7. Les autres PC sous Windows 8 ou Windows 10 reconnaissent bien l'imprimante, mais sortent des feuilles avec le code Postscript. L'impression depuis une tablette ou un téléphone Androïd est également tout simplement impossible. Pour remédier à ce problème, j'ai don