At its core, ASP.NET is a control-based architecture, defined in the following way:
This architecture is analogous to the window architecture in the Win32 API. The desktop itself is a window (like the Page), and any window may contain child windows. Each window is rendered by first rendering its contents and then rendering the contents of its children. The rendering of a window on the desktop involves drawing pixels to a display, whereas the rendering of an ASP.NET control involves generating HTML to populate a portion of the response to an HTTP request. ASP.NET's control architecture is a completely extensible framework, and in this chapter, we look at techniques for building custom controls to create truly reusable Web components that encapsulate details of presentation and server interaction.