BT

Vaadin 7, interview avec Nicolas Fränkel

| par Mathieu Pousse Suivre 0 Abonnés le 07 oct. 2013. Durée de lecture estimée: 7 minutes |

Le projet Vaadin a livré la version 7 du framework en Février dernier. Cette version était la première évolution majeure depuis 2009. Pour rappel, le projet propose une couche au dessus de GWT afin de faciliter la prise en main du framework et de l'enrichir de nombreuses fonctionnalités. Les technologies mises en œuvre permettent de générer des pages Web en utilisant uniquement du code Java qui est transformé pour ensuite produire les pages HTML.

Le livre Learning Vaadin 7, qui est sorti en Octobre, propose de manière pratique et claire de découvrir ce projet en partant de l'installation de l’environnement jusqu'aux problématiques plus avancées comme l'API de navigation, le push de données depuis le serveur, la création de composants personnalisés et le déploiement de l'application.

InfoQ a pu rencontrer son auteur, Nicolas Fränkel, pour discuter des dernières nouveautés.

InfoQ : Bonjour Nicolas. Il y a 3 ans tu avais déjà écrit un livre Learning Vaadin pour Vaadin 6. Avec cette nouvelle édition tu nous proposes une mise à jour pour Vaadin 7. Avant de discuter de Vaadin, peux-tu nous expliquer pourquoi tu as écrit ce livre alors que la société propose déjà de la documentation et son propre livre ?

Excellente question ! Effectivement, la documentation fournie par Vaadin est complète et de très bonne facture. Le Book of Vaadin en particulier liste de manière exhaustive les fonctionnalités disponibles.

Le but de Learning Vaadin est de faire monter en compétence un lecteur curieux qui n'a jamais entendu parler de Vaadin pour parvenir à en faire un développeur autonome sur le framework, grâce une succession d'étapes progressives qui apportent chacune à leur tour un concept nouveau. Par exemple, je commence par introduire les composants, puis le modèle de programmation événementiel, puis les tables et les sources de données, et ainsi de suite.

De plus, je consacre une partie de l'ouvrage à des add-ons significatifs et à l'intégration avec des briques tierces.

InfoQ : En ce qui concerne Vaadin 7, pourrais-tu nous donner trois ou quatre fonctionnalités les plus utiles de la dernière version du framework ?

Le cœur de la version 7 est quasi-invisible pour le développeur : il s'agit d'un refactoring interne, pour embrasser entièrement les applications web. Dans la version 6, cette abstraction permettait potentiellement d'écrire du Vaadin et de produire du Flex, du Swing, etc.

Vaadin v7 offre également un modèle de wrapping des widgets GWT plus découplé avec l'introduction des connecteurs pour le binding entre les composants serveur et les widgets clients. Ce modèle permet également une utilisation plus simple du JavaScript, sans passer par GWT.

Des annotations ont également été introduites, qui permettent de déclarer facilement le titre (au sens HTML du terme) d'une UI (@Title), le thème utilisé (@Theme), d'utiliser la déclaration de servlet 3.0 (@VaadinServletConfiguration en conjonction avec @WebServlet), etc.

Pour les fans de CSS, la v7 offre un compilateur SASS, qui permet de développer des feuilles de style tout en utilisant la factorisation et la réutilisation via des concept de programmation comme les variables, l'imbrication, les mixins et l'héritage.

Enfin, la fonctionnalité principale est apportée avec la version 7.1, il s'agit du Push serveur. Et ce, quasi-uniquement avec l'utilisation de l'annotation @Push. C'est exceptionnel !

Ces sujets sont abordés dans la mise à jour de Learning Vaadin.

InfoQ : GWT sert de base à SmartGWT, GXT, Errai. Peux-tu nous parler du positionnement de Vaadin par rapport à ces projets ?

SmartGWT et GXT sont majoritairement des bibliothèques de widgets. Je ne connais pas bien Errai qui est relativement récent, mais ce dernier se présente comme un bus de communication entre le client et le serveur qui supporte JavaEE.

Vaadin est un framework mature qui a su évoluer et qui se base sur GWT uniquement depuis la version 5. L'énorme différence est qu'en Vaadin, on code en Java pour produire du bytecode alors qu'en GWT, le Java est compilé en JavaScript et en HTML. De fait, Vaadin supporte l'intégralité des langages exécutables sur la JVM (Scala, Closure, Groovy, etc.) tout en s'appuyant sur la puissance de GWT et les compétences des développeurs qui y ont participé.

Pour information, depuis que la feuille de route de GWT est pilotée par un comité, Vaadin en est membre.

InfoQ : Le support de Vaadin 6 se terminera en 2014. Il est donc nécessaire de penser à la migration des projets utilisant cette version. Comment puis-je passer facilement vers la version 7 dont le support devrait être assuré jusqu’en 2018 ? As tu des conseils à donner aux développeurs ?

La plupart des applications standards devraient migrer sans problèmes. Il y a toutefois deux changements non-compatibles :

  • La classe Application doit être migrée vers UI. C'est très simple, il suffit de remplacer la classe étendue et sa méthode d'initialisation
  • L'utilisation de composants custom sur des widgets GWT va poser plus de problèmes. Là, il s'agit de passer du modèle 6 couplé au modèle 7 découplé : il n'y a pas de miracle, il faut y aller à la main.

Pour rappel, le support d'une version majeure de Vaadin est garantie 5 ans : sur le marché, c'est exceptionnel ! Les entreprises peuvent également acheter du support à la société Vaadin pour des versions qui ne sont plus supportées "officiellement" (comme Oracle pour Java).

InfoQ : Les technologies du front-end actuellement les plus populaires propose des interfaces “responsive”, c’est à dire qui s'adaptent au support. Par exemple, avec HTML 5, il est relativement facile de proposer des écrans utilisables sur un pc de bureau, une tablette ou un smartphone. Qu’en est-il pour Vaadin ?

Vaadin utilise GWT qui utilise les standards du Web : HTML, JavaScript et CSS. A ce titre, Vaadin facilite la création de thèmes, une agrégation de templates HTML et de feuilles de styles CSS (ou SASS). Tout ninja du CSS peut soit personnaliser un thème existant, soit créer le sien : et là, pas de tabou sur le responsive design. Mieux encore, comme Vaadin s'exécute côté serveur, il est possible de changer un composant en fonction du user agent. Tu l'as compris, tu as le meilleur des deux mondes !

InfoQ : Dans le dernier chapitre du livre, tu abordes l'écosystème qui gravite autour de Vaadin. Ces outils sont indispensables pour permettre à un langage d'être bien pris en main car il assure la fluidité des développements et de l'intégration. Pour toi, est-ce qu'il manque des choses pour parfaire celui de Vaadin ?

Très honnêtement, pour un framework front-end, Vaadin a des capacités d'intégration très étendues, soit en natif, soit via des add-ons. Dans le premier cas on trouve Maven, dans le second JPA, Hibernate, CDI, etc.

Mais j'admets qu'il subsiste une lacune avec Spring : dans l'édition originale, je proposais un embryon d'intégration, qui n'était pas mature pour une utilisation dans un projet "réel". Malheureusement, la situation n'a pas beaucoup évoluée ; Spring n'est pas pris en charge nativement et aucun add-on n'est satisfaisant pour une utilisation en production. Toutefois, l'équipe Vaadin en a conscience et ils ont inscrit l'intégration avec Spring dans leur roadmap (ainsi que l'intégration CDI native - pour remplacer l'add-on existant).

InfoQ : Les possibilités de déploiement d'une application Vaadin 7 dans le cloud sont évoquées dans ce même chapitre. D'après toi, est-ce que les efforts des fournisseurs de service vont dans le bon sens ou reste-t'il encore difficile de déployer son application ?

Déployer une application Vaadin sur le cloud est vraiment très simple. Dans l'édition originale, je montrais comment le faire sur Cloud Foundry de VMWare ; dans cette édition, je me suis attaché à le montrer avec Jelastic avec lequel Vaadin a un partenariat pour héberger gratuitement des applications Vaadin. Dans les deux cas, c'est très simple car le livrable d'une application Vaadin est un simple WAR.

Evaluer cet article

Pertinence
Style

Bonjour étranger!

Vous devez créer un compte InfoQ ou cliquez sur pour déposer des commentaires. Mais il y a bien d'autres avantages à s'enregistrer.

Tirez le meilleur d'InfoQ

Donnez-nous votre avis

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet
Commentaires de la Communauté

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Html autorisé: a,b,br,blockquote,i,li,pre,u,ul,p

M'envoyer un email pour toute réponse à l'un de mes messages dans ce sujet

Discuter

Se connecter à InfoQ pour interagir sur ce qui vous importe le plus.


Récupérer votre mot de passe

Follow

Suivre vos sujets et éditeurs favoris

Bref aperçu des points saillants de l'industrie et sur le site.

Like

More signal, less noise

Créez votre propre flux en choisissant les sujets que vous souhaitez lire et les éditeurs dont vous désirez suivre les nouvelles.

Notifications

Restez à jour

Paramétrez vos notifications et ne ratez pas le contenu qui vous importe

BT