112 votes

Pourquoi utiliser des assemblys nommés forts?

Quels sont les avantages d'utiliser des assemblys nommés forts?

Quelles sont les choses qui ne peuvent pas être faites avec un assemblage normal?

99voto

Kyle Rozendo Points 15606

Permettez-moi d'énumérer les avantages de la forte le nom de votre assemblée:

  1. Forte de nommage de votre montage vous permet d'inclure votre assembly dans le Global Assembly Cache (GAC). Ainsi, il vous permet de les partager entre plusieurs applications.

  2. Forte de nommage garantit un nom unique pour cette assemblée. Ainsi, personne d'autre ne peut utiliser le même nom d'assembly.

  3. Nom fort de protéger la version la lignée d'une assemblée. Un nom fort peut assurer que personne n'est en mesure de produire une version ultérieure de votre assemblée. Les utilisateurs de l'Application sont veillé à ce qu'une version de l'assemblée, ils sont de chargement viennent de la même maison d'édition qui a créé la version de l'application a été construit avec.

  4. Fort nommé assemblées sont signés avec une signature numérique. Cela protège l'assemblée de la modification. Toute altération provoque le processus de vérification qui se produit lors de l'assemblée des temps de chargement à l'échec. Une exception est générée et l'assemblée n'est pas chargé.

Plus sur le nom fort de Microsoft est en Forte Nommé Assemblées (MSDN).

10voto

springy76 Points 1059

Quelles sont les choses qui peut être fait avec un montage normal?

Depuis, toutes les discussions qui ont commencé avec la montée de Nuget suggéré de vous débarrasser complètement de fort nommé assemblées mon entreprise essayé et suis tombé sur un changement significatif de comportement quand il s'agit de paramètres de l'application:

Si vous utilisez l'application automatique d'utilisateur ou de l'étendue de l'application des paramètres fournis par VisualStudio (héritant du Système.La Configuration.ApplicationSettingsBase) puis un fort nommé EXE va créer exactement 1 répertoire dans le répertoire %LOCALAPPDATA% nommé par exemple "YourApplication.exe_StrongName_kjsdfzsuzdfiuzgpoisdiufzsdouif" pas question où le fichier EXE est situé.

Mais sans le nom fort de l'endroit (=chemin d'accès) de l'EXE sera utilisé pour créer une valeur de hachage qui a déjà diffère entre DEBUG et RELEASE construire, de créer de nombreux répertoires à l'intérieur de %LOCALAPPDATA% nommé comme "YourApplication.exe_Url_dfg8778d6fs7g6d7f8g69sdf". Cela le rend inutilisable pour les déploiements ClickOnce où le répertoire d'installation des modifications à chaque mise à jour.

0voto

RicardoYoussef Points 34

Juste un exemple: je voudrais donner une réponse en mettant davantage l'accent sur la sécurité . Dans le cas où nous créons des assemblys avec un code source que nous ne voulons pas réutiliser pour un tiers mais que nous voulons que ce soit testable, nous pouvons fortement signer un assemblage et rendre les éléments internes visibles uniquement pour ces assemblages avec même signature.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X