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.

    Consultant freelance, 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

Gadget Vista - Consommer un WebService avec Atlas

Comme vous le savez surement, les gadgets Vista sont des mini pages HTML, l'interactivité doit alors se faire en JavaScript :-) Certains fous essayent de créer des gadgets en WPF ca fonctionne plus ou moins bien puisqu'on ne peut pas interagir avec l'utilisateur : [WPF] Gadgets WPF pour la SideBar: Pas si simple que cela en a l'air... Il faut donc utiliser JavaScript, bonne nouvelle non ? ;-)

Ce qu'il y a d'intéressant avec les gadgets c'est de pouvoir communiquer avec l'exterieur, en programmation lorsqu'on parle de communication on pense inévitablement aux Services Web. Mais comment consommer un WebService dans une gadget Vista avec JavaScript ?

Il faut tout simplement utiliser l'objet XMLHttpRequest, contrairement aux application web classique on peut faire des requêtes cross-domain, c'est à dire que vous pouvez appeler n'importe quel WebService. Mais consommer un WebService XML en JavaScript sans framework est un poil compliqué surtout lorsqu'on sait à quel point il est facile de faire cela grâce à Atlas. Intégrons alors Atlas dans une gadget Vista :-)

En guise d'exemple j'ai concu un WebService très compliqué qui se trouve à l'adresse http://localhost:50951/AJAXCTPEnabledWebSite1/ws/calcul.asmx

1 [ScriptService] 2 public class Calcul : System.Web.Services.WebService 3 { 4 public Calcul() { } 5 6 [WebMethod] 7 public double Square(int i) 8 { 9 return i * i; 10 } 11 } 12

Pour appeler la méthode Square dans notre gadget Vista, référençons tout d'abord MicrosoftAjax.js (qui correspond à Microsoft Ajax Library) ainsi que le fichier http://localhost:50951/AJAXCTPEnabledWebSite1/ws/calcul.asmx/js qui créer un objet permettant d'appeler des méthodes du WebService très facilement. Appelons la méthode Square du WebService Calcul comme dans une classique application Atlas :

1 <html> 2 <head> 3 <title>Calcul Gadget</title> 4 <style> 5 body { 6 width:130; 7 height:50; 8 } 9 </style> 10 <script type="text/javascript" 11 src="Atlas.Debug/MicrosoftAjax.js"></script> 12 <script type="text/javascript" 13 src="http://localhost:50951/AJAXCTPEnabledWebSite1/WS/Calcul.asmx/js"></script> 14 <script type="text/javascript"> 15 16 window.pageLoad = function(){ 17 Calcul.set_path("http://localhost:50951/AJAXCTPEnabledWebSite1/WS/Calcul.asmx"); 18 19 $get('btn1').onclick = function(){ 20 Calcul.Square(parseInt($get('tb').value), function(e){ 21 $get('result').innerHTML = e; 22 }); 23 } 24 } 25 26 </script> 27 </head> 28 <body> 29 <input type="textbox" name="tb" id="tb" style="width:20px"/><button id="btn1">Go</button> 30 <br /> 31 <span id="result"></span> 32 </body> 33 </html> 34

Cela a presque fonctionner du premier coup, en effet l'adresse du WebService retourné par le fichier Calcul.asmx/js est une adresse relative, en forçant la propriété path de l'objet Calcul on peut appeler un WebService et bénéficier de toutes les fonctionnalités des WebServices et Atlas. Bref Atlas et les gadgets Vista cohabitent plutot bien donc autant en profiter.


Pour en savoir un peu plus sur les WebService et Atlas vous pouvez consulter la démo qu'Azra et moi avons fait pour la rencontre CodeS-SourceS/ASP-PHP.net Ajax & Atlas - Slides et demo de la rencontre CodeS-SourceS/ASP-PHP.net ou alors consulter la documentation How To: Call a Web Service from JavaScript using Server Types

Pour débuter dans la création de gadget Vista voici un article d'introduction : Gadget Development Overview ainsi que la documentation MSDN : Windows Sidebar reference

Posted: lundi 23 octobre 2006 19:46 par cyril
Classé sous : , , ,
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

Thomas LEBRUN a dit :

&gt;&gt; Il faut donc utiliser JavaScript, bonne nouvelle

&gt;&gt; non ? ;-)

Je ne sais pas si c'est une bonne nouvelle pour moi par contre :)

Post intéressant, merci Cyril.

Je n'aurai qu'une chose à dire: on verra bien ce que l'avenir nous réservera.... ;)

A+

# octobre 23, 2006 20:11

cyril a dit :

Je me doute que malheureusement il y aura des astuces voir nouvelles versison de la sidebar/wpf qui permettront de se passer de JavaScript :-(

Mais en attendant c'est pas le cas et WPF dans la sidebar ca risque de consommer pas mal de ressources par rapport à JavaScript :-)

# octobre 23, 2006 21:07

Gedro a dit :

Bonjour,

avez-vous été capable de faire la même chose dans une page HTML simple. pas Un gadget dans Vista mais vraiment une page Web?

Je cherche des exemples pour appeler des Services Web à partir d'autres technologies qu'ASP.NET (HTML), mais sans succès.

# décembre 18, 2006 00:05

cyril a dit :

Normalement il n'y a aucun soucis. Je t'invite a poser ta question sur le forum de www.aspfr.com ce sera plus simple pour qu'on puisse regarder le problème ensemble.

N'oublies pas de mettre le lien du topics ici ;-)

# décembre 18, 2006 01:04
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Silverlight 3 : Communication et multicast par Kévin Gosse le il y a 6 heures et 32 minutes

- [Perso] Découvertes estivales : Linux (Part I) par Le blog de FremyCompany le il y a 9 heures et 13 minutes

- [Refactoring] ReSharper pour Visual Studio 2010 (Preview) par Thomas Jaskula le il y a 23 heures et 49 minutes

- [Refactoring] Analyser vos exceptions avec ReSharper Exceptional par Thomas Jaskula le 07-03-2009, 23:36

- SharePoint 2007 : patterns & practices SharePoint Guidance par Philippe Sentenac [MVP SharePoint] le 07-03-2009, 09:56

- [Visual Studio 2010] Les tests cases c’est bien, mais je vais devoir tout réécrire ? par Etienne Margraff le 07-03-2009, 09:00

- MVP[Gribouillon].AddYear par The Grib's Lair [Sébastien PICAMELOT - MVP SharePoint] le 07-03-2009, 08:45

- Clinique INSIA - Projet de fin d’Etudes (Silverlight 3 MVVM et OutOfBrowser, WCF, TFS) - Part 1 par David REI le 07-02-2009, 23:38

- C’est la crise ? Bah pourquoi cramer du budget pub alors ? par Nix's Blog le 07-02-2009, 15:31

- Soyons MVP ! par TheSaib .NET blog le 07-02-2009, 12:15