urbanisation-si

urbanisation-si

Avec toutes les nouvelles techniques de RIA (Rich Internet Application), y a de quoi y perdre son Java !

urba-si-ExtJS-GWT.gif

1) ExtJS est la technique la plus tendance avec le pattern MVC (Model View Controller) implémenté au niveau client avec une bibliothèque Javascript, distribué par la société Sencha, permettant de construire des applications web interactives. C'était, au départ, une extension à la bibliothèque Javascript YUI de Yahoo.

ExtJs apporte un certain nombre de composants visuels d'une grande qualité comme des champs de formulaires avancés, des arbres, des tableaux, des panels, des fenêtres, des onglets, des boîtes de dialogue... Il facilite aussi la gestion des évènements, du glisser déplacer (drag and drop), des requêtes Ajax et le support de plusieurs formats d'échange de données comme le XML ou le Json.

En plus d'apporter une multitude de composant pour le développement web, ExtJs change le concepts de la programmation pour le web. En effet, avec ExtJs, la programmation web se rapproche beaucoup plus du logiciel client : Généralement dans les développements pour le web, le langage serveur est le pilote de l'application. C'est lui qui génère la couche graphique. Avec ExtJs, le langage pilote est le Javascript. C'est votre interface graphique qui va appeler le langage serveur lorsqu'il aura besoin de récupérer des données en base.

ExtJS 4 est une avancée révolutionnaire dans le développement d'applications web.  Presque tous les composant principaux ont été améliorées, dans de nombreux cas de façon drastique. Il y a également de nombreux composants et sous-systèmes neufs depuis ExtJs3.

ExtJs4 supporte tous les navigateurs principaux depuis internet explorer6 jusqu'aux dernières version de Google Chrome.

Vous n'avez pas besoin de serveur WEB pour faire fonctionner EXTJS4 mais cela est vivement conseillé.

 

2) GWT propose de nombreuses fonctionnalités pour développer une application exécutable dans un navigateur et présentant des comportements similaires à ceux d'une application desktop :

  • création d'applications graphiques s'exécutant dans un navigateur
  • pas besoin d'écrire du code Javascript sauf pour des besoins très spécifiques comme l'intégration d'une bibliothèque JavaScript existante
  • utilisation de CSS pour personnaliser l'apparence
  • mise en oeuvre d'Ajax sans manipuler l'arbre DOM de la page mais en utilisant des objets Java
  • un ensemble riche de composants (widgets et panels)
  • communication avec le serveur grâce à des appels asynchrones en échangeant des objets Java et en utilisant des exceptions pour signifier des problèmes
  • internationalisation
  • un système de gestion de l'historique sur le navigateur
  • un parser XML
  • détection des erreurs à la compilation
  • ...

L'utilisation de GWT présente plusieurs avantages :

  • pas de code JavaScript à écrire
  • utilisation de Java comme langage de développement
  • une meilleure productivité liée à l'utilisation du seul langage Java (un seul langage à utiliser, mieux connu que d'autres technologies notamment JavaScript, mise en oeuvre d'un débogueur, utilisation d'un IDE Java, ...)
  • hormis les styles CSS et la page HTML qui encapsule l'application, il n'y a pas d'utilisation directe de technologies web
  • le code généré par GWT supporte les principaux navigateurs
  • la prise en main est facile même pour des débutants ce qui lui confert une bonne courbe d'apprentissage

Le code de l'application est entièrement écrit en Java notamment la partie cliente qui devra s'exécuter dans un navigateur. 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'avantage du code JavaScript produit est qu'il est capable de s'exécuter sur les principaux navigateurs sans adaptation particulière du source Java puisque le compilateur crée un fichier JavaScript optimisé pour chacun de ces navigateurs.

Google s’est désisté officiellement du projet et en a donné la responsabilité à un comité (GWT Steering Committee). Les objectifs majeurs :

  • Plus de rapidité dans la compilation, développement…
  • Support Java 7, 8
  • Découpage du projet pour une meilleure intégration Maven
  • Amélioration du rendu sur Mobile
  • Correction des TOP 100 bugs GWT
  • Déprécation de IE6, 7 et 8

 

3) PrimeFaces, l’intérêt principal réside dans la diversité et la qualité des composants proposés. Ils sont nombreux, plus de 100, et répondent le plus souvent en standard aux besoins des applications. Ce sont des composants graphiques avancés qui possèdent des fonctionnalités prêtes à l’emploi, aidant ainsi à créer aisément des RIA (Rich Internet Application). L’ensemble des composants est présenté dans une page de démonstration, avec le code (à la fois xhtml et Java) s’y rapportant.

Il existe 13 catégories de composants :

  • Ajax Core : les fonctionnalités ajax de PrimeFaces
  • Input : De composant d’entrée utilisateur
  • Button : Remplacement des boutons de JSF
  • Data : Présentation des données
  • Panel : Mise en page
  • Overlay : Fenêtre de dialog
  • Menu : Menus contextuels
  • Charts : Graphiques
  • Message : Messages destinés à l’utilisateur
  • Multimedia : Intégration avec des images, utilisation d’une webcam,
  • File : Upload et download de fichier
  • DragDrop : Déplacement d’élément du DOM
  • Misc : Catégorie fourre-tout (lecteur de flux rss, Captcha)

Comme certains pourraient le constater, les composants graphiques ressemblent à ceux de jQuery ui, puisqu’ils étaient à la base des encapsulations de ces derniers. De cette encapsulation il reste les classes css et la structure html du composant. C’est un gage de qualité de rendu des composants.

Par ailleurs, le code généré est simple, lisible et évite (contrairement à RichFaces) l’utilisation  de tableaux pour la mise en page, ce qui est un plus indéniable.

Il est à noter que l’utilisation d’ajax est très présente dans PrimeFaces. Par exemple, l’action déclenchée par les boutons qu’il propose est par défaut en ajax.

 

J'ai pu constater qu'il y a des afficionados de l'une et de l'autre, chacun ayant tous les bons arguments pour critiquer l'autre. Il ne faudra donc pas céder aux tendances de modes ou de buzz, garder la tête froide et faire en sorte que le pragmatisme et le contexte de votre projet l'emporte dans les critères de choix.

 

"De la discussion jaillit la lumière"

 

Voir aussi :  http://urbanisation-si.over-blog.com/

http://urbanisation-des-si.blogspot.fr/

http://urbanisation-si.eklablog.com/

http://bonnes-pratiques-si.eklablog.com/

http://rhonamaxwel.over-blog.com/



17/10/2014
0 Poster un commentaire

A découvrir aussi


Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 163 autres membres