Silverlight 3 – Out Of Browser - Implementación
Una de las novedades más interesantes de Silverlight 3 es la posibilidad de ejecutar las aplicaciones fuera del navegador, lo que nos permite ejecutarla sin necesidad de entrar en un browser, navegar a un sitio, solamente ejecutar en ejecutable.
Vamos a ver de que manera podemos implementar esta funcionalidad, permitiendo al usuario instalar nuestra aplicación en su máquina.
CONFIGURACION
Cuando creamos un proyecto nuevo en Silverlight, si queremos dar la posibilidad al usuario de instalarlo en su máquina, debemos ir a las propiedades del proyecto y habilitar que la aplicación corra fuera del navegador.
Al habilitarlo, vamos a poder configurar las propiedades, que van a ser el título de la venta, la descripción que se muestra al instalar.
Los iconos que podemos utilizar son
- 16x16
- 32x32
- 48x48
- 128x128 – Utilizado para el cuadro de instalación.
Hay que tener en cuenta que las imágenes que vamos a utilizar deben estar definidas como “Content”. Para más información sobre como incluir imágenes en nuestra aplicación pueden leer el siguiente post.
Esto nos genera un archivo XML, donde están todas las propiedades, el mismo tiene el nombre que nosotros queremos.
Vemos como quedaría la instalación luego de agregar las propiedades.
INSTALACION
Hay dos maneras en las que podemos instalar nuestra aplicación.
La primera es haciendo click derecho con el mouse sobre la aplicación, donde nos aparece una opción para instalar la aplicación.
La segunda es hacerlo programáticamente, cuando el usuario ejecuta alguna acción, como ser click en algún botón de instalación. Entonces al hacer click en un botón podemos ejecutar el menú de instalación.
App.Current.Install();
VERIFICAR ESTADO
Podemos verificar si la aplicación fue instalada o no, para saber eso debemos utilizar la propiedad App.Current.InstallState.
if (App.Current.InstallState == InstallState.NotInstalled)
textInstalacion.Text = "App NO instalada localmente";
else
textInstalacion.Text = "App instalada localmente";
Para saber si se esta ejecutando localmente o no, debemos utilizar la propiedad App.Current.IsRunningOutOfBrowser.
if (App.Current.IsRunningOutOfBrowser)
textEjecucion.Text = "App corriendo localmente";
else
textEjecucion.Text = "App corriendo en el navegador";
De esta manera podemos saber si nuestra aplicación corre dentro o fuera del navegador, si ya esta instalada o no en la máquina del usuario.
Vemos como quedaría la aplicación ejecutándose dentro del navegador.
Vemos como quedaría fuera del navegador.
DESINSTALACION
Para desinstalar la aplicación debemos hacer click derecho sobre la misma, ya sea dentro o fuera del navegador y elegimos la opción “Remove this application”.
Pueden descargar el proyecto aquí.