Namespace Naming Guidelines
The general rule for naming namespaces is to use the company name followed by the technology name and optionally the feature and design as follows.
Prefixing namespace names with a company name or other well-established brand avoids the possibility of two published namespaces having the same name. For example,
Microsoft.Office is an appropriate prefix for the Office Automation Classes provided by Microsoft.
Use a stable, recognized technology name at the second level of a hierarchical name. Use organizational hierarchies as the basis for namespace hierarchies. Name a namespace that contains types that provide design-time functionality for a base namespace with the
.Design suffix. For example, the System.Windows.Forms.Design Namespace contains designers and related classes used to design System.Windows.Forms based applications.
A nested namespace should have a dependency on types in the containing namespace. For example, the classes in the System.Web.UI.Design depend on the classes in System.Web.UI. However, the classes in System.Web.UI do not depend on the classes in System.Web.UI.Design.
You should use Pascal case for namespaces, and separate logical components with periods, as in
Microsoft.Office.PowerPoint. If your brand employs nontraditional casing, follow the casing defined by your brand, even if it deviates from the prescribed Pascal case. For example, the namespaces
ee.cummings illustrate appropriate deviations from the Pascal case rule.
Use plural namespace names if it is semantically appropriate. For example, use
System.Collections rather than
System.Collection. Exceptions to this rule are brand names and abbreviations. For example, use
System.IO rather than
Do not use the same name for a namespace and a class. For example, do not provide both a
Debug namespace and a
Finally, note that a namespace name does not have to parallel an assembly name. For example, if you name an assembly
MyCompany.MyTechnology.dll, it does not have to contain a