Truco: Usar Silverlight embebido en ASP.NET MVC

Aunque esto puede sonar estúpido (y sí, lo es), usar Silverlight en ASP.NET MVC, por alguna extraña razón ASP.NET MVC guarda el .xap de nuestra aplicación Silverlight en su caché y aunque hagamos cambios a la aplicación (y compilemos vaya) la aplicación no mostrará los cambios. La solución es sencilla:

En el <div> donde vamos a embeber nuestra aplicación, en el parámetro source, hacemos lo siguiente:

<param name="source" value="@Url.Content("~/ClientBin/PruebaWCF.SL.xap")?1"/>

2 cosas:

Estamos dandole la URL de nuestro .xap usando un helper de ASP.NET MVC, así cuando hagamos deploy, podrá saber dónde se encuentra el fichero.

Por otro lado, fijaros en el ?1, le pasamos por parámetro un valor totalmente arbitrario, con eso invalidamos el caché y hará que cargue el .xap de nuevo.

Una mejora de este truco es hacerlo automáticamente (pues tendríamos que cambiar el parámetro en cada build)

<param name="source" value="@Url.Content("~/ClientBin/PruebaWCF.SL.xap")?@DateTime.Now.ToLongTimeString()"/>

Así pues generaremos una cadena nueva cada vez que compilemos.

Podemos cambiarlo y llevar la cuenta de cuantos “builds” hemos hecho creando una simple clase. Pero vaya, con esto va de sobra para que la cosa funcione como debería de funcionar sin tocar nada…

Hasta otra (espero que pronto :P )

Tags: ,

Dejar un comentario