Programming with Components
The designer architecture in Visual Studio lets you assemble non-visual component classes as easily as you assemble Visual Basic forms. The following sections explain how to create your own components, and how to assemble them from the sophisticated components in the .NET Framework classes.
This section defines what a component is and provides an overview of .NET Framework programming concepts that are especially relevant to component programming. While the term component has many meanings, in the .NET Framework a component is a class that implements the System.ComponentModel.IComponent interface or one that derives directly or indirectly from a class that implements this interface. The default base class implementation of the IComponent interface is System.ComponentModel.Component.
If you want your components and controls to be usable from other programming languages, you must author them in a Common Language Specification (CLS)-compliant language and ensure that all public and protected members are CLS-compliant. The Windows Software Development Kit (SDK) provides compilers for four CLS-compliant languages: Visual Basic, C#, C++, and J#. For more information about the CLS, see Common Language Specification.