Blog ENI : Toute la veille numérique !
-25€ dès 75€ sur les livres en ligne, vidéos... avec le code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. C# 8 et Visual Studio 2019
  3. Le déploiement
Extrait - C# 8 et Visual Studio 2019 Les fondamentaux du langage
Extraits du livre
C# 8 et Visual Studio 2019 Les fondamentaux du langage Revenir à la page d'achat du livre

Le déploiement

Introduction

La fin du cycle de développement est une phase critique pour tout projet. Le code source de l’application est finalisé, testé, débogué et éventuellement optimisé, mais une problématique n’est pas encore traitée : comment fournir cette application aux utilisateurs ?

Différentes techniques de publication peuvent être utilisées. La plus commune est le déploiement au travers d’un fichier d’installation Windows Installer. Mais la publication peut également être réalisée sous la forme d’un ensemble de fichiers binaires grâce au SDK de .NET Core ou à l’aide de la technologie ClickOnce pour les applications plus anciennes ciblant le framework .NET. Toutefois, cette dernière forme de déploiement ne sera, selon toute vraisemblance, jamais disponible avec .NET Core, Microsoft souhaitant privilégier la technologie MSIX. Celle-ci permet de créer des packages d’applications qui peuvent être notamment distribués au travers du Microsoft Store. Par conséquent, Visual Studio inclut également un type de projet destiné à générer des packages d’installation MSIX.

Windows Installer

Windows Installer est un service de déploiement disponible pour tous les systèmes d’exploitation Microsoft. Le principe de fonctionnement de ce service est le regroupement de tous les composants d’une application dans un seul fichier exécutable qui peut ainsi être facilement mis à disposition des utilisateurs.

Lorsqu’un logiciel est installé à l’aide de Windows Installer, de nombreuses informations identifiant les opérations effectuées sont sauvegardées dans le système. Celles-ci concernent notamment les fichiers copiés, les modifications apportées à la base de registre ou l’enregistrement de composants externes nécessaires au bon fonctionnement de l’application. Ces informations sont précieuses : elles permettent au service Windows Installer d’effectuer convenablement la désinstallation du logiciel si celle-ci est demandée.

Chacune des modifications effectuées lors de l’installation est traitée pendant la désinstallation de manière à ne laisser aucune trace. Toutefois, Windows Installer vérifie la présence de composants partagés avant toute suppression afin d’éviter de nuire au bon fonctionnement d’autres applications qui pourraient utiliser ces composants.

Lorsqu’une application utilise Windows Installer, son processus d’installation est transactionnel, c’est-à-dire que soit l’installation réussit dans son ensemble, soit elle est purement et simplement annulée. Cette annulation entraîne la suppression complète des fichiers déjà copiés ainsi que la restauration de l’état originel du système. Ce dernier reste ainsi toujours dans un état cohérent.

Windows Installer fournit également un mécanisme de réparation d’une application qui remplace les fichiers corrompus ou manquants.

La création d’un exécutable Windows Installer est effectuée au travers d’un type de projet spécifique dans Visual Studio. Toutefois, les modèles de projets associés ne sont pas disponibles dès l’installation de Visual Studio 2017. Microsoft a mis à disposition du public une extension dédiée...

Fichiers binaires (.exe, .dll)

.NET Core a été pensé pour permettre le développement d’applications multiplateformes : Windows, Mac OS X et Linux sont supportés. Or, la technologie que nous venons de décrire ne permet de déployer, comme son nom l’indique, que sous Windows… ce qui va bien évidemment à l’encontre de l’objectif initial.

Heureusement, le SDK .NET Core offre la possibilité de publier une application sous la forme la plus simple, et donc la plus commune : un ensemble de fichiers binaires. Le résultat de l’opération peut ainsi être déployé tel quel à partir d’un emplacement (par exemple) avec une simple copie de fichiers, et peut également être la source d’une étape de packaging spécifique à la plateforme de destination.

La publication de l’application est déclenchée à partir du menu contextuel du projet, dans l’Explorateur de solutions.

images/1911-005.png

Si aucune cible de publication n’est définie pour le projet, un assistant permettant de définir une configuration de publication s’affiche. Le type de projet conditionne les cibles disponibles. Dans le cas d’une application console, les options proposées sont Azure WebJobs et Dossier. La première permet de déployer l’application en tant que tâche...

ClickOnce

ClickOnce est une technologie dont les développeurs peuvent tirer parti pour le déploiement de leurs applications ainsi que pour leurs mises à jour. Elle simplifie le processus d’installation en ne requérant qu’un minimum d’interventions de la part de l’utilisateur.

Cette technologie est, selon toute vraisemblance, en fin de vie. Elle a été introduite avec le framework .NET 2.0, mais n’est pas (et, a priori, ne sera pas) supportée pour le déploiement d’applications ciblant .NET Core. Un des pontes de la branche « Visual Studio / .NET » de Microsoft, Scott Hunter, a en effet indiqué sur le blog de l’équipe .NET que Microsoft va privilégier la technologie de déploiement MSIX (sans toutefois annoncer le retrait de ClickOnce). Malgré cela, ClickOnce est à ce jour encore régulièrement utilisée pour la publication d’applications de bureau développées avec le framework .NET, et mérite donc d’être décrite pour « raisons de compatibilité ».

1. La technologie ClickOnce

La technologie ClickOnce est dite "intelligente" car elle permet d’éviter certains écueils rencontrés fréquemment lors des phases de déploiement.

En règle générale, pour pouvoir installer une application, il est nécessaire de se procurer un exemplaire du programme d’installation correspondant sur un support physique ou en le téléchargeant. Dans les deux cas, l’utilisateur est en possession de la totalité des composants du logiciel, le plus souvent sous une forme empaquetée, avant l’installation effective.

En plus de ce mode d’installation classique, ClickOnce offre la possibilité de procéder à l’installation de manière distante via Internet ou un partage réseau. Seul un exécutable minimal est requis pour débuter le processus. Celui-ci est généralement disponible via un lien sur une page web ou un intranet et ne pèse que quelques kilo-octets. 

La gestion des dépendances partagées par plusieurs applications peut rapidement devenir problématique, notamment en raison de conflits de versions. ClickOnce simplifie...

MSIX

La technologie MSIX est destinée au déploiement de tous types d’applications desktop pour Windows. Elle offre la possibilité de créer des packages d’installation qui peuvent être déployés au travers du Windows Store.

Visual Studio intègre le support du packaging MSIX grâce à un type de projet dédié nommé Projet de création de packages d’application Windows.

images/1911-014.png

À la création d’un projet de ce type, une boîte de dialogue permet de définir la version minimale de Windows 10 supportée par l’application, ainsi que celle pour laquelle l’application est conçue.

images/1911-015.png

La structure du projet créé est relativement simple : il contient seulement un fichier Package.appxmanifest et quelques fichier PNG groupés dans un répertoire nommé Images.

images/1911-016.png

En plus de ces quelques éléments physiques, le projet contient un élément logique : Applications. Le menu contextuel associé à cet élément ne contient qu’une seule option, Ajouter une référence, qui permet de définir les fichiers binaires qui pourront être déployés grâce au package d’installation.

images/1911-017.png

Une fois les projets pertinents référencés, il convient de choisir celui qui aura la précédence sur tous les autres lors de l’exécution du package installé : ce sera le point d’entrée, que l’on peut définir à l’aide du menu contextuel.

images/1911-018.png

Un double-clic sur le fichier Package.appxmanifest dans l’explorateur de solutions ouvre une page dédiée à la configuration du package. Les différents paramètres associés au package sont regroupés en six onglets.

Application

Cet onglet permet...