En ce moment, je suis en train de me documenter ce qu’on appelle Ajax. Concrètement, c’est super clair dans ma tête. MAIS, il y a un hic. Je vois que lorsqu’il s’agit de le coupler sur un site ASP .NET, il existe plusieurs manière de s’y prendre. Et là, je trouve soit un framework Ajax ou bien une bibliothèque intitulé Atlas.
Elles proposent toutes deux les mêmes outils (UpdatePanel, UpdateProgress, ScriptManager, etc…) MAIS syntaxiquement et la manière de les implémenter sont totalement différents. Avec le framework Ajax, il me faut tout simplement utiliser les outils cités sans pondre un seul script (enfin d’après ce que j’ai pigé sur une des vidéos qui traine sur le site http://asp.net/ajax/ ). Du coup je trouve sa super trivial.
D’un autre côté, j’ai un e-book sur Atlas. Déjà il y a 2 manières de faire un site profitant de ces fonctionnalités (du js pur qui font appel aux instances type new Sys.UI.Control…) ou bien en faisant du script xml. J’ai pas réussit à faire marché le 1er cas pour une raison que je ne connais pas. Le e-book ne précise pas ou ne détaille pas suffisament les manip à effectuer sous VS 2005. Le 2e cas fonctionne parfaitement. Vous me direz pkoi me casser la tete. Bah, perso, je veux bien comprendre le concept d’Ajax et pkoi il existe tant de différences surtout entre ces 2 là que sont le Framework Ajax et la dll Atlas.
Et puis que prendre ? surtout qu’il y a la méthode classique où faut gérer soit même l’échange de flux via XmlHttpRequest/ActiveX et intéragir avec le code serveur.
EDIT rapide pour développer quand même un peu:
Donc la réponse à une de tes questions est donc qu’il faut utiliser ASP.NET Ajax, qui est trèèèès simple à utiliser. Ce framework n’est pas livré comme d’autres avec tout un cas de composants “pré-ajaxé”, mais te donne tout ce qu’il faut pour faire des mises à jour asynchrones.
Si le coeur t’en dit, tu peux récupérer Ajax Control Toolkit, qui en gros est un ensemble de control ou controlextender qui permettent d’ajouter quelques effets très web 2.0. Ensuite moi je sais que je les aime pas pour plein de raisons mais libre à tout le monde de les utiliser quand même B)
Maintenant tout ce que tu as à faire pour faire de la maj asynchrone c’est d’encapsuler tes contrôles dans un UpdatePanel, et pouf ça marche. Au pire tu lui rajoutes des Triggers pour spécifier quand déclencher la mise à jour, mais ça reste aussi simple que de se faire des pates. Je n’aime pas utiliser ce mot, mais c’est tout de même assez magique.
en fait j’ai été traumatisé par le CascadingDropDown qui ne fonctionne pas dans un usercontrol quand on utilise une webmethod B)
Nan plus sérieusement je leur reproche globalement une certaine lenteur (le dragPanel avec un peu plus que tu texte, aie aie misère), et à chaque fois que j’ai voulu en utiliser je ne sais pas pourquoi je dois être maudit, mais j’ai toujours eu des merdes. De plus, tu n’as pas la garanti que ça fonctionne dans tous les cas comme tu t’y attends. Par exemple le dragPanel ne gère pas le bug/comportement d’ie qui fait que les dropDownList se dessine par dessus des div malgrè un z-index bien défini (donc le dragPanel quand tu le fais passer au dessus d’une dropDown, bah tu vois toujours les dropDown).
Donc bon maintenant, UpdatePanel dans 90% des cas dans mon code, et sinon je fais mes propres extender.