Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[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 Smile

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:

image

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 !):

image

A ce moment, la boite de dialogue suivante apparait, vous demandant où vous souhaitez installer les raccourcis permettant de lancer l’application:

image

Une fois les options choisies, vous disposez de nouveau raccourcis, sur le bureau ou dans le menu Démarrer:

image

Lorsque vous lancez le raccourci, celui-ci fait appel à l’exécutable nommé sllauncher.exe pour lancer votre application Silvelright, en mode offline:

image

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:

image

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):

image

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”:

image

Une fois la confirmation saisie par l’utilisateur, l’application et les raccourcis sont supprimés du poste client:

image 

 

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 Wink

 

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 :
Posted: vendredi 20 mars 2009 07:13 par Thomas LEBRUN
Classé sous : ,

Commentaires

EliseD a dit :

Ca me fait poser quelques questions... Ok on peut éxecuter Silverlight en mode offline, mais comment résoud t'on les problèmes de stockages des données en local, quand on est déconnecté ?

Et du coup, le métier se retrouve aussi coté client, pour etre éxécuté en local (alors qu'on peut voir avec la sortie de .Net RIA Service qu'il y aurait une tendance à centraliser coté serveur l'applicatif...

Des idées ?

# mars 26, 2009 14:17

Thomas LEBRUN a dit :

Etant donné que le XAP est stocké localement, dans la cas d'une application offline, il est toujours possible d'utiliser l'Isolated Storage: certes, c'est pas forcément le top mais cela reste une éventualité.

# mars 26, 2009 14:50

malkuth a dit :

Autre question, a t'on toujours accés a la page???

c'est balot dit comme ça mais pas de molette pour deepzoom sinon... à moins que l'on nous apporte quelques nouveau évenements.

# mars 30, 2009 15:51

Thomas LEBRUN a dit :

>> Autre question, a t'on toujours accés a la page???

Aucune idée mais à bien y réfléchir, pourquoi vouloir accéder à la page si tu installes l'application localement ?

>> c'est balot dit comme ça mais pas de molette pour deepzoom sinon... à moins que l'on nous apporte quelques nouveau évenements.

Attention, ca reste une Beta donc à voir dans les autres versions :)

# mars 30, 2009 16:04
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Merci par Blog de Jérémy Jeanson le 10-01-2019, 20:47

- Office 365: Script PowerShell pour auditer l’usage des Office Groups de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 11:02

- Office 365: Script PowerShell pour auditer l’usage de Microsoft Teams de votre tenant par Blog Technique de Romelard Fabrice le 04-26-2019, 10:39

- Office 365: Script PowerShell pour auditer l’usage de OneDrive for Business de votre tenant par Blog Technique de Romelard Fabrice le 04-25-2019, 15:13

- Office 365: Script PowerShell pour auditer l’usage de SharePoint Online de votre tenant par Blog Technique de Romelard Fabrice le 02-27-2019, 13:39

- Office 365: Script PowerShell pour auditer l’usage d’Exchange Online de votre tenant par Blog Technique de Romelard Fabrice le 02-25-2019, 15:07

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Stream Portal par Blog Technique de Romelard Fabrice le 02-21-2019, 17:56

- Office 365: Script PowerShell pour auditer le contenu de son Office 365 Video Portal par Blog Technique de Romelard Fabrice le 02-18-2019, 18:56

- Office 365: Script PowerShell pour extraire les Audit Log basés sur des filtres fournis par Blog Technique de Romelard Fabrice le 01-28-2019, 16:13

- SharePoint Online: Script PowerShell pour désactiver l’Option IRM des sites SPO non autorisés par Blog Technique de Romelard Fabrice le 12-14-2018, 13:01