Celui qui vous parle Yann Vigara
Celui qui vous parle Yann Vigara
Celui qui vous parle [Spa m] Yann Vigara Fondateur et directeur technique d'atomes Dans l'administration système depuis 1999 Tombé dans le développement Java en 2003 Fonde Atomes en 2007 Découverte de Liferay en 2007 Rejoint le groupe Ippon Technologies en 2012
Transit IP Nos services Serveur physique Serveur virtuel Cloud Monitoring Sauvegardes Maintenanc e DevOps Conseil en architectur e Sécurité
On recrute Expert Java/DevOps
C'est quoi? Une créature mythologique dans la culture finlandaise Renne des montagnes Framework Java RIA Open source : Licence Apache 2.0
Il était une fois... Création IT Mill Toolkit en 2000 Open sourcé en 2007 Migration vers GWT Renommé en Vaadin 2009 GWT inclus dans Vaadin 7
Vaadin et GWT Vaadin += GWT GWT pour le rendu Vaadin embarque GWT
Sous le capot
Composants de base
Fonctions de base Drag and Drop Raccourcis clavier Ressources Historique navigateur
Nouveautés Vaadin 7 HTML5 Layouts plus simples et plus rapides Support des navigateurs modernes (bye bye IE6 et IE7) Nouvelle API Windows Support mutiple tab Navigation La fin du Out of Sync Add-ons Javascript
Ancien protocole de communication
Nouveau protocole de communication
Themes SASS SASS : Syntactically Awesome StyleSheets Theme structuré Composants réutilisables Compilation Sass à la volée Implementation maison Support des fonctions arithmetiques dans la 7.1
SASS Variables et fonctions SASS $blue: #3bbfce; $margin: 16px;.content-navigation { border-color: $blue; color: darken($blue, 9%); }.border { padding: $margin / 2; margin: $margin / 2; border-color: $blue; } CSS.content-navigation { border-color: #3bbfce; color: #2b9eab; }.border { padding: 8px; margin: 8px; border-color: #3bbfce; }
SASS imbrications SASS table.hl { margin: 2em 0; td.ln { text-align: right; } } li { font: { family: serif; weight: bold; size: 1.2em; } } CSS table.hl { margin: 2em 0; } table.hl td.ln { text-align: right; } li { font-family: serif; font-weight: bold; font-size: 1.2em; }
SASS mixin SASS @mixin table-base { th { text-align: center; font-weight: bold; } td, th {padding: 2px} } @mixin left($dist) { float: left; margin-left: $dist; } #data { @include left(10px); @include table-base; } CSS #data { float: left; margin-left: 10px; } #data th { text-align: center; font-weight: bold; } #data td, #data th { padding: 2px; }
Thèmes Thème de base : Reinder Le theme Chameleon Votre propre thème Injection Javascript Intégration de Flash
Composants supplémentaires
Créer ses composants Assemblage de composants coté serveur Création de widget GWT Intégration de composant Javascripts
Outils de développement Eclipse Plugin Vaadin Editeur Visuel Maven Dans le repository central Addons dans leur repository
Intégration Spring CDI (en cours) Portlet 1.0/2.0 Liferay Framework intégré à Liferay depuis 6.0GA Console pour Liferay Hibernate/JPA ICE Push
Retour d'expérience Application en production depuis mars 2012 Problèmes rencontrés : Règles de gestions «complexes» à mettre en œuvre Out of Sync Performances
L'application EEM
L'application EEM
Où trouver de l'aide Documentation en ligne riche (Book of Vaadin) Sampler avec exemple de code Wiki Forums Support PRO
Quelques astuces Layout HTML Widgetset séparé
Roadmap Version courante 7.0.4 1 bug release toutes les 2 semaines 1 feature release tous les 2 à 3 mois Version 7.1 : Push avec Atmosphere Calendar Améliorations Sass WAI-ARIA Add-on Intégration CDI
La concurrence Flex JSF (Rich Faces, ICE Faces, PrimeFaces) Smart Client (Smart GWT) ExtJS Jquery ZK Swing
Avantages Développement 100 % Java Pas besoin de Javascript Pas besoin de HTML (presque) Composants riches et matures
Inconvénients Statefull Pas de mode Off-line Pas (encore) de Push/Websockets
Des questions?
DEMO Application Hello World
17 avril 2013
Application TODO
Gestion des TODO Environnement de dev: Eclipse JRebel Maven Tomcat Dépendances principales Hibernate Spring Mycilia
Gestion TODO version Vaadin Model DAO Service UI
Gestion TODO version Vaadin
DEMO Application TODO
Des questions?
Autres présentations http://www.slideshare.net/codento/vaadin-scalabilityslides http://www.slideshare.net/rustemgayfutdinov/liferay-6-and-vaadin-portlets http://www.slideshare.net/rustemgayfutdinov/vaadin-roadmap http://www.slideshare.net/bkraft/vaadin-rich-web-applications-in-serverside-java-without-plug
Merci à tous