Distribution d’une application bureau Silverlight

Publié dans: 

L’une des fonctionnalités intéressante de Silverlight 4 et 5 est l’installation silencieuse du mode bureau d’une application (Out-Of-Browser application ou autrement nommé OOB application). Ceci dit, sans l’intervention de l’utilisateur, nous pouvons installer l’application sur sa machine sans lancer cette dernière dans le navigateur.

Ceci est parfait pour distribuer une application de bureau Silverlight sur un CD-ROM ou autre support amovible, nous pouvons même automatiser cela pour un auto-lancement de l’installation.
Dans cet article, nous allons créer une application Silverlight puis énumérer les différentes étapes pour installer une application OOB en mode silencieux.

Création d’une application Silverlight OOB

Dans cette partie, nous allons savoir comment créer une application Silverlight moyennant Visual Studio 2013. Vue que l’objectif de cette article est d’expliquer comment déployer l’application, nous allons créer une vue basique.
Ensuite, nous verrons comment configurer l’application pour pouvoir l’installer.

1. Création d’un projet Silverlight

  •  Lancer l’IDE Visual Studio 2013

  • Dans l’écran d’accueil, cliquer sur New Project ou Ctrl + Shift +N pour avoir la boite de dialogue de nouveau projet.

  • Dans cette boite de dialogue, cliquer sur Silverlight dans le panneau à gauche

  • Cliquer sur Silverlight Application dans le panneau à droite

  • Donner un nom à l’application (Ex. DemoOOB)

  • Cliquer sur Ok pour continuer. Ceci ouvrira une nouvelle boite de dialogue comme suit

  • Sélectionner le projet hôte de l’application Silverlight

  • Sélectionner la version souhaitée (Silverlight 4 ou Silverlight 5)

  • Cliquer sur Ok pour continuer

Ceci va créer une application Silverlight vide, Pour cette démo, nous allons créer une vue basique. Ce qui suit est le code XAML de la vue.

<UserControl x:Class="DemoOOB.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

    <Grid x:Name="LayoutRoot" Background="White">
        <Border BorderBrush="Black" BorderThickness="2" 
                CornerRadius="10" HorizontalAlignment="Stretch" 
                Margin="10,10,10,10" VerticalAlignment="Stretch" >
            <TextBlock Text="Demo Installation Application Bureau Silverlight" 
                       TextWrapping="Wrap" FontSize="36" 
                       TextAlignment="Center" VerticalAlignment="Center" />
        </Border>
    </Grid>
</UserControl>

Après Compilation voilà la vue que nous avons obtenue dans le navigateur web :

2. Configuration des paramètres Out-Of-Browser

Maintenant que la vue est prête, nous passons à la configuration de l’application. Pour cela, il suffit de suivre les étapes suivantes :

  • A partir de l’explorateur de solution, cliquer avec le bouton droit de la souris sur le projet Silverlight, puis sur Propriété

  • Dans la fenêtre qui s’affichera, cliquer sur l’onglet Silverlight

  • Dans le panneau à droite, cocher « Enable running application out of the browser », cela permet à l’application de s’exécuter directement en mode bureau

  • Maintenant, cliquer sur le bouton « Out-of-Browser Settings … » pour accéder à la configuration avancée du mode Bureau, ceci entraine l’affichage de la boite de message suivante :

  • Dans cette boite de dialogue, nous pouvons :

o Donner un nom à l’application ;
o Configurer une hauteur et une largeur initiale de l’application de bureau
o Configurer une position initiale de l’application
o Configurer les icônes sous différentes tailles
o Cocher si l’application demande une accélération GPU (Utilisé généralement pour les applications en 3D)
o Cocher pour permettre une installation (One Click) à partir du navigateur web
o Cocher si l’application requiert des ressources systèmes (Utilisé généralement pour permettre l’accès à l’API Office installé sur la machine)


Maintenant, l’application est capable de s’exécuter à partir du bureau. Pour vérifier que tout est bien dans l’ordre, il suffit de compiler et exécuter le projet dans le navigateur. Cliquer avec le bouton droit de la souris sur l’application et vérifier qu’il existe bien deux menus comme montré dans la figure suivante :

3. Récupération de l’application sous Format XAP

Afin de préparer la solution d’installation, nous aurons besoin d’avoir notre application sous format XAP. Pour cela, il suffit de compiler la solution, aller vers l’application hôte de notre application (ici DemoOOB.Web) et copier DemoOOB.xap à partir de son chemin sous l’Explorateur Windows.

Configuration du CD-ROM d’installation

Dans cette partie, nous verrons les étapes nécessaires pour configurer une installation silencieuse de notre application en utilisant un CD-ROM. Pour cela, il faut tout d'abord  vérifier si Silverlight est installé sur la machine, s’il n’est pas installé, on commence par l’installation de Silverlight puis le déploiement de notre application.

1. Notion théorique sur l’application de bureau (Out-Of-Browser application)

Avant de se lancer dans la configuration du script d’installation, il est nécessaire de savoir ce qui se passe pour installer une application Silverlight.
Quand on installe le plug-in Silverlight, il installe en parallèle un exécutable « sllauncher.exe » dans le répertoire « C:\Program Files (x86)\Microsoft Silverlight ». Ce programme permet d’installer l’application Silverlight silencieusement et sans ouvrir le navigateur.
Une fois l’application installé, ce même exécutable crée un raccourci  qui permet de lancer l’application à partir du Bureau ou du Menu Démarrer. Si on essaye de voir les propriétés du raccourci, on apercevra la boite de dialogue suivante :

Nous pouvons remarquer dans cette boite de dialogue que la cible est similaire à :

"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe" 334569683.localhost

Ceci permet de lancer le fichier XAP en tant que application Bureau.
Mais où est ce que nous pouvons trouver les fichiers sur la machine ?
En fait, le programme d’installation a créé une structure sous le répertoire « C:\Users\UserName\AppData\LocalLow\Microsoft\Silverlight\OutOfBrowser\334569683.localhost » qui est la suivante :

2. Préparation du script d’installation OOB

Nous allons maintenant commencer la saisie du script d’installation, pour cela, on crée un fichier « install.bat » et on inscrit la commande suivante :

"C:\Program Files (x86)\Microsoft Silverlight\sllauncher.exe"
/instal:"DemoOOB.xap"
/origin:http://www.youservername.com/ClientBin/DemoOOB.xap
/shortcut:desktop+startmenu
/overwrite

  • Ici, il faut passer le chemin local du fichier XAP dans l’option « /install »

  • L’option « /origin » contient l’url du fichier XAP sur le serveur. Cette commande est spécifiée pour réaliser les mises à jour futures de l’application de bureau

  • L’option « /shortcut » permet de sélectionner les emplacements du raccourcis de l’application

  • La dernière option « /overwrite » permet d’écraser l’ancien raccourcis si ce n’est pas la première installation

3. Préparation de l’exécutable d’installation

Pour faciliter l’installation de notre application, nous allons créer une application console qui lance la commande d’installation que nous avons vu auparavant.
Nous commençons donc par créer une application console comme indiqué dans la figure suivante :

Cette application console contient le fichier install.bat que nous avons créé et aussi un lien vers le fichier XAP.
Pour lancer l’installation, nous allons utiliser la classe Process de la plateforme .net comme suit :

public class Program
    {
        public static void Main(string[] args)
        {
            FileInfo installScript = new FileInfo(Directory.GetCurrentDirectory() + "\\install.bat");

            RunBatFile(installScript);
        }

        private static void RunBatFile(FileInfo file)
        {
            if (File.Exists(file.FullName))
            {
                Process proc = new Process
                {
                    StartInfo =
                    {
                        FileName = file.FullName,
                        RedirectStandardError = false,
                        CreateNoWindow = true,
                        RedirectStandardOutput = false,
                        UseShellExecute = false
                    }
                };
                proc.Start();
                proc.WaitForExit();
            }
            else
            {
                throw new Exception("Le script n'existe pas");
            }
        }
    }

De cette façon, nous pouvons utiliser l’exécutable DemoOOBInstall.exe pour installer notre application sur n’importe quelle machine d’une façon simple et efficace.

4. Configuration de l’installation automatique depuis un CD-ROM

Maintenant que tout est prêt, nous pouvons lancer automatiquement depuis un CD/DVD une fois inséré dans le lecteur de l’ordinateur. Pour faire cela, il suffit de créer un fichier autorun.inf dans le répertoire racine du CD où on doit placer aussi le fichier DemoOOBInstall.exe, DemoOOB.xap et install.bat comme indiqué dans la figure de la structure de de dossier ci-dessous.

Pour finir, il faut écrire ce code dans le fichier autorun.inf

[autorun]
open = DemoOOBInstall.exe
shell\install = &Install
shell\install\command = DemoOOBInstall.exe

Conclusion

Il est vrai que Silverlight permet une installation facile depuis le navigateur, mais pour les applications professionnelles destinées aux entreprises, il s’avère bénéfique d’avoir un exécutable permettant d’installer l’application.
Cet exécutable pourra être distribué manuellement sur un support amovible ou un CD-ROM comme évoqué dans cet article, mais peut également être installé automatiquement moyennant un outil d’installation en réseau pour pouvoir diffuser l’application sur un parc informatique.