ASP.NetJe vous expliquais mon soucis d'incorporer des ressources dans une assembly pour ASP.Net dans un précédent billet.

Mais voilà, cette méthode me pose un petit soucis.

Par exemple, pour référencer un CSS, on se retrouve avec la balise suivante :

<link rel="stylesheet" type="text/css" 
href="/EspacePerso/WebResource.axd?d=_0A_1p7_3I8gl-Pind-AAV7R0Gr9YXx1QWGYTjMOZZW_pyCVvFw9fIjGa4EZ05qj0
&t=633267810333384144" />

L'URL vers le CSS est bien compliquée, et n'est pas valide W3C, donc pas bien. Autre désavantage, lors de la demande de la ressource, même si le navigateur a un cache, on passe par le serveur Web, IIS dans mon cas, puis par ASP.Net qui doit traiter WebResource.asd. Donc pas très direct comme chemin pour récupérer une feuille de style. Dernier désavantage, dans certains cas, c'est que dès qu'on veut modifier le CSS, ou changer une image, ben en gros, on doit recompiler l'assembly, ce qui n'est pas toujours le plus simple.

En regardant de plus près certaines librairies avec lesquelles j'ai déjà travaillé en ASP.Net, je me suis rendu compte d'une chose : elles utilisent le répertoire aspnet_client pour y stocker leurs CSS, scripts et bien souvent les images qu'elles utilisent. Il est vrai que cette solution comporte une petite contrainte lors du déploiement, mais elle simplifie tellement de choses derrière : URL valide, accès direct par le serveur Web, fichiers accessibles plus facilement.

Bref, je crois que je vais préférer cette solution aux ressources incorporées dorénavant.