DotNetNuke 4.0 is a moderately large framework, but it is organized as a coherent set of namespaces and class locations to facilitate ease-of-use for the developer. Figure 7-7 shows the second-level namespaces that fall under the root DotNetNuke namespace.
Here are brief descriptions of these namespaces:
DotNetNuke.Common: Used for all classes used throughout the entire DotNetNuke application. For example, the global constants that are used throughout the application are found in the DotNetNuke.Common.Globals class.
DotNetNuke.Data: Used for any classes relating to the Data Access Layer. For example, the DataProvider base class for the Data Provider API is in the DotNetNuke.Data namespace.
DotNetNuke.Entities: Used for the classes that represent and manage the five entities that make a portal. They are Host, Portals, Tabs, Users, and Modules. The Modules namespace that falls under DotNetNuke.Entities is home to the functionality behind managing modules. The actual modules themselves have their own second-level namespace: DotNetNuke.Modules.
DotNetNuke.Framework: Home to several base classes and other utilities used by the DotNetNuke application.
DotNetNuke.Modules: Used for organizing portal modules. There is a child namespace in the core named DotNetNuke.Modules.Admin where the classes for all of the core admin modules reside. For example, the Host Settings module is found in the DotNetNuke.Modules.Admin.Host.HostSettingsModule class.
DotNetNuke.Security: Used for authorization and authentication classes. This includes tab permissions, module permissions, folder permissions, roles, and other portal security classes.
DotNetNuke.Services: Used for any services the core provides for modules. In this namespace, the child namespaces for exception management, localization, personalization, search, and several others reside.
DotNetNuke.UI: Used for any user interface classes. For example, the Skin and Container classes are found in DotNetNuke.UI.Skins.Skin and DotNetNuke.UI.Containers.Container, respectively.