Names of Assemblies and DLLs

In most scenarios, an assembly contains all or part of a reusable library and is contained in a single dynamic-link library (DLL). An assembly can be split among multiple DLLs but this is very uncommon and not addressed in this guideline.

Where assemblies and DLLs are the physical organization of a library, namespaces are a logical organization and should be factored independent of the assembly's organization. Namespaces can and often do span multiple assemblies.

Do choose names for your assembly DLLs that suggest large chunks of functionality such as System.Data. Assembly and DLL names do not have to correspond to namespace names but it is reasonable to follow the namespace name when naming assemblies.

Consider naming DLLs according to the following pattern:

<Company>.<Component>.dll

Where <Component> contains one or more dot-separated clauses.

For example, Contoso.WebControls.dll.

Portions Copyright 2005 Microsoft Corporation. All rights reserved.

Portions Copyright Addison-Wesley Corporation. All rights reserved.

For more information on design guidelines, see the "Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries" book by Krzysztof Cwalina and Brad Abrams, published by Addison-Wesley, 2005.

See Also

Other Resources

Design Guidelines for Developing Class Libraries

Guidelines for Names