The System.Web.UI.Design namespace contains types used for providing design-time support for the Web Forms user interface. These types fall into four basic categories: type converters, UI type editors, designers, and other helper classes (such as classes that provide ASP.NET data binding support). Type converters allow control properties to be converted to and from base data types, which allows them to be displayed and edited in the Properties Window. Type converters also extend runtime support, but they are only used implicitly and never instantiated directly. Type converter classes derive from System.ComponentModel.TypeConverter and end with the word "Converter" by convention. Unlike type converters, UI type editors are used exclusively in the design environment. They provide the custom user interface that is used to select special property values from the Properties window (like a control's color). UI type editors derive from System.Drawing.Design.UITypeEditor and end with the word "Editor."
Designers help provide the design-time representation of a control. They derive from System.ComponentModel.Design.ComponentDesigner and end with the word "Designer." The System.Web.UI.Design namespace contains the base designers used for ASP.NET controls. ASP.NET controls use different designers than Windows Form controls because they are rendered by using HTML rather than Windows-specific GDI+ functions. For custom designers that extend specific controls, refer to the System.Web.UI.Design.WebControls namespace.
Generally, the types in the System.Web.UI.Design namespace are never used directly in the runtime logic of an application. However, they are useful for ASP.NET control designers. For example, if you are creating a custom Web Forms control from scratch, you may want to derive from ControlDesigner to create a custom designer. However, you may find it more convenient to extend an existing web controlin which case, you would continue using the default designers, type converters, and UI type editors, or derive custom versions from the corresponding control-specific class in the System.Web.UI.Design.WebControls namespace, if it exists.
Figure 37-1 shows the fundamental types in this namespace, and Figure 37-2 shows the remaining types.