Les programmes d'installation de Windows pour les applications métier internes ont-ils un sens?


14

J'essaie de construire une compréhension générale de ce qui est commun dans cette situation afin que je puisse décider s'il est logique de poursuivre plus loin.

  1. Les installateurs sont-ils les bienvenus dans un environnement d'entreprise typique avec les éléments suivants?
    • Processus de contrôle des changements
    • Environnements Dev / QA / Production
    • Équipes de déploiement désignées pour divers domaines (pare-feu, base de données, fenêtres, etc.).
  2. Existe-t-il un "test décisif" qui pourrait être appliqué à une application pour voir si elle est un bon candidat pour créer un programme d'installation? *
    • Les installateurs sont-ils assez simples pour que chaque application en ait un?
    • Les installateurs sont-ils le bon outil?
  3. Est-il raisonnable de s'attendre à ce que les développeurs apprennent quelque chose comme WiX pour prendre en charge les installateurs?
    • La maintenabilité en général est une préoccupation, c'est-à-dire, la création d'un installateur est-elle une compétence de niche?

*

Par exemple, j'ai un ensemble d'applications winform qui se trouvent dans un répertoire partagé sur un serveur de production. Des groupes spécifiques peuvent exécuter les applications à partir de ce répertoire, mais seuls les administrateurs système peuvent modifier les exécutables. Le processus de déploiement actuel implique qu'un administrateur copie / colle les exécutables et les bibliothèques dans le répertoire partagé.

Étant donné que les applications ne sont pas installées sur la machine des utilisateurs individuels, est-il judicieux de créer un programme d'installation pour déployer de nouvelles versions de ces applications dans le répertoire partagé?

Éditer--

Je sentais que les réponses ici donnaient des conseils solides, donc je voulais partager ce que j'ai trouvé pour mon projet actuel où je devais créer un grand nombre d'applications et les déployer dans des dossiers individuels.

J'ai trouvé un package NuGet appelé _PublishedApplications qui imite le comportement de _PublishedWebsites pour les projets Web. L'idée est d'installer le package NuGet dans vos projets et d'ajouter une cible qui copiera les artefacts de génération dans un répertoire _PublishedApplications dans le chemin de sortie. Ce comportement est activé en exécutant MSBuild à partir de la ligne de commande et en spécifiant une outdirpropriété:

msbuild /p:Configuration=Release /p:outdir=C:\path\to\outdir MySolution.sln

Cela vous donnera une structure de répertoires semblable à la suivante:

  • C: \ chemin \ vers \ outdir
    • _Applications publiées \
      • Projet 1\
        • dlls, exes, etc.
      • Projet2 \
        • ...

De là, la création d'un zip qui peut être extrait dans les différents environnements est assez indolore.


6
Si vous devez fournir un installateur, pouvez-vous fournir un .msiinstallateur? Ceux-ci, au moins, peuvent être entièrement automatisés avec un minimum de douleur. (tout en étant compréhensible pour l'utilisateur occasionnel qui doit faire ses propres mises à jour)
ZJR

Pour votre exemple: j'ai un script qui essaie de renommer le répertoire de production en un nom temporaire, copie tous les fichiers d'application dans le répertoire renommé, puis renomme le répertoire de production en son ancien nom (et il vérifie les erreurs après chaque (! ) étape). L'avantage est que tant que quelqu'un utilise l'ancienne version, le premier changement de nom échoue et vous ne détruisez pas accidentellement l'environnement de production. Un bon administrateur peut être capable de créer de tels scripts par lui-même, mais d'autres peuvent être reconnaissants si vous leur fournissez un tel "programme d'installation". Cela dépend vraiment de votre organisation.
Doc Brown

@ Mark0978: est-ce que je sens une diatribe "Linux" contre "Windows" ici? C'est 100% hors sujet ici.
Doc Brown

Réponses:


20

Un programme d'installation a toujours un sens, si le déploiement nécessite quelque chose de plus compliqué que de copier le ou les fichiers pertinents dans un dossier et d'exécuter EXE. S'il y a des étapes supplémentaires à effectuer pour configurer correctement le produit, il y a deux façons de procéder.

  1. Vous pouvez rédiger une liste à suivre. Les humains étant des humains, quelqu'un est obligé de tout gâcher, puis de vous appeler pour demander de l'aide parce que votre programme ne fonctionne pas correctement.
  2. Vous pouvez rédiger une liste à suivre pour un ordinateur (un script d'installation). Cela rend beaucoup moins probable que l'erreur de l'utilisateur gâche le déploiement.

D'un autre côté, si vous n'avez aucune tâche de configuration à effectuer, donnez-leur simplement un fichier zip. C'est plus simple que d'exécuter un programme d'installation.


11

Wyatt enlève son chapeau de programmeur et met son chapeau de directeur informatique

S'il s'agit d'une application métier interne, il vous suffit de viser un seul environnement - ladite entreprise. J'appellerais le responsable informatique et lui demander comment ils aimeraient gérer le déploiement. Les services informatiques s'occupent de cela depuis un certain temps, ils pourraient donc avoir une forte préférence pour les options basées sur xcopy ou MSI ou quelque chose de tout à fait comme votre option actuelle.

J'ajouterai que le département apprécierait à tout le moins le geste et pourrait probablement devenir un allié précieux car il est fort probable qu'il en sache plus sur l'application et les problèmes de la branche d'activité que vous ne le pensez.


5
+1 Ross emprunte le chapeau de Wyatt et ajoute que les équipes informatiques adorent les installateurs car ils laissent une empreinte digitale qui dit " cette chose est installée ".
Ross Patterson

3
Mon chapeau informatique dit de le construire en HTML5 et de quitter l'installation de choses sur les bureaux!
Boatcoder

8

Les applications Windows Installer sont largement utilisées pour installer des applications métier internes dans des environnements utilisant Windows. Vous devez également vous demander si, pendant la durée de vie de l'application, elle devra probablement être mise à jour, corrigée, réparée ou supprimée proprement des systèmes de l'utilisateur. Dans de nombreux cas, la réponse est «oui» - auquel cas, avoir un installateur correctement écrit peut réduire le coût total de la maintenance de l'application au fil du temps. Il existe d'autres services et fonctionnalités conçus pour fonctionner avec Windows Installer, tels que le gestionnaire de redémarrage et WMI et les fonctions d'inventaire des produits et des correctifs. Si votre application peut en bénéficier, c'est une autre raison d'inclure un programme d'installation.

Les coûts initiaux pour développer un programme d'installation utile pour votre application peuvent être payants à long terme, et les coûts de développement peuvent être atténués en sélectionnant un outil de création Windows Installer approprié, tel que WiX ou InstallShield ou un autre.


7

Comme pour toutes les décisions d'ingénierie, cela dépend.

Le facteur le plus important est probablement de comprendre qui est le consommateur de votre processus d'installation et quelles compétences possède l'équipe de développement.

Puisqu'il est interne, je suppose qu'il est déployé par un service informatique interne. Ils ne sont probablement pas étrangers à commander des obus.

Les assistants d'installation graphiques sont utiles pour les logiciels distribués directement aux clients externes car les hypothèses simples sur votre configuration ne sont plus valides, telles que les emplacements des serveurs de fichiers, les politiques de sécurité, etc. Par conséquent, vous devez guider chaque utilisateur dans le choix des paramètres eux-mêmes.

Dans votre environnement, ces éléments sont probablement dictés par le développement ou l'informatique et changent rarement. Par conséquent, je recommande d'utiliser des scripts shell pour copier les fichiers à l'endroit approprié. Les scripts doivent être intégrés à votre produit dans le cadre du package publié. La version doit également être contrôlée avec votre application.

Là où je travaille, notre application Web entière est installée via un assistant InstallShield, qui pose un tas de questions, dont la plupart sont des emplacements de système de fichiers, des informations de connexion db et d'autres paramètres qui se retrouvent simplement dans des fichiers de configuration. C'est difficile à automatiser. Étant donné que l'installation de l'application Web à sa base vient de créer quelques bases de données et copie des fichiers, j'écris un nouveau programme d'installation en utilisant Ant ou Powershell qui exécute simplement des fichiers .sql et copie des fichiers.

Ensuite, tout le monde peut comprendre comment cela fonctionne et le maintenir plus efficacement.


Je pense que déployer des scripts serait une solution viable pour ce dont j'ai besoin. Je craignais que cela réinvente la fonctionnalité de l'installateur et je cherchais donc si ce serait peut-être plus facile de suivre la voie d'un installateur. D'après votre réponse, il semble que les installateurs peuvent être exagérés et non faciles à entretenir.
user1529856

Exactement. Il réinvente la fonctionnalité d'installation, mais c'est l'installateur qui est probablement exagéré.
Brandon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.