Vorteile / Nachteile von Assemblys mit starken Namen / Signaturen

8

Wir haben eine Lösung mit vielen Projekten (wahrscheinlich 20 oder mehr). In letzter Zeit haben wir einige Änderungen vorgenommen, die erfordern, dass einige dieser Assemblies von COM aus aufgerufen werden können, was bedeutet, dass wir sie stark benennen müssen. Diese Versammlungen verweisen auf andere in unserem Projekt, was bedeutet, dass sie auch einen starken Namen haben müssen. Sie haben auch InternalsVisibleTo-Attribute, daher müssen die Assemblies, die gewährt werden, auch einen starken Namen haben.

Anstatt zu jagen und zu picken, nur um herauszufinden, welche Baugruppen signiert / stark benannt werden müssen, empfehle ich, dass wir sie einfach mit einem starken Namen versehen. Dies hat ein paar Leute über das Risiko schwindlig gemacht. Ich argumentiere, dass es kein Risiko gibt, aber sie wollen Vor-und Nachteile der Unterzeichnung von Versammlungen. Die einzigen Dinge, die ich mir vorstellen konnte, sind:

Vorteile

  • Es ist eine Voraussetzung, die Assembly von COM
  • Es würde uns erlauben um die Baugruppen in den GAC (wir Tu das jetzt nicht)
  • Es verhindert Manipulation (Wir hosten die Anwendung, Es ist nicht auf Client-Sites installiert, also nicht so ein großes Problem)

Nachteile

  • Es erfordert, dass jede Baugruppe, die wir in Zukunft verwenden, signiert wird

Ich habe zwei spezifische Fragen:

  1. Würden Sie sagen, dass es generell eine gute Idee ist, Baugruppen mit einem starken Namen zu signieren?
  2. Können Sie sich irgendwelche anderen Vor- oder Nachteile vorstellen?
Craig W. 07.04.2011, 15:16
quelle

3 Antworten

5

Ihr Single Con ist falsch. Es ist eigentlich ein Profi.

  

Unsignierte Assemblys können ausschließlich von unsignierten Assemblys verwendet werden. Signierte Assemblys können von beiden signierten Assemblys und unsignierten Assemblys verwendet werden.

    
R. Martinho Fernandes 07.04.2011 15:33
quelle
3
  • ClickOnce verlangt, dass Ihre Assemblys signiert werden
  • Viele Opensource-Projekte verteilen keine signierten Assemblys und sind oft nicht trivial, um mit Ihrem eigenen SNK zu kompilieren
David Kemp 07.04.2011 15:18
quelle
3

"Es ist erforderlich, die Assembly von COM aus aufzurufen"

Sie müssen keine Assembly signieren, um sie zu einer COM-Komponente zu machen. Ich habe viele COM-Server implementiert, ohne die Assembly zu signieren.

etwas mehr Nachteile:

  • Sie können eine Assembly nicht mit einer neuen Version aktualisieren, ohne alle anderen Assemblys zu ersetzen, die dies erfordern = & gt; keine gemeinsamen Komponenten leicht
  • kann nicht signierte Komponenten von Drittanbietern (viele Free / OpenSource) nicht verwenden
  • signierte Assemblys im GAC werden nicht validiert, jemand Böses kann Ihre signierte Assembly mit irgendetwas verändern / ersetzen und Ihre Programme akzeptieren dies gerne. link
Firo 02.12.2011 11:52
quelle

Tags und Links