2009-01-13 6 views
1

Cela peut être une question stupide pour certains d'entre vous, mais quels sont les avantages/inconvénients d'exécuter une application Windows Forms .Net à partir d'un lecteur partagé. Jusqu'à récemment, je ne savais même pas que c'était possible. De la recherche, il semble que .Net 3 SP1 permette ce comportement (sans nécessiter de modifications de sécurité).Exécuter un programme .NET à partir d'un lecteur mappé ou d'un dossier partagé - Avantages/inconvénients

Je suis curieux de tout problème de concurrence ou d'évolutivité.

En outre, je suppose que .Net est toujours requis sur chaque client qui exécutera l'application à partir du lecteur partagé. Toute aide est appréciée.

Répondre

4

Nous avons un certain nombre de programmes de console écrit en .Net qui effectuent un traitement par lots tous les soirs. Ces programmes "vivent" sur un SAN accessible via un lecteur mappé. Puisque nous sommes toujours sur. Net 2.0, le serveur de traitement a dû être configuré spécialement pour permettre à ces programmes de fonctionner, et bien sûr le serveur de traitement a besoin de l'infrastructure installée, mais sinon, cela fonctionne très bien. .Net3.5sp1 serait même corriger la configuration spéciale. Maintenant, ce scénario est probablement différent de ce à quoi vous pensez. Si vous souhaitez déployer une application dans un dossier partagé afin que plusieurs utilisateurs puissent y accéder, c'est une mauvaise idée. Si vous écrivez à des fichiers de données dans le même dossier que l'application (une mauvaise idée de toute façon, mais les gens le font tout le temps), ces fichiers sont partagés (et verrouillés) par tous les utilisateurs. En outre, tout utilisateur exécutant actuellement le programme entraîne le verrouillage du fichier de programme par le système de fichiers, ce qui peut vous empêcher de déployer des mises à jour. Si vous voulez faire cela, .Net fournit un excellent système appelé ClickOnce pour prendre en charge le déploiement d'applications sur des partages réseau. La concurrence et la mise à l'échelle ne sont pas un problème mais dans les circonstances les plus extrêmes.

2

Vous devez avoir la version .Net correcte installée sur chaque client, mais il n'y a aucune raison pour laquelle vous ne devriez pas pouvoir exécuter à partir d'un lecteur partagé, nous le faisons ici et chez les clients sans problème aussi longtemps que le l'utilisateur a accès au partage.

2

Vous utilisez simplement le partage réseau comme un lecteur pour fournir les assemblys. L'application s'exécute toujours sur le poste de travail, consommant les ressources du système d'exploitation et les cycles du processeur de cette machine uniquement. Contrairement à une application ASP.NET.

Si l'application elle-même utilise une sorte de ressource partagée, il n'est pas inhabituel qu'un serveur dbase, une simultanéité et une mise à l'échelle jouent un rôle. Mais ce sera le cas si l'application fonctionne à partir d'un partage réseau. Une considération: le déploiement d'une mise à jour peut être difficile. Vous devrez obliger tous les utilisateurs à quitter l'application afin qu'il n'y ait plus de verrou sur les assemblages. Construire cela dans l'application serait sage. Quelque chose d'aussi simple qu'un FileSystemWatcher à la recherche d'un nom de fichier spécifique fera le travail.

Questions connexes