2009-08-10 7 views
7

J'ai un produit qui a environ 10+ assemblages. Nous avions l'habitude de l'expédier sans nommer fortement les assemblées. Mais après avoir lu à propos de la dénomination forte, je suppose que c'est une bonne idée pour les assemblages de noms forts. Je voulais juste savoir, c'est une bonne pratique pour nommer fort tous les assemblées utilisées par un programme?Nommez-vous tous les assemblages utilisés par votre produit?

Des pensées?

+0

Voici une autre question étroitement liée http://stackoverflow.com/questions/796945/should-interop-assemblies-be-signed – sharptooth

Répondre

9

Oui, c'est une bonne pratique et vous devriez vraiment le faire surtout si vous envoyez ce code aux clients (je considère que le nommage fort est moins critique dans une application interne ou Web).

Pour une explication de ce raisonnement s'il vous plaît voir Strong-Named Assemblies:

Un nom fort se compose de simple identité de son de l'assemblée texte nom, numéro de version et de la culture information (le cas échéant) -Plus un clé publique et une signature numérique. Il est généré à partir d'un fichier d'assemblage (le fichier qui contient l'ensemble manifeste, qui à son tour contient les noms et hash de tous les fichiers qui composent l'assemblage), en utilisant la clé privée correspondante. Microsoft® Visual Studio® .NET et les autres outils de développement fournis dans le kit de développement logiciel (SDK) peuvent affecter des noms forts à un assemblage . Assemblées avec le même nom fort devraient être identiques .

Vous pouvez vous assurer qu'un nom est globalement en signant un assembly avec un nom fort . En particulier, les noms forts satisfont aux exigences suivantes:

  • noms forts garantissent le nom unique en se basant sur des paires de clés uniques. Personne ne peut générer le même nom d'assembly que vous pouvez, car un assembly généré avec une clé privée a un nom différent qu'un assembly généré avec une autre clé privée.

  • Les noms forts protègent la version de la lignée d'un assemblage. Un nom fort peut garantir que personne ne peut produire une version ultérieure de votre assembly. Les utilisateurs peuvent être sûrs qu'une version de l'assembly qu'ils chargent provient du même éditeur qui a créé la version de l'application a été construite avec.

  • Les noms forts fournissent une forte vérification d'intégrité . Passer les contrôles de sécurité .NET garantit que le contenu de l'assemblage n'a pas été modifié depuis sa création. Notez, cependant, que les noms forts dans et d'eux-mêmes n'impliquent pas un niveau de confiance comme celui prévu, pour par exemple, par une signature numérique et certificat de support .

Lorsque vous faites référence à un ensemble nom fort, vous vous attendez à obtenir certains avantages , tels que la protection versioning et nommant. Si l'ensemble nom fort alors fait référence à un ensemble avec un nom simple, qui ne ont ces avantages, vous perdez les avantages que vous dériverait d'utiliser un assemblage nom fort et revenir à conflits de DLL. Par conséquent, les assemblys à forte dénomination ne peuvent faire référence qu'à d'autres assemblages à nom fort .

Questions connexes