State Management in an ASP .Net application
When users visit Web sites it becomes necessary to maintain session related and controls related information. In an HTTP exchange between a browser and a remote host, session related information which identifies state, such as a unique session ID, information about the user's preferences or authorisation level is preserved. Note that sessions are maintained in the data being exchanged.
State Management is the process by which we maintain session related information and additional information about the controls and its state. The necessity of state management arises when multiple users request for the same or different Web Pages of a Web Site.
State management can be accomplished using Client Side options or the Server side options.
Client Side State Management Options
Client Side State Management involves storing information either on a Web page or on a Client computer. There are four ways to manage states.
- View State
- Hidden Form Fields
- Query String
In this method, the ViewState property that is inherited from the base Control class is used to automatically save the values of the page and of each control prior to rendering of the page. ViewState is implemented with a hidden form field called the _VIEWSTATE, which is automatically created in every Web Form page. When ASP.Net executes a Web page on a Web Server, the values stored in the ViewState property of the page and controls on it are collected and formatted into a single encoded string. The encoded string is then assigned to the Value attribute of the hidden form field _VIEWSTATE and is sent to the client as a part of the Web page.
Hidden Form Fields
In ASP.Net we can use the HTML standard hidden fields in a Web Form to store page-specific information. A hidden field does not render in a Web browser. However, we can set the properties of the hidden field. When a page is submitted to the server, the content of the hidden field is sent in the HTTP Form collection along with values of other controls.
A cookie is a small data structure used by a Web server to deliver data to a web client. A cookie contains page specific information that a Web server sends to a client along with Page output. Cookies are used to keep track of each individual user who accesses the web page across a HTTP connection.
The Query string is a part of the request that appears after the Question mark (?) character in the URL. A query string provides a simple way to pass information from one page to another.
Server Side State Management Options
ASP.Net provides application state as a means of storing global application specific information. The information in the application state is stored in a key value pair and is used to maintain data consistency between server round trips and between pages.
In this option session state used to store session specific information for a Web site. In session state, the scope fo session state is limited to the current browser session. In case, many users are accessing the same Web application, each will have a different session state. If a user exits from a Web applicatin and returns later, it will be a different session state.
Another option is the database support option. Database support is used in combination with cookies or session state. The database used is usually a relational database.