Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Atteint de JavaScriptite Aiguë [Cyril Durand]

Expert ASP.net Ajax et WCF, Cyril Durand parle dans son blog de point techniques sur ASP.net, ASP.net Ajax, JavaScript, WCF et .net en général. Cyril est également consultant indépendant, n'hésitez pas à le contacter pour de l'assistance sur vos projets

Actualités

  • Blog de Cyril DURAND, passionné de JavaScript, Ajax, ASP.net et tout ce qui touche au developpement Web Client-Side.

    N'hésitez pas à me contacter pour vos projets .net : architecture, accompagnement, formation, ...

    View Cyril Durand's profile on LinkedIn
    hit counters


    Expertise Commerce server et BizTalk

Microsoft Ajax Extensions (Atlas) RTM - Que contient il au final ?

Comme annoncé un peu partout, Microsoft Ajax (codename Atlas) est sorti en version RTM !

Vous pouvez le télécharger ici : Microsoft ASP.net Ajax Extensions, une chose  interessante dans l'annonce de Scott Guthrie est que tous les codes vont être disponible. Quel avantage par rapport à Reflector ? En ayant les sources vous pouvez attacher un debugger et donc faire du pas à pas dans le code. Ce qui est quand même plus facile que d'utiliser Reflector.

Le 28 juin 2005 Scott Guthrie annonce le projet Atlas. Depuis de nombreuses CTP, betas, ont vu le jour, mais au final que reste t'il que contient ce nouveau Framework ? En quoi est-il réellement innovant ?

Microsoft Ajax Extensions

Le controle UpdatePanel / UpdateProgress

Sans contestation possible, l'UpdatePanel est vraiment le contrôle le plus sympathique. Celui-ci permet de rafraichir une partie de la page dynamiquement via une requête XMLHttpRequest. Son utilisation est très simple : il se comporte comme un classique Panel, tout ce que vous mettez dedans se rafraichira lorsque qu'on contrôle contenu dans l'UpdatePanel fera un postback :

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <%=DateTime.Now.ToLongTimeString()%> <asp:Button ID="Button2" runat="server" Text="Button" /> </ContentTemplate> </asp:UpdatePanel>

Il est aussi possible de rafraichir l'updatePanel via un contrôle placé à l'extérieur de l'UpdatePanel via les triggers :

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <%=DateTime.Now.ToLongTimeString()%> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Button2" /> </Triggers> </asp:UpdatePanel> <asp:Button ID="Button2" runat="server" Text="Button" />

Enfin il est possible de rafraichir un UpdatePanel par code

UpdatePanel1.Update();

Maintenant que vous rafraichissez des morceaux de pages, il faut pouvoir prévenir l'utilisateur que la page est en cours de chargement. C'est justement le but de l'UpdateProgress :

<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="UpdatePanel1"> <ProgressTemplate> En cours ... </ProgressTemplate> </asp:UpdateProgress>

Le contrôle timer

Comme son nom le laisse penser, le contrôle Timer permet de rafraichir la page à intervalle régulier, la plupart du temps on l'associe à un UpdatePanel pour rafraichir une zone particulière. Mais attention, ce contrôle fait un postback donc un aller-retour client/serveur, évitez de rafraichir la page trop régulièrement pour éviter des problèmes de monté en charge. De plus pour des raisons techniques on peut effectuer qu'un seul rafraichissement d'UpdatePanel à la fois ! Voici comment on l'utilise :

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <%=DateTime.Now.ToLongTimeString()%> </ContentTemplate> <Triggers> <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> </Triggers> </asp:UpdatePanel> <asp:Timer ID="Timer1" runat="server" Interval="2000" />

Les WebServices

On peut désormais appeler un WebService à partir du code JavaScript. Pour cela il faut tout d'abord créer un WebService (.asmx) et rajouter lui rajouter l'attribut ScriptService

[ScriptService] public class MonWS : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } }

Ensuite vous faites référence au WebService dans le ScriptManager de la page. Cette action va créer un proxy pour que JavaScript puisse accéder à notre WS.

<asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServiceReference Path="MonWS.asmx" /> </Services> </asp:ScriptManager>

Et enfin vous pouvez appeler directement le WebService via JavaScript :

var helloWorld_callBack = function(e){ alert(e); } MonWS.HelloWorld(helloWorld_callBack);

Microsoft Ajax Library

En plus des contrôle serveur, Atlas inclut tout un Framework coté client qui permet différentes choses mais je détaillerais tout ça dans un prochain post. En attendant vous pouvez consulter ces articles Microsoft AJAX Library (Atlas) – Javascript OOP enhancements (Part 1) et Microsoft AJAX Library (Atlas) – Javascript OOP enhancements (Part 2)

Ajax Control Toolkit

Alors que Microsoft Ajax Extensions est plutôt un Framework avec quasiment aucun nouveau contrôle. Les Toolkits c'est tout le contraire. Ce projet communautaire est un ensemble de contôle. J'ai déjà présenté ce projet de nombreuses fois : "Atlas" Control Toolkit Refresh. Cette nouvelle version inclut 4 nouveaux contrôles :

  • AutoComplete: The much-requested control that provides suggestions to complete input typed in a textbox
  • Calendar: Client-side calendar control
  • MaskedEdit: Control to enforce input entered into a text box is in a specific format complying with specific types using client-side validation
  • TabContainer: Tab strip control to organize page content

Ces nouveaux contrôles sont vraiment très utiles et facilement intégrable dans un site existant, mais attention si vous les essayez, vous risquez de les adopter ;-)

Le plus simple est encore de tous les essayer : tester les Ajax Toolkit en live puis les télécharger ici : Télécharger les Ajax Toolkit sur codeplex  

Ajax Future Version January CTP

La RTM d'Atlas est sortie mais c'est pas pour autant que les équipes de développement sont au chomage technique, ils préparent d'ore et déjà une nouvelle version et nous la montre en exclusivité dans ce package. A l'interieur vous découvrirez les bridges, le XML-Script ainsi que pas mal de choses qui ont été retiré des anciennes versions d'Atlas pour des raisons de compatibilité.

Posted: mercredi 24 janvier 2007 15:23 par cyril
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :

Commentaires

nexto a dit :

Que du bonheur tout ca ! :-)

# janvier 24, 2007 15:52
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- « Naviguer vers le haut » dans une librairie SharePoint par Blog de Jérémy Jeanson le 10-07-2014, 13:21

- PowerShell: Comment mixer NAGIOS et PowerShell pour le monitoring applicatif par Blog Technique de Romelard Fabrice le 10-07-2014, 11:43

- ReBUILD 2014 : les présentations par Le blog de Patrick [MVP Office 365] le 10-06-2014, 09:15

- II6 Management Compatibility présente dans Windows Server Technical Preview avec IIS8 par Blog de Jérémy Jeanson le 10-05-2014, 17:37

- Soft Restart sur Windows Server Technical Preview par Blog de Jérémy Jeanson le 10-03-2014, 19:43

- Non, le certificat public du CA n’est pas un certificat client !!! par Blog de Jérémy Jeanson le 10-03-2014, 00:08

- Windows Server Technical Preview disponible via MSDN par Blog de Jérémy Jeanson le 10-02-2014, 19:05

- Focus Sauvegardes SharePoint par Le blog de Patrick [MVP Office 365] le 10-02-2014, 13:11

- Technofolies, votre évènement numérique de l'année par Le Blog (Vert) d'Arnaud JUND le 09-26-2014, 18:40

- Xamarin : From Zero to Hero par Fathi Bellahcene le 09-24-2014, 17:35