2010-08-15 11 views
4

Il m'a toujours semblé que ClickOnce était un moyen pratique de déployer des applications .NET dans un environnement intranet. Je pensais l'utiliser comme méthode de déploiement pour une application de bureau distribuée sur Internet aux utilisateurs généraux. (L'alternative serait un paquet d'installation standard.)Y a-t-il des restrictions à l'utilisation de ClickOnce dans VS 2010 pour déployer des applications "réelles"?

Est-ce que quelqu'un a de l'expérience avec ça? Cela a-t-il bien fonctionné? Y a-t-il des problèmes, que ce soit pour le développeur ou l'utilisateur final, que je devrais surveiller?

Répondre

3

J'ai utilisé ClickOnce plusieurs fois pour le déploiement sur le web, avec des expériences variées. Les pointeurs je donnerais sont:

  • Assurez-vous que l'application a un livrable statique
  • Eviter la construction dynamique de déploiement et l'application manifeste côté serveur, en particulier en ce qui concerne une architecture connectable (en utilisant par exemple mage.exe pour construire manifeste à base sur l'identité et/ou les permissions)
  • Contrôlez l'authentification à partir de l'application, ClickOnce est incroyablement restrictif en termes de faciliter le téléchargement d'applications à partir de sites Web sécurisés. Voir here pour les choix que vous ferez face.
  • Évitez de fournir les prérequis ou conservez-le au minimum. Par exemple, juste le framework .NET, SQL Express.
  • L'application ne devrait pas nécessiter de privilèges significatifs côté client (modifications du registre HKLM, par exemple). L'application sera finalement exécutée à partir du dossier du document de l'utilisateur connecté et vous ne serez pas en mesure de dire si l'utilisateur est un administrateur ou non lors du téléchargement.
  • Signer les manifestes ClickOnce avec un certificat Authenticode validé
  • En ce qui concerne la mise à jour du livrable, ClickOnce le gère très bien si le livrable est statique et mis à jour en place. Vous avez deux options pour le déploiement, une option "installer et exécuter" et une option "Exécuter uniquement". Les deux sont exactement les mêmes en termes de déploiement, ils copient les fichiers au même endroit, les autorisations sont identiques. La seule différence est que la version d'installation va créer une entrée dans le menu Démarrer et ajouter/supprimer des programmes. La mise à jour est basée sur le nom et la version. Pour la version installée, les mises à jour ne sont pas obligatoires, mais l'option Exécuter uniquement obtiendra également le dernier livrable. Si le livrable n'a pas été modifié et que l'utilisateur a déjà téléchargé l'application, il ne sera plus téléchargé et démarré depuis le répertoire de stockage.

La technologie est assez cool, mais il y a plusieurs mises en garde qui m'ont mordu avant.

+0

Informations précieuses. Merci! Mon application aura besoin de beaucoup d'autorisations (avoir à lire et écrire des fichiers localement, et même se connecter à des périphériques USB, par exemple). Est-ce que ça va être un gros problème pour moi? Je comprends qu'il peut simplement demander des autorisations élevées lors de l'installation. –

+0

Il n'y a pas d'installateur en soi, c'est l'un des gros problèmes. Vous devez inclure tous les assemblages dépendants localement, vous ne pouvez pas installer d'assemblys dans le GAC, par exemple. Je crois que vous pouvez inclure un manifeste pour demander l'élévation qui se trouve le long de l'exécutable. Si l'utilisateur était un utilisateur admin, vous n'auriez aucun problème. – fletcher

+0

Mon seul prérequis est .NET 4, donc je devrais être OK. Je vais devoir supposer que les utilisateurs sont des administrateurs, car le type de choses que l'application fait l'exigeront. Merci! –