article de presse - Cap Data Consulting
article de presse - Cap Data Consulting
article de presse - Cap Data Consulting
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
D ossier<br />
Atlas : l’Ajax <strong>de</strong> Microsoft<br />
Pour répondre à ces besoins, Atlas propose<br />
une façon d’enrichir HTML par ajout <strong>de</strong><br />
fonctionnalités clientes en proposant une<br />
syntaxe <strong>de</strong> type XML, ainsi que quelques<br />
contrôles serveurs pour ASP.NET 2.0.<br />
Malgré le fait que le projet est encore aujourd’hui<br />
en cours <strong>de</strong> développement, <strong>de</strong>s versions bêta<br />
sont régulièrement rendues publiques Cet <strong>article</strong><br />
a été écrit en utilisant la <strong>de</strong>rnière version en date,<br />
rendue disponible début février: la CTP <strong>de</strong> Janvier.<br />
Composition technique d’Atlas<br />
Atlas est composé <strong>de</strong> <strong>de</strong>ux parties : un<br />
Framework client composé <strong>de</strong> fonctions JavaScript<br />
et un Framework serveur. Ils sont, bien sûr, complémentaires<br />
afin d’offrir le maximum <strong>de</strong> fonctionnalités<br />
et communiquent entre eux via <strong>de</strong>s<br />
appels à <strong>de</strong>s services Web. Le Framework client,<br />
cœur du développement Atlas est divisé en<br />
plusieurs couches fonctionnelles.<br />
En partant <strong>de</strong> la couche basse, voici les fonctionnalités<br />
qui sont prises en charge par ces<br />
divers niveaux :<br />
• Une gestion <strong>de</strong> la compatibilité <strong>de</strong>s navigateurs.<br />
Atlas fonctionne en effet sur la quasitotalité<br />
<strong>de</strong>s navigateurs supportant AJAX.<br />
• Des extensions du langage JavaScript, afin<br />
<strong>de</strong> faciliter l’utilisation <strong>de</strong> fonctionnalités avancées<br />
telles que la prise en charge <strong>de</strong>s classes,<br />
<strong>de</strong>s namespaces, <strong>de</strong>s événements, <strong>de</strong> l’héritage,<br />
<strong>de</strong>s types <strong>de</strong> données complexes (comme<br />
les <strong>Data</strong>Set) et <strong>de</strong> la sérialisation.<br />
• Un ensemble <strong>de</strong> classes <strong>de</strong> base contenant<br />
la gestion <strong>de</strong> StringBuil<strong>de</strong>rs, du <strong>de</strong>bug / trace,<br />
<strong>de</strong>s timers.<br />
• Une couche réseau, qui prend en charge<br />
toute la gestion asynchrone <strong>de</strong> la communication,<br />
en s’appuyant sur XMLHttpRequest.<br />
• Une couche <strong>de</strong> fonctionnalités graphiques<br />
qui est chargée d’interpréter le langage déclaratif<br />
d’Atlas.<br />
• Et enfin, un ensemble <strong>de</strong> contrôles client aux<br />
fonctionnalités avancées spécifiques à Atlas,<br />
comme la TextBox <strong>de</strong> complétion ou bien les<br />
zones <strong>de</strong> « drag n drop ».<br />
Le Framework serveur vient, lui, compléter les<br />
fonctionnalités offertes par le Framework<br />
client. Il repose entièrement sur ASP.NET 2.0 et<br />
étend ses fonctionnalités en proposant<br />
quelques contrôles complémentaires. Ce<br />
Framework prend aussi en charge l’interception<br />
et l’interprétation <strong>de</strong>s appels faits par la<br />
librairie cliente.<br />
Utiliser Atlas<br />
Référencement <strong>de</strong>s scripts<br />
nécessaires<br />
Le Framework client Atlas étant composé <strong>de</strong><br />
plusieurs fichiers JavaScript, une <strong>de</strong>s premières<br />
fonctionnalités d’Atlas, dans un but d’optimisation<br />
<strong>de</strong> trafic, est le référencement automatique<br />
<strong>de</strong>s fichiers <strong>de</strong> scripts nécessaires. Pour<br />
répondre à ce besoin, Atlas utilise un<br />
« ScriptManager ». Le ScriptManager s’occupe<br />
aussi <strong>de</strong> la gestion <strong>de</strong> l’envoi <strong>de</strong> scripts <strong>de</strong><br />
compatibilité sélectionnés, dans certains cas,<br />
en fonction <strong>de</strong> votre type <strong>de</strong> navigateur<br />
Internet. Ce <strong>de</strong>rnier, obligatoire au bon fonctionnement<br />
<strong>de</strong> votre application, doit se situer<br />
entre les balises « » <strong>de</strong> votre page :<br />
<br />
<br />
<br />
<br />
Référencement <strong>de</strong> métho<strong>de</strong>s serveurs<br />
Un <strong>de</strong>s principes fondamentaux d’AJAX est justement<br />
d’offrir la possibilité d’appeler <strong>de</strong>s<br />
métho<strong>de</strong>s côté serveur. Dans la plupart <strong>de</strong>s<br />
Programmez n°85 28 avril 2006<br />
La suite sur<br />
www.programmez.com<br />
Le projet « Atlas » a fait son apparition au mois <strong>de</strong> Septembre 2005 et a été accueilli comme<br />
la réponse <strong>de</strong> Microsoft à AJAX. Le but d’Atlas est <strong>de</strong> faciliter la mise en place <strong>de</strong> comportements<br />
clients avancés tout en minimisant le nombre <strong>de</strong> lignes <strong>de</strong> JavaScript à écrire.<br />
bibliothèques AJAX existantes pour .NET, ces<br />
appels se font via <strong>de</strong>s requêtes standard redirigées<br />
sur <strong>de</strong>s Handler exécutant <strong>de</strong>s<br />
métho<strong>de</strong>s serveurs. Atlas propose une manière<br />
différente, en se basant uniquement sur <strong>de</strong>s<br />
services Web pour cette communication navigateur<br />
web / serveur.<br />
Si vous observez le fichier <strong>de</strong> configuration<br />
« Web.config » dans une application Web utilisant<br />
Atlas, vous pourrez remarquer les lignes<br />
suivantes :<br />
<br />
<br />
<br />
<br />
Ces quelques lignes servent tout simplement à<br />
rajouter <strong>de</strong>s fonctionnalités aux appels <strong>de</strong> services<br />
Web. Imaginons un service Web nommé<br />
« TestWS.asmx » : si vous appelez sa page<br />
<strong>de</strong>puis un navigateur Web, le comportement<br />
classique sera réalisé. Par contre, si vous<br />
essayez d’appeler la page « TestWS.asmx/JS »,<br />
c’est un ensemble <strong>de</strong> fonctions JavaScript qui<br />
vous seront retournées, celles-ci servant à<br />
matérialiser la classe proxy s’occupant <strong>de</strong> la<br />
communication Navigateur Web / Service Web.<br />
Imaginons un service Web développé en C# tel<br />
quel, dans un fichier « TestWebService.asmx » :<br />
namespace MonNamespace<br />
{<br />
[WebService(Namespace =<br />
"http://tempuri.org/")]<br />
[WebServiceBinding(ConformsTo =<br />
WsiProfiles.BasicProfile1_1)]<br />
public class MonWebService :<br />
System.Web.Services.WebService<br />
{<br />
[WebMethod]<br />
public string MaWebMetho<strong>de</strong>(string nom)<br />
{<br />
return string.Format("Bonjour {0},