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 live online training, plus books, videos, and digital content from nearly 200 publishers.