GWT Principes & Techniques

Embed Size (px)

DESCRIPTION

GWT Principes & Techniques Des IHM avec GWT Des IHM avec GWT + Communiquer avec le serveur Internationalisation I18n Développer un composant graphique Historique du navigateur Logging Tester avec JUNIT Divers principes avancées JavaScript overlay types Intégrer une appli GWT dans JavaScript Code Splitting Étendre la JRE Émulation Sérialisation spécifique Compile Reports

Text of GWT Principes & Techniques

  • 1. 17/03/14 1 GWT Principes & Techniques Rachid NID SAID rachid.nidsaid@gmail.com
  • 2. 17/03/14 2 Plan Introduction GWT Des IHM avec GWT Des IHM avec GWT + Communiquer avec le serveur Internationalisation I18n
  • 3. Plan Dvelopper un composant graphique Historique du navigateur Logging Tester avec JUNIT Divers principes avances JavaScript overlay types Intgrer une appli GWT dans JavaScript Code Splitting tendre la JRE mulation Srialisation spcifique Compile Reports
  • 4. 17/03/14 4 Partie 1 Introduction AJAX et XHTTPR Inconvnients du dveloppement en JavaScript GWT comme solution GWT SDK GWT Structure et configuration dune application GWT Excuter et dbuguer un projet GWT en mode dveloppement Compiler et Dployer un projet GWT Ateliers : Se familiariser avec lenvironnement de dveloppement GWT
  • 5. 17/03/14 5 AJAX Ajax pour Asynchronous JavaScript & XML Raliser des requtes asynchrones au serveur et effectuer la mise jour de certaines parties de la page Web sans faire un rechargement complet Fini le pnible rechargement de pages! Applications Web plus ractives et plus dynamiques Applications Web semblables des applications bureautiques en excution locale (Desktop Like) Bas sur du code-client en JavaScript CSS (Cascading Style Sheet) pour la prsentation API DOM (Document Object Model) pour accder et modifier les lments de la page JavaScript pour les traitements sur le poste client
  • 6. 17/03/14 6 En mode synchrone, le navigateur est gel en attendant la rponse du serveur. Diagramme de squence - WEB standard
  • 7. 17/03/14 7 En mode asynchrone, l'excution dans le navigateur se poursuit sans attendre la rponse du serveur. La rponse sera traite par une fonction de retour (fonction Callback) quand elle arrivera. Diagramme de squence Application AJAX
  • 8. 17/03/14 8 Lintrt dune architecture Ajax
  • 9. 17/03/14 9 XHTTPR pour XMLHttpRequest Il permet deffectuer des changes de donnes XML, JSON, TEXT avec le serveur de faon asynchrone Invent par Microsoft en 1998 pour son navigateur IE Adopt par les autres diteurs partir de 2002 Standardis par le W3C en 2007 XHTTPR
  • 10. 17/03/14 10 XHTTPR Mthodes : setRequestHeader(name, value) open(method, url, asynchronous, userName, password) send(data) abort() Proprit readyState : 1 : mthode open invoqu avec succs 2 : mthode send invoqu avec succs 3 : la rponse est en cours de rception 4 : la rponse est compltement charg onreadystatechange event listener, permet de ragir chaque changement de la valeur de la proprit readyState.
  • 11. 17/03/14 11 Cration de lobjet XHTTPR
  • 12. 17/03/14 12 XHTTPR Appel & Callback
  • 13. 17/03/14 13 XHTTPR Appel & Callback
  • 14. 17/03/14 14 Inconvnients du dveloppement en JavaScript Problmes de compatibilit entre les diffrents navigateurs Ne fonctionne pas si JavaScript est dsactiv Les donnes charges de faon dynamique ne sont pas indexes par les moteurs de recherche Si le traitement du ct serveur est long, le traitement asynchrone d'Ajax fait que les changements se font avec un dlai Le bouton de retour en arrire ne marche pas, l'URL ne change pas et les signets ne fonctionnent pas. Les appels Ajax ne peuvent se faire en dehors du domaine charg initialement
  • 15. 17/03/14 15 Inconvnients du dveloppement en JavaScript Exigeant en ressources sur le poste client Raret des experts en JavaScript JS n'est pas un vritable langage objets Pas de typage statique Sensible la moindre coquille Quelques subtilits : null vs undefined Dbogage l'excution pas la compilation JS n'a pas t conu pour de gros logiciels, mais juste pour mettre un peu d'interactivit dans une page web
  • 16. 17/03/14 16 GWT comme solution GWT pour Google Web Toolkit Cr en 2006 par Bruce Johnson & Joel Webber et rachet par Google Open source sous licence Apache 2 Version actuelle est la 2.5.1
  • 17. 17/03/14 17 Principe GWT GWT propose dcrire une application WEB en java et de compiler ce code java en HTML et JavaScript nativement interprtable par le navigateur Seul le code java de la partie cliente est compil en JavaScript et HTML. mulation partielle de la JRE (java.lang.*, java.util.*, ) Nutilise cot client que des API java qui peuvent tre compiles en JavaScript
  • 18. 17/03/14 18 Avantages GWT Dveloppement rapide d'applications RIA par des programmeurs Java qui ne matrisent pas JavaScript Le dveloppement se fait en pur Java, ce qui permet les contrles de cohrence la compilation (contrairement JavaScript qui est interprt) et de profiter de la puissance dun language OO. Utilisation de puissants IDEs java (Eclipse, NetBeans, IntelliJ) Dbogueur diteur de code intelligent Industrialisation et Re-factorisation de code Analyse du code Simplification de la phase de test par le support de JUnit & Selenium
  • 19. 17/03/14 19 Avantages GWT Communication client-server bass sur des objets Java Ne requiert aucun plugin pour le navigateur Gnre des applications Single page Gestion de l'historique de navigation Bibliothque OO de composants IUG Semblable SWING ou AWT
  • 20. 17/03/14 20 Avantages GWT Transcompilateur Java gnre du JavaScript optimis et compatible multi navigateur, Write Once, Run Anywhere
  • 21. 17/03/14 21 SDK GWT
  • 22. 17/03/14 22 GWT API
  • 23. 17/03/14 23 Transcompilateur JAVA Le Transcompilateur JAVA est la pice matresse de GWT, son rle est de traduire le code client JAVA en code JavaScript optimis
  • 24. 17/03/14 24 Transcompilateur JAVA JAVA AST Optimized java AST Pruning : suppression des classes, interfaces, mthodes et attributs non rfrencs. Finalizing : rendre les mthodes, les classes et variables final si cest possible. Make static : rendre static les mthodes dinstances si possible Type Tightening : optimisation des attributs et paramtres pour les rendre concrets (rduire les oprateurs de cast et instanceof) Method Call Tightening : Changement des appels de mthodes polymorphiques, en appel direct. Dead code elimination : suppression des portions de code jamais utiliss. Method inlining : suppression des mthodes non rfrencs dans une classe extrieure, et si la mthode ne dpasse pas 2 lignes embarquement de son code directement dans la mthode appelante.
  • 25. 17/03/14 25 Transcompilateur JAVA JAVA AST Optimized java AST Same Parameter value Otimizer : dtecte si une chane de caractres est utilis comme paramtre de mthode, supprime le paramtre es