State
State is the current value of all the controls and variables for the current user in the current session. The Web is inherently a stateless environment, which means that every time a page is posted to the server and then sent back to the browser, the page is re-created from scratch. Unless the state of all the controls is explicitly preserved before the page is posted, the state is lost and all the controls are created with default values. One of the great strengths of ASP.NET is that it automatically maintains state for server controls—both HTML and ASP.NET—so you do not need to write any code to accomplish this. This section will explore how this is done and how you can make use of the ASP.NET state management capabilities.
ASP.NET manages four types of state:
View state (which is saved in the state bag, covered later in this chapter)
Control state
Application state
Session state
Control state (described shortly in conjunction with view state) cannot be modified, accessed directly, or disabled. Table 6-5 compares the other kinds of state management.
Table 6-5. Comparison of types of state
Feature | View state | Session state | Application state |
---|---|---|---|
Uses server resources | No | Yes | Yes |
Uses bandwidth | Yes | No | No |
Times out | No | Yes | No |
Security exposure | Yes | Depends on configuration | No |
Optimized for nonprimitive types | No | Yes | Yes |
Available for arbitrary data | Yes (if data is serializable) | Yes | Yes |
Programmatically accessible | Yes | Yes | Yes |
Scope | Page | Session | Application |
Survives application restart | Yes | Depends on configuration | No |
The following sections ...
Get Programming ASP.NET 3.5, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.