Framework Ajax et Java – Partie 1/2

27 02 2006

Suite à mon premier article où je montrais une implémentation simple de l’objet XmlHttpRequest sous Struts, il serait dommage de considérer cette méthode comme idéale. Il existe en effet de nombreuses bibliothèques prêtes à l’emploi qui permettent d’accélerer le développement d’interfaces riches en AJAX.

Je vais tenter ici de comparer plusieurs de ces frameworks parmi les plus connus en me limitant à ceux open-source. La finalité de cet article n’est pas d’être le N-ième article publié à décrire les avantages de AJAX mais de regarder avec une vision pragmatique comment ils s’implémentent. Attention, ce guide n’est absolument pas exhaustif et ne cite que des frameworks dont j’ai déjà entendu parler.

N’étant pas un designer très balaise, je vais passer rapidement sur les framework avec des fonctionnalités quasi-uniquement cotés client.

Parmi ceux ci, on a :

Scriptaculous est bien connu par ceux qui codent avec ruby on rails car ce framework est directement intégré dans rails. Son utilisation est donc transparente dans ce langage et permet d’écrire du code comme :

<%= text_field_with_auto_complete :contact, :name %>

Et hop un champ texte avec auto-complétion… Par contre, si on veut utiliser scriptaculous avec un serveur Java, il faudra coder toute la partie serveur à la main, ce qui est beaucoup moins simple.

Le suivant est Rico basé lui-même sur Prototype (même librairie de base que scriptaculous). Comparé à scriptaculous, il semble plus complet avec des animations, gestion de Behavior, etc. Je ne suis pas spécialiste du sujet, si un lecteur le sent, qu’il n’hésite pas à me préciser les différences en commentaire et je les ajouterai au texte.

Dojo est un framework « lourd » qui tente de rassembler tout ce qu’on pourrait demander à un toolkit de browser. La liste des sous-projets est à ce titre impressionnante puisque le répertoire src contient 388 fichiers et 33 dossiers.

Plusieurs packages ou « editions » sont disponibles, mais la version qui nous intéresse est le package « Ajax-Edition ».

Avantages de dojo sur les autres : Gestion du bouton Back du navigateur. Ceci est un gros problème d’utilisabilité qui concerne tous les framework et Dojo propose une solution élégante :

Chaque appel XmlHttpRequest ressemble à ça :

dojo.io.bind({    url: "http://foo.bar.com/sampleData.js",    load: function(type, evaldObj){        // hide the form when we hear back that it submitted successfully        sampleFormNode.style.display = "none";    },    formNode: sampleFormNode });

Et bien, dans le cas où on veut gérer le retour arrière par bouton, un simple paramètre supplémentaire suffit :

dojo.io.bind({    ...    backButton: function(){        // ...and then when the user hits "back", re-show the form        sampleFormNode.style.display = "";   ... });

Pas mal non ! On peut même gérer si l’utilisateur appuie sur la flèche avant (Qui sera compté comme une action différente) avec un « :forward »

C’est une intention louable de traiter le problème du back mais son implémentation implique de rajouter 2 méthodes à chaque appel pour traiter les 2 cas, ce qui peut paraître un peu lourd à l’utilisation.

Dojo gère également le bookmarking. Il suffit de rajouter un parametre à la méthode de binding qui ajoutera une ancre fantôme de la forme #xxx à la fin de l’url. Une idée excellente et simple à mettre en oeuvre !

pour les framework spécial Java, à suivre avec la deuxième partie.



JSF ou AJAX ?

6 02 2006

Vous vous souvenez de JSF, les Java Server Faces qui allaient remplacer à coup sûr Struts et les JSP ? Je ne sais pas vous, mais JSF ca doit faire 6 mois que j’en entend quasiment plus parler.

Alors pour vérifier que je ne suis pas le seul, j’ai mesuré sur technorati la popularité de quelques termes :



7000 posts c’est pas mal 🙂



On peut en conclure que Struts est au moins 3 fois plus important avec 22 000 articles…

Le grand gagnant, mais tellement prévisible :



100 000 articles. Aucun commentaire, le buzz tourne à plein régime, il y a juste à attendre que la bulle se dégonfle 😉 .

P.S. : Même JSP renvoit 37 000 articles.

Conclusion : Pauvre JSF, on te souhaite un rapide retour sur le devant de la scène… (Pour voter pour JSF, taper « 1 » ).

Update:

Merci pour les commentaires constructifs postés.

Concernant le débat de savoir si JSF est une technologie d’avenir, je serais plutôt de l’avis d’alexis, c’est à dire en attente de voir un jour JSF réellement utilisé.

Car après avoir gouté au joies d’un environnement ASP.NET – Visual Studio avec composants riches, on se plait à rêver d’un jour où l’on disposera de la même toolbox sous Java (ce que JSF peut apporter).

En revanche le but de mon post était seulement de montrer où en était la buzz-machine actuelle sur certains mots-clés. Et là clairement, les bloggeurs ont plus envie de raconter comment ils ont réussi à implémenter pour la Nème fois un Input auto-complété que raconter leurs implémentations JSF…



Nouvelles versions IE7 et Firefox 1.5

3 02 2006

Ces derniers jours sont riches en nouveauté pour les naviteurs web.

Firefox 1.5 reçoit sa première mise à jour avec la 1.5.0.1. C’est pas énorme mais si ça pouvait corriger quelques leaks ca serait pas plus mal. Du genre, ceux qui font que www.meebo.com ouvert pendant des heures se met à faire ramer grave le navigateur. J’avoue que je ne prend pas l’exemple le plus sympa vu la complexité de la webapp Meebo (DHTML et AJAX dans tous les sens)…

Le gros événement reste quand même la Beta 2 d’Internet Explorer 7. Ca doit faire un an que je suis passé sur Firefox en utilisation à 100% (Auparavant, c’etait plutôt du 50-50 avec IE6). Donc voici mes impressions sur cette version :

Donc premièrement, c’est tout bizarre de revoir les petites planètes bleues qui tournent ! 🙂 Passé quelques minutes d’utilisation, on voit que l’équipe a fait tous les efforts qu’il fallait pour combler l’écart fonctionnel avec Firefox et il redevient enfin agréable d’utiliser ce navigateur pour surfer. Désormais tout y est, comme la lecture des flus RSS, la boite de recherche rapide, une vrai gestion de l’impression et les fameuses tabs. Il y a même le gadget sympa qui affiche toutes les pages en cours pour basculer dessus.

En revanche, la nouveauté qui m’intéresse le plus c’est le changement d’interface et d’ergonomie qui s’accompagne. Voici une capture de la barre du haut du navigateur :

On voit qu’un gros effort a été fait pour réduire la taille des menus afin de gagner en lisibilité et en surface d’écran disponible pour l’affichage des sites. Même les menus « Fichier », « Edition », .. ont disparu et sont remplacés par des icônes d’accès direct. Si il y avait une seule idée à piquer pour améliorer Firefox, c’est celle-là !

Petit bémol sur cette béta, la gestion des favoris n’a pas évolué et reste toujours aussi peu intuitive, je doute qu’elle reste telle quelle dans la version finale.

Si vous voulez tester vous aussi : http://www.microsoft.com/windows/IE/ie7/tour/default.mspx

update :

  • En réalité c’est la version PREVIEW de la BETA 2 d’IE7. Donc on est loin du compte, mais franchement, aucun plantage durant l’utilisation de la journée d’hier.
  • Asa (developpeur de Mozilla) a posté une comparaison super complète sur son blog.
  • Toutes les nouveautés sont également présentés sur le IEBlog avec des captures d’écran. Idéal pour suivre ce qui se passe sans installer la bête.