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

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

- Le nouveau Gojira, c’est pour lundi… par CoqBlog le il y a 8 heures et 15 minutes

- SharePoint : nouvel article sur la mise en place des Scopes dans MOSS Searchs par Blog Technique de Romelard Fabrice le il y a 15 heures et 42 minutes

- Hello CS par Le Blog de julz le il y a 21 heures et 8 minutes

- MSDN/TechNet/Microsoft Days Tour 2008 à Lille les 13 et 14 Octobre ! par RedoBlog - The .NET Gentleman !!! le il y a 23 heures et 58 minutes

- MVC Pratique #07 - Un projet concret et le transfert des objets avec les ModelBinders par #Rui le 10-09-2008, 23:39

- SQL Server 2008 : Certifié - TS Admin (70-432) par SQL Server vu par Christian Robert le 10-09-2008, 10:58

- [WPF] Comment changer la couleur utilisée pour sélectionner les éléments d’un ItemsControl ? par Thomas Lebrun le 10-09-2008, 10:49

- Hello World! par Hamid's Place le 10-08-2008, 23:38

- SQL Profiler - Configuration pour un développeur - tracer les requêtes SQL de votre application par Atteint de JavaScriptite Aiguë [Cyril Durand] le 10-08-2008, 15:52

- Monitoring et Patron de méthode par Le blog de Marc Ranchin le 10-08-2008, 10:22