MM .NET Namespaces
In the .NET base class library System is the root namespace. In MM .NET, OakLeaf.MM.Main is the root namespace (we actually tried to make it OakLeaf.MM.System, but this confused Visual Studio and it couldn't find our classes!)
Since a significant part of the .NET learning curve involves figuring out which namespace a class belongs to, we try to mimic the namespace hierarchy of the .NET Framework in MM .NET. This means that when we create a subclass of a .NET base class, we put it in a corresponding namespace in MM .NET.
For example, the .NET Windows Forms user controls are found in:
System.Windows.Forms
And our corresponding subclasses are found in:
OakLeaf.MM.Main.Windows.Forms
As another example, the .NET Web Forms user interface controls are found in:
System.Web.UI.WebControls
And our corresponding subclasses are found in:
OakLeaf.MM.Main.Web.UI.Controls
Recommended Namespaces for Your Custom Classes
When specifying namespaces for your custom classes, you should follow the Microsoft naming convention of starting the namespace with your company name, followed by the product name. For example, if your company name is "Acme" and you are creating a product called "RocketBlaster" all of your namespaces should start with:Acme.RocketBlaster
To take this example further, if you have business object classes you could put these in:
Acme.RocketBlaster.Business
If you create custom data access classes you could put these in:
Acme.RocketBlaster.Business.Data
If you create event objects you could put these in:
Acme.RocketBlaster.Business.Event
You could put your custom Windows Forms controls in:
Acme.RocketBlaster.Windows.Forms
And your custom Web Form controls in:
Acme.RocketBlaster.Web.UI.WebControls
© (c) 2026 Oak Leaf Enterprises, Inc., 1996-2026 • Updated: 04/17/18
Comment or report problem with topic
