You can use several types of server controls in an ASP.NET Web form:
HTML server controls are HTML elements that expose an object model to the server so that they can be programmed.
Web server controls might be buttons, labels, text boxes, or specialized controls such as calendars. They expose an object model that might not reflect HTML syntax.
Validation controls can be attached to input controls to test the validity of user-entered data.
Web user controls are like Web Forms pages in that they have a user-interface page (with the extension .ascx) and a code file, but they do not have <html>, <body>, or <form> elements. They are embedded in a Web forms page to provide reusable elements such as custom toolbars.
You can also use or build custom Web server controls. These are compiled, reusable components that can be a combination of two or more existing components, custom versions of existing components, or new components derived from a base control class.
The System.Web.UI.Control class defines properties, methods, and events common to all server controls, including ViewState management and the control’s execution lifecycle. The System.Web.UI.WebControls.WebControl class derives from System.Web.UI.Control and adds user interface properties and methods. The WebDataWindowControl is a custom server control that inherits from System.Web.UI.WebControls.WebControl.