Formation GWT (Google Web Toolkit) Développer une application Web 2.0 avec GWT

Objectifs

  • Comprendre le fonctionnement de GWT en détail
  • Connaître les différentes façons d'intégrer GWT aux architectures J2EE
  • Réaliser une application web mettant en oeuvre GWT et J2EE
  • Savoir appliquer les best practices adaptées

Contenu

Présentation

  • Au coeur du contexte Web 2.0 et des technologies AJAX
  • L'originalité du Google Web Toolkit
    • Principe de la compilation Java vers JavaScript
    • Indépendance vis-à-vis des navigateurs
    • Limites du domaine: réflexion, annotations, generics
  • Maturité du toolkit et pérennité
  • Positionnement par rapport aux autres frameworks AJAX: YahooUI, Dojo, DWR, Echo2...

Démarrer un projet GWT sous Eclipse

  • Structure d'un projet
  • Notion de modules, découpage en répertoires: public, client, server, bibliothèque gwt-user.jar
  • Principe et utilisation du GWTShell pour l'exécution et le debugging d'un projet Eclipse
  • Paramétrage des launch configurations: spécification des répertoires de génération
  • Étude de la bibliothèque gwt-user-dev.jar
  • Compilation d'un projet: principe et mise en oeuvre, pièges à éviter

Utiliser la bibliothèque de composants graphiques

  • Utilisation des widgets basiques
    • Boutons, liens, images
    • Champs de formulaires, file upload
  • Mise en forme: les Panels
  • Widgets complexes
    • Menus
    • Composites
    • Popups
  • Principe et utilisation du modèle événementiel
  • Mise en place de l'internationalisation

Techniques plus avancées

  • Créer son propre composant graphique
  • Utilisation de JSNI pour générer son propre JavaScript
  • Framework de commandes: utilisation de la DeferredCommand
  • Gestion de la navigation web: management de l'historique

Accéder à la couche services

  • Architecture de type AJAX et étude de la communication RPC
  • Implémentation d'un service asynchrone en GWT
  • Gestion de la sérialisation: principes, héritage et polymorphisme
  • Traitements des Exceptions
  • Découverte du protocole JSON et utilisation avec des serveurs non-Java
  • Traitement de fragments XML côté client avec les classes DOM

Implémenter une politique de tests

  • Utilisation du GWTTestCase pour JUnit
  • Fonctionnement du mode de test et limitations
  • Principes et implémentation de tests asynchrones

Présentation de « GWT Designer »

  • Installation et configuration
  • Principe et fonctionnement
  • Édition WYSIWYG et génération du code Java
  • Fonctionnalités fournies

Google Web Toolkit avancé: Architecture et intégrations

Cadre de développement & Intégration continue

  • Intégration de GWT dans un projet Eclipse WTP
  • Compilation et intégration continue des composants GWT
  • Intégration de Maven
  • Découplage du GWTShell de son serveur d'applications Tomcat embedded
  • Couplage avec le serveur d'applications choisi, fourni par WTP
  • Explication du nouveau processus de debug obtenu

Mise en place d'une architecture J2EE complète intégrant GWT

  • Mise en oeuvre d'une couche de services SOA
  • Encapsulation des services GWT par Spring
  • Intégration entre MVC classique provenant d'un framework (SpringMVC, Struts...) et GWT selon une approche de type portail
  • Choix du développement de la couche présentation
    • Approche entièrement GWT (type client riche)
    • Approche mixte: concept d'enhancement de la vue produite par un couple classique Contrôleur/JSP
  • Mise en oeuvre du databinding
    • Illustration des best practices en termes de modèle événementiel et de value objects
    • Intégration avec le FormPanel