Comme vient de l'annoncer Cyril la nouvelle version de Microsoft Ajax Framework RC est disponible.
On attend la version RTM pour avant la fin de l'année.
Une des choses qui avait disparu à la sortie de la Beta 1 et 2 était la possibilité d'écrire des bridges. Cette fonctionnalité est réapparue dans cette nouvelle version d' « ASP.NET 2.0 AJAX Futures December CTP » sous le namespace « Microsoft.Web.Preview.Services »
Mais c'est quoi un Bridge ?
Un bridge donne la capacité à un script JavaScript de requêter une URL sur un Domain qui n'est pas le sien (de son serveur d'origine). Comment ? Simplement en appelant une URL sur son serveur qui, lui, fait la passerelle vers le serveur externe. L'URL en question est un fichier avec une extension asbx qui sert simplement de pont.
Exemple de bridge pour appeler le Service REST GeoName qui renvoi Latitude et Longitude d'un département.
Le service revoie du XML on le transforme en utilisant « Microsoft.Web.Preview.Services.XPathBridgeTransformer »
<?
xml
version
="1.0"
encoding="utf-8" ?>
<bridge
namespace="Demo"
className="GeoNames">
<proxy
type="Microsoft.Web.Preview.Services.BridgeRestProxy"
serviceUrl="http://ws.geonames.org/postalCodeSearch" />
<
caching
>
<
cache
type
="Microsoft.Web.Preview.Services.BridgeCache" />
</caching>
<
method
name
="GetGeoNames">
<input>
<parameter
name="maxRows"
value="10"
serverOnly="true" />
<parameter
name="postalcode" />
<parameter
name="country"/>
</input>
<
transforms
>
<
transform
type
="Microsoft.Web.Preview.Services.XPathBridgeTransformer">
<data>
<attribute
name="selector"
value="code" />
<dictionary
name="selectedNodes">
<item
name="postalcode"
value="postalcode" />
<item
name="name"
value="name" />
<item
name="countryCode"
value="countryCode" />
<item
name="lat"
value="lat" />
<item
name="lng"
value="lng" />
</dictionary>
</data>
</transform>
</
transforms
>
</
method
>
</
bridge
>
Pour l'utiliser dans la page il suffit de référencer le fichier asbx dans le ScriptManagerProxy
<
asp
:
ScriptManagerProxy
ID="ScriptManagerProxy1"
runat="server">
<Services>
<asp:ServiceReference
Pathi="~/Bridges/GeoNames.asbx"
/>
</Services>
</asp:ScriptManagerProxy>
Et ensuite depuis du code JavaScript on va pouvoir appeler ce service externe et donc faire des applications de Mash-UP
<
script
type="text/javascript">
function GetLngLat(){
var cp = 75001; var c = 'FR';
Frimr.GeoNames.GetGeoNames({ postalcode:cp, country:c},
Function.createDelegate(this, _onDataAvailable),
null, null, null, null);
}
}
function _onDataAvailable(result, response, userContext) {
if (result.length > 0)
{
alert('Ville:'+result[0].name+
' Longitude:'+result[0].lng+
' Latitude:'+result[0].lat);
}
}
</script>
Il ne faut pas oublier aussi de changer le web.config pour qu'il prenne en compte la nouvelle extension « asbx »
<
httpHandlers
>
…
<
add
verb
="GET,HEAD,POST"
path="*.asbx"
type="System.Web.Script.Services.ScriptHandlerFactory,
System.Web.Extensions,
Version=1.0.61025.0,
Culture=neutral,
PublicKeyToken=31bf3856ad364e35"
validate="false"/>
</httpHandlers>
La dernière session du MiniMix à Paris va bientôt commencer (dans 45 minutes)
Dans la première partie on présente le site Frimr et bien sûr la nouvelle fonctionnalité : le Chat (développé par WinWise).
Si vous voulez vous retrouvez en chat en live avec tous les praticipants de Paris connectez vous sur www.frimr.com/chat.aspx une fois authentifié.
Pour compléter le billet de Patrice il y a la beta 1 de Microsoft ASP.NET Ajax Extentions de dispo mais aussi les Ajax control toolkit qui on été migré en 1 semaine sur la nouvelle version du framework (ce qui m'a fait passer des nuits un peut courte cette dernière semaine).
Il y pas mal de changement effectivement dans cette nouvelle version dont le passage du mode "closures" au mode "prototypes" en grande partie pour optimiser l'emprunte mémoire. Pour mieux comprendre la différence entre ces deux modes vous pouvez allez voir les deux billets de Bertrand Le Roy Part1 Part2.
Les nouveautés sur le nouveau framework
Les nouveautés sur les ControlToolKit
C'est ici :
http://www.microsoft.com/downloads/details.aspx?FamilyId=5012A573-0D84-4E39-983C-CA22F2107B07&displaylang=en
The VSTO 2005 SE Beta includes the following functionality:
· Application-level add-in support for the most popular Microsoft Office 2003 and 2007 Office System applications including Outlook, Excel, Word, PowerPoint, Visio and InfoPath (2007 version only). It also provides safe loading/unloading and easy management of managed add-ins.
· Support for key Office 2007 features: programming model and runtime support for the ribbon, custom task panes, and Outlook form regions.
· Design-time support for InfoPath 2007 form templates, which means that you can build your forms right inside Visual Studio.
· Support for maintainability and compatibility. The VSTO 2005 SE Beta ensures that the applications you’ve built on Office 2003 with VSTO 2005 continue to run with the 2007 Office system.
VSTO 2005 SE Beta runs in Visual Studio 2005 Professional and above
Voila un de plus mais cette fois d'une nouvelle génération:
C'est un contrôl et non un extender mais qui utilise Atlas et le SDK des Extenders.

C'est donc un contrôl ASP.NET v2 qui implémente le ClientCallBack.
Quand l'utlisateur click pour changer le rating. Cela déclanche un évenement asynchrone récupéré coté client par Atlas :)
Toute l'astuce de ce composant est que le développeur à juste à déposer le composant sur son formulaire écrire du code dans l'événement "Change" du contrôle et ce code sera déclanché par ClientCallBack avec une réponse asynchrone coté JavaScript.
Pour ceux qui vont peut être le remarquer je suis partie du CustomControl Atlas que Nikhil avait développé pour sa démo du Mix
Ce contrôl est disponible sur CodePlex dans le Projet Prototype de la solution Atlas Control ToolKit ici :
http://www.codeplex.com/SourceControl/DownloadSourceCode.aspx?ProjectName=AtlasControlToolkit&changeSetId=746
Juste après avoir shiper la nouvelle version des
Atlas Control ToolKit. Je vous en propose un nouveau :
Le « PagingBulletedListExtender » qui vient s’accrocher comme son nom l’indique à un asp:BulletedList pour faire du paging
client dessus.
Les grandes options de paramétrage :
- Trier la liste coté client [true/false]
- Fixer le nombre d’éléments par page (calcul automatique de l’index) [MaxItem]
- Fixer une longueur d’index [Auto / 1 / 2 / …]
- Hauteur de la liste [optionel]
- Caractère de séparation pour l'index
Téléchargable sur CodePlex et dispo avec les sources dans le répertoire Prototype:
http://www.codeplex.com/SourceControl/DownloadSourceCode.aspx?ProjectName=AtlasControlToolkit&changeSetId=589
Exemple:
<cc1:PagingBulletedListExtender ID="PagingBulletedList1" runat="server">
<cc1:PagingBulletedListProperties
TargetControlID="BulletedList1"
ClientSort="true"
IndexSize="Auto"
MaxItemWithIndexAuto="20"
Height="200"
Separator=" - " />
</cc1:PagingBulletedListExtender>