ASP.NET Web Forms Pages Overview
You use ASP.NET Web Forms pages as the programmable user interface for your Web Forms application. An ASP.NET Web Forms page presents information to the user in any browser or client device and implements application logic using server-side code. ASP.NET Web Forms pages are:
Based on Microsoft ASP.NET technology, in which code that runs on the server dynamically generates Web page output to the browser or client device.
Compatible with any browser or mobile device. An ASP.NET Web page automatically renders the correct browser-compliant HTML for features such as styles, layout, and so on.
Compatible with any language supported by the .NET common language runtime, such as Microsoft Visual Basic and Microsoft Visual C#.
Built on the Microsoft .NET Framework. This provides all the benefits of the framework, including a managed environment, type safety, and inheritance.
Flexible because you can add user-created and third party controls to them.
ASP.NET offers several technologies for creating Web applications. Web Forms pages (described here) offer a familiar drag-and-drop, event-driven model that includes hundreds of controls for rapid development. ASP.NET Web Pages provide a simple way to connect to data and add dynamic code into HTML using a lightweight syntax. ASP.NET MVC (Model View Controller) is a patterns-based development model that enables a separation of concerns and that emphasizes agile, test-driven development. We encourage you to review the features of each of the technologies and to select that on that best fits with your preferences and goals.
Components of ASP.NET Web Forms Pages
In ASP.NET Web Forms pages, user interface programming is divided into two pieces: the visual component and the logic. If you have worked with tools like Visual Basic and Visual C++ in the past, you will recognize this division between the visible portion of a page and the code that interacts with it.
The visual element consists of a file containing static markup such as HTML or ASP.NET server controls or both. The ASP.NET Web Forms page works as a container for the static text and controls you want to display.
The logic for the Web Forms page consists of code that you create to interact with the page. The code can reside either in a script block in the page or in a separate class. If the code is in a separate class file, this file is referred to as the code-behind file. The code in the code-behind file can be written in Visual Basic, C#, or any other .NET Framework language. For more information about how ASP.NET Web Forms pages are constructed, see ASP.NET Web Forms Page Code Model.
For ASP.NET Web Forms site projects, you deploy page source code to a Web server and the pages are compiled automatically the first time a user browses to any page in the site. (Optionally, you can also precompile the site so that there is no compilation delay the first time a user browses a page.) For ASP.NET Web application projects, you must compile the Web Forms pages before deployment and deploy one or more assemblies. For more information about differences between how the two project types compile Web Forms pages, see Web Application Projects versus Web Site Projects in Visual Studio
What ASP.NET Web Forms Pages Help You Accomplish
Web application programming presents challenges that do not typically arise when programming traditional client-based applications. Among the challenges are:
Implementing a rich Web user interface It can be difficult and tedious to design and implement a user interface using basic HTML facilities, especially if the page has a complex layout, a large amount of dynamic content, and full-featured user-interactive objects.
Separation of client and server In a Web application, the client (browser) and server are different programs often running on different computers (and even on different operating systems). Consequently, the two halves of the application share very little information; they can communicate, but typically exchange only small chunks of simple information.
Stateless execution When a Web server receives a request for a page, it finds the page, processes it, sends it to the browser, and then discards all page information. If the user requests the same page again, the server repeats the entire sequence, reprocessing the page from scratch. Put another way, a server has no memory of pages that it has processed—page are stateless. Therefore, if an application needs to maintain information about a page, its stateless nature can become a problem.
Unknown client capabilities In many cases, Web applications are accessible to many users using different browsers. Browsers have different capabilities, making it difficult to create an application that will run equally well on all of them.
Complications with data access Reading from and writing to a data source in traditional Web applications can be complicated and resource-intensive.
Complications with scalability In many cases Web applications designed with existing methods fail to meet scalability goals due to the lack of compatibility between the various components of the application. This is often a common failure point for applications under a heavy growth cycle.
Meeting these challenges for Web applications can require substantial time and effort. ASP.NET Web Forms pages and the ASP.NET page framework address these challenges in the following ways:
Intuitive, consistent object model The ASP.NET Web Forms page framework presents an object model that enables you to think of your forms as a unit, not as separate client and server pieces. In this model, you can program the page in a more intuitive way than in other models, including the ability to set properties for page elements and respond to events. In addition, ASP.NET Web Forms server controls are an abstraction from the physical contents of an HTML page and from the direct interaction between browser and server. In general, you can use server controls the way you might work with controls in a client application and not have to think about how to create the HTML to present and process the controls and their contents.
Event-driven programming model ASP.NET Web Forms pages bring to Web applications the familiar model of writing event handlers for events that occur on either the client or server. The ASP.NET Web Forms page framework abstracts this model in such a way that the underlying mechanism of capturing an event on the client, transmitting it to the server, and calling the appropriate method is all automatic and invisible to you. The result is a clear, easily written code structure that supports event-driven development.
Intuitive state management The ASP.NET Web Forms page framework automatically handles the task of maintaining the state of your page and its controls, and it provides you with explicit ways to maintain the state of application-specific information. This is accomplished without heavy use of server resources and can be implemented with or without sending cookies to the browser.
Browser-independent applications The ASP.NET Web Forms page framework enables you to create all application logic on the server, eliminating the need to explicitly code for differences in browsers. However, it still enables you to take advantage of browser-specific features by writing client-side code to provide improved performance and a richer client experience.
.NET Framework common language runtime support The ASP.NET Web Forms page framework is built on the .NET Framework, so the entire framework is available to any ASP.NET application. Your applications can be written in any language that is compatible that is with the runtime. In addition, data access is simplified using the data access infrastructure provided by the .NET Framework, including ADO.NET.
.NET Framework scalable server performance The ASP.NET page framework enables you to scale your Web application from one computer with a single processor to a multi-computer Web farm cleanly and without complicated changes to the application's logic.