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 have 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)

  • Control state

  • Application state

  • Session state

Control state, (described below 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

Application state

Session state

Uses server resources

No

Yes

Yes

Uses bandwidth

Yes

No

No

Times out

No

No

Yes

Security exposure

Yes

No

Depends

Optimized for non-primitive types

No

Yes

Yes

Available for arbitrary data

Yes

Yes

Yes

Programmatically accessible

Yes

Yes

Yes

Scope

Page

Application

Session

Survives restart

Yes

No

Depends on configuration

The following ...

Get Programming ASP.NET, 3rd 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.