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

Utilisez votre tablette Android comme second écran pour Linux (Raspberry Pi, MK908II)

Les tablettes Android atteignent désormais des prix qui défient toute concurrence. On trouve désormais des modèles à 39 € TTC en super marché, soit à peine plus cher que le Raspberry PI, mais avec un écran. Ces modèles souvent mono-core 1Ghz ou 1,4 Ghz avec 512 ou 1Go de mémoire ne sont très probablement pas utilisables pour une utilisation régulière sur Internet et ne sont en aucun point comparables à leur équivalent de marque (Samsung, Sony, LG, HTC, Lenovo, etc). Plusieurs tutoriels indiquent comment connecter utiliser une tablette Android comme second écran ( http://www.linux-magazine.com/Online/Blogs/Productivity-Sauce/Use-an-Android-Device-as-Screen-and-Input-for-Raspberry-Pi ). Ces méthodes utilisent généralement l'USB Tethering qui n'est malheureusement disponible que sur les téléphones ou tablettes avec un accès mobile (3G ou 4G) inclus. Dans ce billet, je vais vous montrer comment se connecter à une tablette en utilisant le mode Debug adb (Android Debug Bridge

Supprimer les partitions Raspberry sur une carte SD sous Windows 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. DISKPART> list disk   N° disque  Statut         Taille   Libre    Dyn  GPT   ---------  -------------  -------  -------  ---  ---   Disque 0    En ligne        238 G octe

Emulateur Raspberry Pi sous Windows

Si vous souhaitez développer ou tester des applications pour Raspberry Pi, vous pouvez, soit compiler directement l'application sur Raspberry, soit la développer sous Linux ou Windows et la compiler pour Raspberry. La seconde solution est souvent plus simple car elle permet de disposer d'un environnement de compilation complet tel qu'Eclipse pour le développement. Une fois l'application développée, il faut la tester sur Raspberry. Là, il faut copier l'application en utilisant un client FTP ou SCP, puis se connecter en SSH et lancer l'exécutable. Il existe un autre moyen de tester une application Raspberry sans avoir à l'allumer. Il suffit de passer par un émulateur tel que QEMU qui permet de lancer un OS pour processeur ARM sous Linux ou Windows. L'émulateur sous Windows 1. Récupérez l'émulateur à l'adresse suivante : http://sourceforge.net/projects/rpi-emulator-win32/ . 2. Dézippés le contenu de l'image Rpi-Occidentalis-v02-qemu.7z av