Silverlight 3 Out of browser

Una de las características más interesantes de Silverlight 3, desde el punto de vista del desarrollo de aplicaciones RIA, es la posibilidad de poder ejecutar una aplicación Silverlight fuera del navegador.

Para poder utilizar la aplicación no es necesario abrir el navegador e indicar la Url dónde se encuentra. La aplicación la podemos tener instalada en nuestro equipo y acceder a ella como si accediésemos a una aplicación WinForm tradicional.

Eso sí, la aplicación no deja de ser una aplicación Silverlight y sigue ejecutándose dentro de la sandbox, no teniendo acceso a todos los recursos de sistema.

Si queremos que nuestra aplicación pueda comportarse de esta manera, sólo tenemos que hacer unos pequeños ajustes en la configuración del proyecto.

En la pestaña de Silverlight de las propiedades del proyecto, tendremos que activar el check de permitir que la aplicación se pueda ejecutar fuera del navegador.

image

Una vez activado esta opción podremos configurar diversos parámetros que nos permiten personalizar cómo se instala; el nombre de la aplicación, el nombre del acceso directo, la descripción, los diferentes iconos que se usarán al instalarse…

image

Una vez hechos los cambios en las propiedades se creará un nuevo fichero en el proyecto llamado OutOfBrowserSettings.xml, que contiene la configuración establecida.

image 

<OutOfBrowserSettings ShortName="AppEjemplo" EnableGPUAcceleration="False" ShowInstallMenuItem="True">
<OutOfBrowserSettings.Blurb>Esta es una aplicacion de ejemplo.....</OutOfBrowserSettings.Blurb>
<OutOfBrowserSettings.WindowSettings>
<WindowSettings Title="Aplicacion de Ejemplo" />
</OutOfBrowserSettings.WindowSettings>
<OutOfBrowserSettings.Icons />
</OutOfBrowserSettings>
 
Ya está, no es necesario hacer nada más.
 
Si ejecutamos nuestra aplicación, desde en el menú contextual de la aplicación encontraremos una nueva opción, que nos permitirá instalar la aplicación fuera del navegador.
 
Fijaros, que en la opción pone “AppEjemplo” porque en la configuración nosotros lo hemos indicado así.
image
 
Si decidimos instalar la aplicación, nos aparecerá una ventana como la que pongo a continuación:

image

Y ya está instalada. La aplicación queda instalada en C:Users[Nombre de Usuario]AppDataLocalLowMicrosoftSilverlightOutOfBrowser.

Si una vez instalada pinchamos sobre el acceso directo del menú de inicio o del escritorio tendremos la aplicación funcionando, fuera del navegador.

Y ya por último, decir que por código también podemos dar la orden de que la aplicación se instale, y por ejemplo, usar un botón de la aplicación en lugar del menú contextual.

private void AppInstal_Click(object sender, RoutedEventArgs e)
{
Application.Current.Install();
}

Ibon Landa

bon Landa lleva más de 15 años dedicado al desarrollo de software. Durante este tiempo ha trabajado en diferentes empresas en las cuáles ha podido trabajar en diferentes entornos y tecnologías. Actualmente está focalizado principalmente en tareas de desarrollo, arquitectura, en las herramientas del ciclo de vida y en todo lo relacionado con la plataforma de Cloud Computing Microsoft Azure, área en el que ha sido reconocido como MVP. Participa de forma activa en la comunidad, escribiendo su blog, manteniendo un portal sobre Microsoft Azure y colaborando con Microsoft y grupos de usuarios en eventos de formación, talleres y giras de producto.

3 comentarios en “Silverlight 3 Out of browser”

  1. Muy buen post Ibon. Una pregunta, ¿tienes alguna referencia de que recursos del sistema son accesibles desde una aplicación Silverlight 3 y cuales no?

    Un saludo

    JC’s

  2. Buenas Juan Carlos,

    La lista es un poco complicada de hacer, suelen ser los que tiene acceso el navegador. Básicamente, ninguno.

    La integración con el sistema es a traves de dialogos (OpenFileDialog y SaveFileDialog). Luego tienes un IsolatedStorage a nivel de aplicación y otro a nivel de dominio.

    Pero hay algunas consideraciones dependiendo de si se ejecuta con Out Of Browser o no.

    Sin Out Of Browser:

    Se pueden abrir urls por código
    Tienes un bridge con el DOM y JS del navegador
    Tienes 1MB de cuota de almacenamiento

    Con Out Of Browser:

    Las urls se deben ejecutar como fruto de un evento de usuario (Click por ejemplo).
    Tienes 20 MB de cuota

    Además para instalar la aplicación con el Application.Current.Install(), tampoco se puede hacer automáticamente. Tiene que venir de un evento de usuario.

    Luego tienes la Local Connection API para mandar mensajes entre aplicaciones Silverlight (nunca a una nativa).

    Y por últmo, hay un caso que aun no he comprobado. Si la aplicación la distribuyes como una HTML Application (.hta) tiene derechos más permisos de ejecución y se puede acceder al sistema de ficheros.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *