> Ok, this may be a stupid question but do I need to generate public/private
> key pair for each assembly in a single solution?
>
> I am thinking about delay-signing and that'd mean the "signer" must maintain
> the key pair for every single assembly separately. Is this how it's
> supposed to be done?
Assembly signing is supposed to identify assembly publisher and protect
assemblies from being modified by anyone except for publisher having access
to its private key. The consequence of this is that unless someone wants to
run into mess of managing hundreds of keypairs the best practice is to have
one official keypair. Obviously some additional keypairs can be used
internally for testing.
> Also, this is kind of on a side note. I've read somewhere that having a
> single combined assembly is better than many smaller separate assemblies -
> assuming all assemblies involved are always updated at the same time -, is
> this true? I can understand why from file access point of view(single file
> = less frequent fs access, many files = more frequent fs access but then
> that single file may be huge).
It depends on the usage scenario: if your app does not use all types
declared in assembly it is better to keep them in separate assemblies or
modules of multimodule assembly - they will be loaded only when type
defined in given assembly or module is called. This obviously will improve
performance for large assemblies.
If someone decides to use single assembly he gets lower overhead of reading
metadata, higher security (modules in mutlimodule assembly are not
StrongName signed - they are referencing main module and are referenced by
hash values only), and easier deplyment.
> If employing the combined assembly strategy,
> do I need to genereate netmodules for each contained assemblies instead or,
> is there a way to combine already generated assemblies into one?
Check for Module Linking by Round Tripping chapter in "Inside Microsoft .NET
IL Assembler" book by Serge Lidin or
http://www.gotdotnet.com/userarea/keywordsrch.aspx?keyword=Lame%20Link tool.
Hope this helps.
Jacek
Jiho Han - 09 Jun 2004 14:47 GMT
Excellent. Thanks for the clarification.
Jiho
> > Ok, this may be a stupid question but do I need to generate public/private
> > key pair for each assembly in a single solution?
[quoted text clipped - 41 lines]
>
> Jacek