02.07.2013 Views

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

article de presse - Cap Data Consulting

SHOW MORE
SHOW LESS

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},

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!