Uri…tica te digo donde está la imagen

Silverlight permite obtener recursos desde distintos sitios. Para poder accesarlos correctamente debemos utilizar Uri’s.

Algunos recursos son básicamente archivos que nuestras aplicaciones accesan para poder hacer su trabajo. Su ubicación y su facilidad de acceso dependen de lo que queramos que un usuario y la aplicación hagan o no hagan con él (el recurso). Veamos algunas de esas ubicaciones.

En la carpeta ClientBin

Cuando se compila una aplicación Silverlight se genera un archivo .xap que se hospeda en la carpeta ClientBin en el proyecto web. A nivel de esta carpeta podemos agregar archivos que nuestra aplicación pueda acceder. La sintaxis de la Uri relativa para accesar un archivo ubicado allí es: archivo.ext

Ventajas: Es posible actualizar el archivo después que el usuario halla descargado la aplicación Silverlight ya que el archivo es, prácticamente, independiente de la aplicación.

Desventajas: El usuario puede obtenerlo directamente, no es buena idea para información sensible. Accesarlo es más lento pues el cliente debe descargarlo desde el servidor dado que no hace parte de la aplicación.

Dentro del XAP como un archivo independiente

El ejecutable de la aplicación, el archivo xap, es realmente un comprimido (.zip) que contiene todo lo que necesita la aplicación para comenzar a funcionar excepto, por supuesto, el runtime de Silverlight. Dado que es un .zip puede ser descomprimido y su contenido observado. Para colocar un recurso dentro de este archivo la sintaxis de la uri debe ser: /archivo.ext, además, la acción de compilación del archivo (recurso) debe ser “Contenido“.

Ventajas: Dado que está incluido dentro del xap que el usuario descarga su acceso es rápido pues ya está en el equipo del usuario. Además, al ser un archivo independiente dentro del xap, la aplicación sólo lo carga a memoria cuando lo requiere.

Desventajas: Dado que sigue siendo un archivo independiente el usuario podría accesarlo de forma directa. Nuevamente, no es la mejor opción para proteger información sensible.

Incrustado dentro del ejecutable de la aplicación

Dentro del comprimido xap, entre otras cosas, queda un archivo .dll con el nombre del proyecto Silverlight. Esta es la aplicación en sí. Es posible que el archivo quede incrustado (no me gusta la palabra “embebido”… aunque resulta válida en español) dentro de dicha dll. La sintaxis para accesar un recurso ubicado allí es: archivo.ext, además, la acción de compilación del archivo (recurso) debe ser esta vez “Recurso“.

Ventajas: Nuevamente, dado que está incluido dentro del xap que el usuario descarga su acceso es rápido pues ya está en su equipo. Y ya que está incrustado dentro de un archivo .dll al usuario inquieto le resultará más difícil accesarlo de forma directa… no sobra aclarar que nada es imposible en esta mundo.

Desventajas: Ya que hace parte de la .dll principal de la aplicación se carga junto con ella ocupando memoria aunque no se esté utilizando. Salvo que sea estrictamente necesario, y dependiendo del tamaño, un video sería un buen candidato para NO alojarlo allí.

Incrustado dentro de una librería Silverlight

Cuando creamos librerías auxiliares para ser utilizadas por nuestra aplicación, al momento de compilarlas estas se convierten archivos .dll independientes que también quedan al interior del .xap. Allí también podemos colocar recursos. La sintaxis para accesarlos en este caso sería: /nombrelibreria;component/archivo.ext. Obsérvese que se requiere la cadena “;component/” en medio. Nuevamente, la acción de compilación del archivo debe ser “Recurso“.

Ventajas: Las mismas que si lo incrustáramos en la dll principal. Adicionalmente, dado que es un archivo satélite, podríamos utilizar MEF u tecnologías similares para modificarlo y que la aplicación lo accese bajo demanda desde el servidor. No sobra anotar, por supuesto, la obvia ventaja de tener una librería de recursos que podemos utilizar en varias soluciones.

Desventajas: Una librería satélite hacer crecer un poco más la descarga que el usuario tiene que hacer de la aplicación, sin embargo, hoy día los anchos de banda que manejamos en las comunicaciones hacen estos tiempos casi impercentibles.

Para que veas esto en acción puedes descargar la solución demo aquí. Y para que te quede fáil recordar lo aquí leído te adjunto un “cheat sheet” resumiéndolo:

Imagen

Anuncios

Acerca de SilverIdeas

Instructor y entusiasta en el uso de Silverlight y otras tecnologías XAML.
Esta entrada fue publicada en Silverlight. Guarda el enlace permanente.

Una respuesta a Uri…tica te digo donde está la imagen

  1. Silvia dijo:

    Hola, estoy desarrollando una aplicacion silverlight para el firmado digital, esta es una muuy buena solucion para tener acceso a los certificados digitales de manera local, quiero descargar tu ejemplo pero dice q no lo encuentra, quiza es xq el post tiene un año. no se si podrias explicarme un poco más de como funciona el uso de recursos o de colocar los archivos en el ensamblado.
    Saludos y buen post!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s