2009-08-10 10 views
7

Mam produkt, który ma około 10 zespołów. Kiedyś wysyłaliśmy go bez silnego nazywania zespołów. Ale po przeczytaniu o silnym nazewnictwie, myślę, że mądry pomysł na mocne zestawy nazw. Chciałem tylko wiedzieć, czy najlepszą praktyką jest silna nazwa wszystkich zgromadzeń używanych przez program?Czy masz mocne nazwy wszystkich złożeń, których używa twój produkt?

Jakieś myśli?

+0

Oto kolejne ściśle powiązane pytanie http://stackoverflow.com/questions/796945/should-interop-assemblies-be-signed – sharptooth

Odpowiedz

9

Tak, jest to najlepsza praktyka i naprawdę powinieneś to zrobić, biorąc pod uwagę fakt, że wysyłasz ten kod do klientów (uważam, że silna nazwa jest mniej krytyczna w wewnętrznej lub internetowej aplikacji).

Dla wyjaśnienia tej przesłanki proszę zobaczyć Strong-Named Assemblies:

Silna nazwa składa się z tożsamością jego prostego tekstu nazwą Zgromadzenia , numer wersji i kultury informacyjnego (jeżeli istnieje) -plus klucz publiczny i podpis cyfrowy. Jest generowane z pliku zespołu (plik, który zawiera montaż manifestu, który z kolei zawierający nazw i skrótów wszystkich plików, które tworzą zespół), używając odpowiedniego klucza prywatnego. Microsoft® Visual Studio® .NET i inne narzędzia programistyczne dostępne w zestawie Windows Software Development Kit (SDK) mogą przypisać silne nazwy do zespołu . Zespoły o tej samej silnej nazwie powinny być identyczne pod względem .

Można zapewnić, że nazwa jest globalnie unikalna, podpisując zestaw z silną nazwą . W szczególności, silne nazwy spełniać następujące wymagania :

  • Silne nazwy gwarantuje unikalność nazwy powołując się na unikalnych par kluczy. Nikt nie może wygenerować tej samej nazwy zespołu, którą można, ponieważ zespół wygenerowany za pomocą jednego klucza prywatnego ma inną nazwę niż zestaw wygenerowany innym kluczem prywatnym.

  • Silne nazwy chronią linię produkcyjną wersji . Silna nazwa: może zagwarantować, że nikt nie będzie w stanie wyprodukować kolejnej wersji Twojego zestawu . Użytkownicy mogą być pewni, że wersja zespołu, który ładują, pochodzi od od tego samego wydawcy, który utworzył wersję, z której została zbudowana ta aplikacja z.

  • Silne nazwy zapewniają silne sprawdzenie integralności . Przekazanie kontroli zabezpieczeń platformy .NET gwarantuje, że zawartość zestawu nie została zmieniona od czasu jej utworzenia. Należy jednak zauważyć, że silne nazwy w i same w sobie nie sugerują poziomu zaufania podobnego do tego podanego na przykład za pomocą podpisu cyfrowego i certyfikatu pomocniczego podpisu cyfrowego i .

Kiedy można odwołać silny nazwie zespołu , można oczekiwać, aby uzyskać pewne korzyści, takie jak wersjonowanie i nazywania ochronę. Jeśli silny nazwie montaż następnie odwołuje zespół z prostą nazwę, która nie ma tych zalet, tracisz korzyści będzie czerpać z użyciem silne nazwie zespołu i przywrócić konfliktów DLL. Dlatego zespoły o silnej nazwie mogą odwoływać się tylko do silnie nazwanych zespołów .

Powiązane problemy