Component Class Characteristics
The characteristics of a class acquire additional significance when the class becomes a component.
A class defined with private access is not visible to users of your assembly. This is the access level to use for helper classes internal to the assembly.
Setting the Access modifier to public makes a component class available to users of your assembly. To control whether users of your assembly can create instances of the component, specify the appropriate access level for its constructor.
Unless you intend to implement the IComponent interface yourself, your base class should be System.ComponentModel.Component or a class that derives from System.ComponentModel.Component. You can find this information in the reference topic for any class in the .NET Framework. In Visual Basic, the Inherits statement specifies the base class. In C#, the base class follows the colon in the class declaration. Examples are shown below:
Every component is contained within a namespace. By default, the namespace is the name of your project. Users of your component assembly will add Imports (Visual Basic) orusing (C#) statements for the namespaces containing components they want to access.
Note You can add additional levels of structure by enclosing components within additional Namespace...End Namespace blocks.
Generally speaking, the structure of namespaces in your component assembly should reflect its internal organization. If your assembly contains a large number of components, it makes sense to group related components in separate namespaces.