[Silverlight] Utilisation des applications Silverlight 3 en mode offline
Avec les .NET RIA Services (dont je tenterais de parler un peu plus tard car j'avoue que je suis vraiment impressionné par le produit et ce qui l'entoure), je dois reconnaitre que la possibilité d’exécuter des applications Silverlight 3 en mode offline me plait énormément 
En effet, lorsque vous développez une application Silverlight 3, vous avez la possibilité d’éditer le fichier AppManifest.xml pour spécifier le paramétrage (titre de l’application, description, etc…) qui sera utilisé par l’application en mode offline:
Lorsque le contenu de la propriété ApplicationIdentity est renseigné, il suffit de lancer l’application Silverlight 3 et de faire un clic droit dessus pour se voir proposer une option permettant d’installer l’application sur le poste client (sans nécessité de droits administrateur !):
A ce moment, la boite de dialogue suivante apparait, vous demandant où vous souhaitez installer les raccourcis permettant de lancer l’application:
Une fois les options choisies, vous disposez de nouveau raccourcis, sur le bureau ou dans le menu Démarrer:
Lorsque vous lancez le raccourci, celui-ci fait appel à l’exécutable nommé sllauncher.exe pour lancer votre application Silvelright, en mode offline:
En ce qui concerne les différentes icones que l’on retrouve, vous pouvez les personnaliser, toujours dans le fichier AppManifest.xml, sous la balise Icons:
Attention, pour que cela fonctionne, il faut que l’action de génération (Build Action) de vos icones soit positionné à “Content”, dans Visual Studio.
Une fois votre application installée sur les postes clients, il faut savoir que celle-ci se met à jour automatiquement lorsqu’une nouvelle version du fichier XAP est détectée sur le serveur (ce processus de mise à jour est obligatoire, dans le sens où vous ne pouvez pas empêcher la mise à jour de s’exécuter):
Au niveau de votre code, vous pouvez détecter si votre application s’exécute en mode offline ou online. Pour cela, il suffit d’utiliser la propriété RunningOffline:
this.tb.Text = "Application en mode offline ? " + Application.Current.RunningOffline.ToString();
Enfin, pour supprimer l’application qui est installée localement, un simple clic droit sur l’application en cours d’exécution (en mode offline ou online) vous permet d’activer une option nommée “Remove this application”:
Une fois la confirmation saisie par l’utilisateur, l’application et les raccourcis sont supprimés du poste client:
Au niveau des fonctionnalités apportées par cette fonctionnalité, on retrouve:
- Sticky presence on the desktop: Upon user consent, a Silverlight app can be detached and pinned on the user’s desktop using familiar OS metaphors for this action. On Windows this can be through Start menu and/or Desktop shortcuts. On the Mac the user can drag and drop the application bundle to a location of their choice.
- Run outside of browser: activating the app locally launches it outside of the web browser. Our data suggests consumers find this more intuitive as a result of clicking on a desktop shortcut.
- Safe by default: Silverlight still retains a rigid security sandbox within which the app operates. Apps cannot elevate beyond the privileges granted by this sandbox. Our philosophy is to stretch this sandbox by providing features within it on a case by case basis. More on this in future.
- Non-administrative install: Along with the sandbox, Silverlight furthers the consumer’s security by never requiring administrative privileges either for install or for run. An exception may be if optionally a user on the Mac wants to drop the app bundle into a dir that requires sign-on. In that case Silverlight honors the framework set out by the OS and user intuition.
- Higher default persistence space: the default quota for Isolated Storage for Out of Browser apps is a higher value than for browser based apps. It is currently 25MB.
- Network awareness: One of the key ingredients of this feature set is the ability for Silverlight apps to be aware of network connectivity and to be notified when that changes. Apps can cache data (or outbound calls) into Isolated Storage and post-back (or playback) when connectivity is regained. This works in Silverlight apps in the browser and out.
- Built-in auto update: Silverlight will check for new versions of the app asynchronously upon app launch, guaranteeing users an instant-on experience. Updates are applied at next launch.
- Execution state notifications to the app: Silverlight notifies the app on momentous events throughout its lifetime and transition from in-browser to out-of-browser, allowing the app to model its UI accordingly.
Source: http://nerddawg.blogspot.com/2009/03/introducing-offline-and-out-of-browser.html
Et voila ! Une fonctionnalité qui, à priori, peut paraitre dénouée de sens mais qui au final se révèlera très utile !
Plutôt intéressant non 
A+
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :