The System.Web.UI namespace provides types that allow you to create controls and Web Forms (.aspx pages). Many of these types provide support for controls in the System.Web.UI.HtmlControls and System.Web.UI.WebControls namespaces and are not used directly in your code. Some of these types provide parsing, data binding, and template functionality. The System.Web.UI namespace also includes a number of fundamental classes like Control (the base class for all HTML, web, and user controls), Page (the base class for every .aspx Web Forms page you create), and UserControl (the class representing all .ascx user controls).
Many of the types in this namespace are useful if you want to create your own custom controls. These types include the IPostBackDataHandler and IPostBackEventHandler interfaces (used to access postback data and raise control events), the HtmlTextWriter class (used to create a control's HTML user interface), the INamingContainer interface (used to create composite controls), and the ITemplate interface (used to create templated controls with configurable HTML). Additionally, the System.Web.UI namespace also contains types used for control styles (AttributeCollection and CssStyleCollection) and view state management (StateBag and StateItem).
Figure 36-1 shows the controls and control builders for this namespace. Figure 36-2 shows attributes as well as a delegate and its related event arguments. Figure 36-3 shows the remaining types.