mercredi 16 septembre 2009

Microsoft annonce son Ajax Content Delivery Network.

Il faut croire que Scott Guthrie lis régulièrement mon blog, puisque suite à mon dernier post, il vient de bloguer pour annoncer le lancement du Microsoft Ajax CDN. (et j’ai découvert par la même occasion ce qu’était un CDN, un peu de culture ne fais jamais de mal :)

Ce CDN est un ensemble de serveurs qui vont proposer plusieurs librairies Ajax (pour le moment sont disponibles les librairies ASP.NET Ajax et jQuery [update: le pluin de validation jQuery est aussi disponible : blog de Stephen Walther]) que vous pourrez référencer directement depuis votre site web. C’est totalement gratuit et sans inscription préalable, il suffit de faire un lien directement vers le fichier javascript :

<script src="http://ajax.Microsoft.com/ajax/jQuery/jquery-1.3.2.min.js" type="text/javascript"></script>

Ceci a plusieurs avantages :

  • La requête sera plus rapide (à moins que vous n’ayez une infrastructure comparable à celle de Microsoft ;)
  • Si l’utilisateur est allé sur un autre site référençant le même fichier, il sera déjà en cache
  • La bande passante est offerte (même si les fichiers JS c’est pas ce qui en consomme le plus, c’est déjà ça de pris)
  • On s’embête plus avec les liens relatifs (ça c’est moi qui l’ajoute, mais j’avoue que c’est quand même léger comme avantage :)

Le CDN sera aussi intégré à ASP.NET 4, puisqu’on pourra préciser dans le ScriptManager si on désire l’utiliser :

image

La liste des fichiers disponibles sur le CDN peut être consultée sur le site d’ASP.NET : http://www.asp.net/ajax/cdn/

lundi 7 septembre 2009

Référencer des scripts JavaScript dans une MasterPage

Lorsqu’on utilise des fichiers JavaScript externes, il faut les référencer dans l’en-tête de notre page html, tout comme on le fait pour nos fichiers CSS. Par contre, contrairement aux fichiers CSS, les références vers les fichiers JavaScript peuvent poser problème si la MasterPage est utilisée par plusieurs pages situées dans des dossiers différents.

L’en-tête de nos pages aspx contient l’attribut runat=”server” par défaut, ce qui va permettre au serveur de parcourir le contenu du <head>, afin de mettre à jour les liens vers nos fichiers css (ou d’autres types de liens, si par exemple vous avez défini un flux RSS). Cependant, ceci ne s’applique pas aux balises <script>, utilisées pour appeler les fichiers JavaScript : si on essaie d’interpréter cette balise coté serveur, le serveur va essayer d’exécuter son contenu (et donc le contenu du fichier .js), ce qui ne fonctionnera pas puisque le JavaScript est du code destiné au navigateur.

Pour référencer correctement nos fichiers, il va donc falloir explicitement demander la construction du chemin relatif correct. Pour cela, il va nous falloir utiliser la méthode ResolveClientUrl de la classe Control.

<script src="<%= ResolveClientUrl("~/Scripts/jquery-1.3.2.js")%>" type="text/javascript"></script>

Ceci fonctionne aussi bien avec ASP.NET Webforms qu’avec le nouveau Framework ASP.NET MVC.

Article : introduction à ASP.NET MVC

Les plus observateurs de mes lecteurs auront certainement remarqué que je me suis dernièrement pris de passion pour ASP.NET MVC.

Effectivement, je suis vraiment devenu fan de ce nouveau Framework, et je ne pouvait pas garder ça pour moi…

J’ai donc écrit un article, et qui est disponible sur le site de Bewise :

Introduction à ASP.NET MVC