Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>To follow up on what Eric Lippert said:</p> <h2>Assembly Names</h2> <p>It is traditional for nearly all code in a assembly to live in a single namespace and sub-namespaces, with the assembly named after the namespace.</p> <p>For example, if I was given an assembly with the file name <em>Contoso.PartnerPortal.Services.dll</em>, the assembly's short name would traditionally be <code>Contoso.PartnerPortal.Services</code>, and I would expect the bulk of the code to live in the <code>Contoso.PartnerPortal.Services</code> namespace (and sub-namespaces).</p> <p>However not all classes in the <code>Contoso.PartnerPortal.Services</code> namespace will necessarily live in the Contoso.PartnerPortal.Services.dll assembly. If a <em>Contoso.PartnerPortal.dll</em> assembly exists it may well have some classes in the <code>Contoso.PartnerPortal.Services</code> namespace too.</p> <p>One common use of this is with interfaces. If the interfaces live in <em>Contoso.PartnerPortal.dll</em> then code in that assembly can use the interface without referencing the <em>Contoso.PartnerPortal.Services.dll</em>. This is important, since <em>Contoso.PartnerPortal.Services.dll</em> (which will implement the interfaces) will likely need to reference <em>Contoso.PartnerPortal.dll</em> and circular assembly references are best avoided.</p> <h1>Number/Size of Assemblies</h1> <p>Assemblies that are excessively large may make compilation take longer than necessary. This is because the compilers have not had support for incremental compilation in quite a long time. Thus an entire module must be compiled as a unit. Since multi-module assemblies are not frequently used this basically implies that you must compile a whole assembly at once.</p> <p>If you split a large assembly into several smaller ones, only the changed assembly and those that reference will get recompiled. That saves some time.</p> <p>On the other extreme having over 600 assemblies in one application (I work on such a monster in my day job) has its own set of problems. For example, the shadow copy feature of ASP.net has had performance issues working with that many assemblies (keep in mind that this is in addition to the large number of assemblies created when ASP.net compiles the aspx and ascx files).</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload