1. Google Web Toolkit - GWT
“Productivity for developers, performance for users”
1
2. PLAN
Pourquoi GWT ?
Présentation
But de GWT
Quelques projets GWT
Avantages
Architecture
Widgets disponibles
Design pattern
Inconvénients
Conclusion
2
3. Pourquoi GWT ?
• La technologie AJAX était associée au Javascript dans la majorité des
projets
• JS conduit l'échec d'AJAX par sa complexité et le manque d'experts Javascript.
• les navigateurs fournissait des fuites mémoires, de nombreux bogues Javascript.
• HTML a des problèmes de performance.
• JS conduit l'échec d'AJAX par sa complexité et le manque d'experts Javascript.
• les navigateurs fournissait des fuites mémoires, de nombreux bogues Javascript.
• HTML a des problèmes de performance.
3
4. Pourquoi GWT ?
Les différentes solutions :
• Dojo
• ExtJS
• Atlas
• ICEFaces
Ces derniers ne gèrent pas ou (mal) le mode asynchrone d'AJAX.
Apparition de « Google Web Toolkit »
4
5. Présentation
• GWT, Google Web Toolkit, est un framework open source de
développement d'applications web mettant en oeuvre AJAX
• Crée par Google
5
7. But de GWT
7
Faciliter le développement
d'applications web utilisant
Ajax
Faciliter le développement
d'applications web utilisant
Ajax
Faisant abstraction des
incompatibilités des principaux
navigateurs.
Faisant abstraction des
incompatibilités des principaux
navigateurs.
8. Quelques projets GWT
GWT a été utilisé par Google dans des projets
connus comme :
• Google Docs
• Gmail
• AdWords
• Go Grid
• Whirled
8
9. Fonctionnalité de GWT
• création d'applications graphiques s'exécutant dans un navigateur
• pas besoin d'écrire du code Javascript
• utilisation de CSS pour personnaliser l'apparence
• mise en oeuvre d'Ajax
• un ensemble riche de composants (widgets et panels)
• un système de gestion de l'historique sur le navigateur
• un parser XML
• détection des erreurs à la compilation
• ...
9
10. Avantages de GWT
• pas de code JavaScript à écrire
• utilisation de Java comme langage de développement
• une meilleure productivité liée à l'utilisation du seul langage Java
• le code généré par GWT supporte les principaux navigateurs
• la prise en main est facile même pour des débutants !
10
12. Widgets disponibles
• Panneaux
• Boutons
• Cases à cocher
• Tables / Grilles
• Boîtes de dialogues
• Menus et barres de menus
• Fenêtres défilantes
• Onglets
• Arbres
12
13. Design pattern
Les Design Pattern permettent d'améliorer la maintenance et
l'évolutivité d’un projet.
pour une application web GWT :
• MVP
• Action
13
14. Design pattern
MVP, Action :
MVP et Action sont très appréciés dans le milieu professionnel car ils ont
de nombreux avantages :
• Amélioration de l'évolutivité
• Amélioration des tests
• Amélioration de la gestion des erreurs, de l'historique, des
commandes, etc...
14
15. Design pattern
Il existe de nombreux Framework proposant les patterns MVP et Action :
gwt-presenter : MVP
gwt-dispatch : Action
15
Propose un plugin pour s'intégrer facilement avec l'IDE Eclipse.
gwt-platform (gwt-presenter + gwt-dispatch)
16. Conclusion
Inconvénients
Des problèmes de sécurité d'AJAX sont encore présents :
• XSS
• Authentification
• Injection SQL, etc...
La partie graphique du framework – les widgets, sont assez "pauvres"
voire trop "basiques".
L'avenir du framework GWT est "peut être" considéré comme un
inconvénient.
La version actuelle de GWT (2.4) est "peut être" la dernière.
16
17. Conclusion
Inconvénients
Ouverture sur la technologie DART
Le langage de Google, censé remplacer JavaScript
Ce nouveau langage est destiné à la programmation Web avec
l'objectif d'être un langage à la fois structuré et flexible.
En conclusion, voici le Hello Word en DART :
main() {
var name = 'World';
print('Hello, ${name}!');
} 17
Le code de l'application est entièrement écrit en Java
Ce code Java n'est pas compilé en bytecode mais en JavaScript ce qui permet son exécution dans un navigateur.
Le coeur de GWT est donc composé du compilateur de code Java en JavaScript.
L'architecture du framework GWT est décomposée 2 deux parties :
Librairies
Outils
La partie Outils contient le compilateur qui génère l'application web. C a d, traduit le code JAVA en Javascript.
Le Web browser est un navigateur qui permet d'executer du Byte Code JAVA. Le navigateur est « virtuel »
La seconde partie de l'architecture contient les librairies
librairie des classes standard JAVA :
java.lang
java.util
Enfin, la quatrième brique de l'architecture concerne la partie graphique. Elle fournit un ensemble de classes et d'interfaces pour créer des composants tel que des boutons ainsi que les widgets les plus utilisés dans le développement d'application web.
GWT propose un ensemble assez complet de composants graphiques :
Il est aussi possible de créer ses propres composants ou d'intégrer d’autres frameworks JavaScript
« Comme vous savez Le développement d'une application implique une certaine méthodologie »
Google recommande fortemment l'utilisation de deux patterns importants pour une application web GWT : MVP et Action
gwt-presenter qui implément le MVP et gwt-dispatch qui implémente : Action
Le framework le plus interessant semble être gwt-platform. Il est composé des deux frameworks précédents (dispatch, presenter) c a d, on peut utiliser les deux patterns dans les applications web et propose un plugin pour s'intégrer facilement avec l'IDE Eclipse.
« Les inconvénients majeurs de GWT : »
C’est le nouveau langage de programmation de Google, qui censé remplacer JavaScript