2008-12-17 4 views
1

Je sais qu'il ya plusieurs façons de déployer une application client windows .net:Le chargement d'un assemblage de dépendances à partir d'Internet est-il une bonne pratique?

Il y a Windows Installer, Click Once, un simple téléchargement & run, et le chargement des formulaires/application WCF fenêtres dans Internet Explorer (pas confondre ce dernier avec WCF/E - applications Silverlight RIA)

Alors ... en pensant aux vraies applications client Windows - juste pour le rendre vraiment clair: celles qui consistent en un fichier .exe dans votre système de fichiers, - peuvent charger tout ou partie de ses dépendances à partir d'internet sont-elles une bonne idée?

<assemblyIdentity 
    name="MyAssembly" 
    publicKeyToken="89a956accc8f98e98a9e954a" 
    culture="en-US" /> 
<codeBase 
    version="2.0.0.0" 
    href="http://www.contoso.com/MyAssembly.dll" /> <!-- look here --> 

Il y a évidemment quelques inconvénients graves: il faut être connecté AllWays, la configuration CAS dans le client (les dépendances Internet seraient Internet_Zone code group), sans oublier le temps de chargement.

Mais je peux aussi penser à plusieurs avantages.

Quels sont les problèmes? Est-ce que quelqu'un l'a utilisé dans un vrai projet?

Répondre

2

Je pourrais voir ce que vous suggérez dans un environnement intranet d'entreprise, où l'application personnalisée peut parler à un serveur personnalisé et chacun comprend bien l'autre. Certes, il y aurait des problèmes possibles de connectivité et de synchronisation, mais ceux-ci pourraient être travaillés dans le temps dans une certaine mesure. Je l'ai fait dans un cas où l'application exécutait des tâches CRUD de base sur un ensemble de serveurs principaux qui exécutaient les commandes sur la base de données. Accordé que cela n'a pas été donné beaucoup d'importance et était le projet de compagnie de quelqu'un pendant un moment, il a fait quelques choses OK à la fin.

Dans un environnement Internet, je pense que les soucis de sécurité seraient ma plus grande préoccupation à propos de ce que vous suggérez car un autre facteur est que si cet assembly est mis à niveau, il peut planter l'application. Pour une situation sur Internet, je pense que quelque chose comme Click Once serait ma suggestion.

1

Si les assemblages que vous chargez sont signés numériquement à partir d'un fournisseur de confiance, ils ne devraient pas être si mauvais du point de vue de la sécurité. SI vous vraiment leur faire confiance ... Par exemple, si vous allez télécharger un assembly à partir d'un fournisseur tierce tierce qui pourrait ne pas garder de bons onglets sur leur clé secrète, alors oui, je serais prudent de le faire.

Questions connexes