MSDN Documentation

ASP.NET Pages and Controls

ASP.NET provides a powerful and flexible programming model for building dynamic, data-driven Web applications. At its core, ASP.NET utilizes a page-based model and a rich set of controls to simplify Web development.

The ASP.NET Page Model

An ASP.NET Web page is represented by a file with an .aspx extension. This file contains declarative HTML markup along with embedded server-side code that can be written in languages like C# or Visual Basic.

When a user requests an .aspx page, the ASP.NET runtime compiles the page into an intermediate language (IL) and then into machine code. This process allows for efficient execution and reuse of compiled code.

Key characteristics of the ASP.NET page model include:

ASP.NET Controls

ASP.NET controls are server-side objects that abstract away the complexities of HTML, HTTP, and the browser. They allow developers to build user interfaces by writing code rather than directly manipulating HTML elements.

There are several categories of ASP.NET controls:

1. HTML Server Controls

These controls directly map to standard HTML elements, such as <input>, <select>, and <a>. When you add the runat="server" attribute to an HTML element, it becomes an HTML server control, allowing you to programmatically access and manipulate it from your server-side code.

<input type="text" id="userName" runat="server" />
<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="SubmitButton_Click" />

2. Web Server Controls (ASP.NET Controls)

These are richer, higher-level controls that provide more functionality and abstract away browser differences. Examples include <asp:Button>, <asp:TextBox>, <asp:Label>, <asp:DropDownList>, and <asp:GridView>.

Web server controls render appropriate HTML for the target browser, ensuring consistent behavior across different platforms.

3. Data Controls

Specifically designed for displaying and manipulating data, data controls include <asp:GridView>, <asp:DetailsView>, and <asp:FormView>. They simplify common data-bound operations.

4. Validation Controls

These controls allow you to easily implement client-side and server-side validation of user input without writing extensive JavaScript or C# code. Examples include <asp:RequiredFieldValidator>, <asp:RangeValidator>, and <asp:RegularExpressionValidator>.

Tip: Leverage Web Server Controls and Validation Controls to reduce development time and improve code maintainability.

Control Lifecycle

ASP.NET controls go through a specific lifecycle on the server during each request. Understanding this lifecycle is crucial for managing control state and handling events correctly. Key stages include:

Code-Behind Model

For better organization and maintainability, ASP.NET strongly encourages the use of the code-behind model. In this model, the .aspx file contains only the declarative markup, while the server-side logic resides in a separate file (e.g., MyPage.aspx.cs for C#).

The .aspx file has a CodeBehind attribute in its directive pointing to the code-behind file.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MyPage.aspx.cs" Inherits="MyProject.MyPage" %>
Note: The Inherits attribute specifies the namespace and class name of the code-behind file, establishing the link between the markup and the code.

Conclusion

The ASP.NET page and control model provides a robust foundation for building modern web applications. By abstracting HTTP and HTML, it allows developers to focus on business logic and user experience, leading to faster development cycles and more maintainable code.