[Silverlight] Déploiement en Silverlight 3
Une des nouveautés de Silverlight 3 est l’installation de l’application sur la machine en mode “offline”.
C’est à dire l’utilisation d’un service type ADO.NET Data Services/.NET Ria Services en mode connecté et l’utilisation de l’isolated storage en mode déconnecté.
Comment rendre votre application “installable” sur votre ordinateur:
Puis décommentez ces quelques lignes (l’exemple ci-dessous intégre les icones):
<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
>
<Deployment.Parts>
</Deployment.Parts>
<Deployment.ApplicationIdentity>
<ApplicationIdentity
ShortName="WikiChildProtect"
Title="WikiChildProtect">
<ApplicationIdentity.Blurb>
WikiChildProtect
</ApplicationIdentity.Blurb>
<ApplicationIdentity.Icons>
<Icon Size="16x16">Pictures/sl16.png</Icon>
<Icon Size="32x32">Pictures/sl32.png</Icon>
<Icon Size="64x64">Pictures/sl64.png</Icon>
<Icon Size="128x128">Pictures/sl128.png</Icon>
</ApplicationIdentity.Icons>
</ApplicationIdentity>
</Deployment.ApplicationIdentity>
</Deployment>
Les images SL*.png sont intégrées dans la solution dans un dossier nommé Pictures.
A noter qu’il n’est pas encore possible de choisir la taille de la fenêtre de notre application offline.
Dès la modification du fichier manifest vous avez la possibilité de faire un clic droit sur votre application:

Ou de l’installer en code:
private void Button_Click(object sender, RoutedEventArgs e)
{
bool allowed = App.Current.Detach();
if (allowed)
{
//L’installation s’est bien lancée
}
}
Pour obtenir une icone dans le menu démarrer ou/et sur le bureau:

Ce raccourci fait appel à sllauncher:
"C:\Program Files\Microsoft Silverlight\3.0.40307.0\sllauncher.exe" localhost.3
Ce launcher, va chercher l’application installer dans:
C:\Users\VotreUser\AppData\LocalLow\Microsoft\Silverlight\Offline\localhost.3
Contenant le .xap, les icones et des fichiers de configuration:
Au chargement de votre application, vous pouvez savoir si l’accès au net est possible:
private void Button_Click_1(object sender, RoutedEventArgs e)
{
if (NetworkInterface.GetIsNetworkAvailable())
{
//Utilisation d’un web service
}
else
{
//Utilisation de l’isolatedStorage
}
}
Vos applications offline risquent d’être gourmande en isolated storage, si vous le souhaitez vous pouvez augmenter la taille de celui ci.
Pour la désinstallation, un clic droit sur votre application suffit:
