Sabe-se que a web não tem estado, ou seja, toda vez que uma determinada página da web é solicitada. Ele é recriado a cada vez e postado no servidor. Além disso, o HTTP é um protocolo sem estado, ou seja, não pode conter informações do cliente na página da web. Portanto, é necessário manter o estado de uma página e do lado do servidor também, o gerenciamento de estado é feito. ViewState e SessionState são usados ​​para gerenciamento de estado do lado do cliente e gerenciamento de estado do lado do servidor, respectivamente. A diferença básica entre esses dois é que o ViewState gerencia o estado na extremidade do cliente, facilitando o gerenciamento de estado para o usuário final, enquanto o SessionState gerencia o estado na extremidade do servidor, facilitando o gerenciamento de conteúdo também nesta extremidade.

ViewState: é mantido em apenas um nível, que é o nível da página. As alterações feitas em uma única página não são visíveis nas outras páginas. As informações coletadas no estado de exibição são armazenadas apenas para os clientes e não podem ser transferidas para nenhum outro local. O estado de exibição é sinônimo apenas de dados serializáveis.

ViewState tem uma tendência para a persistência de dados específicos da instância da página. Quando o estado de exibição é usado, os valores postados de uma página específica persistem na área de navegação que o cliente está usando e postam de volta apenas quando toda a operação é concluída. Os dados da página anterior não estão mais disponíveis quando outra página é carregada. Além disso, os dados não são seguros neste caso porque estão expostos aos clientes. A criptografia pode ser usada para segurança de dados.

SessionState: é mantido no nível da sessão e os dados podem ser acessados ​​em todas as páginas do aplicativo da web. As informações são armazenadas no servidor e podem ser acessadas por qualquer pessoa que tenha acesso ao servidor onde as informações estão armazenadas.

SessionState tem a tendência de persistência de dados específicos do usuário e é mantido no lado do servidor. Esses dados permanecem disponíveis até o momento em que a sessão é concluída ou o navegador é fechado pelo usuário. O estado da sessão é válido apenas para objetos de tipo.

Diferenças entre ViewState e SessionState:

ViewStateSessionState
Mantido apenas no nível da página.Mantido no nível da sessão.
O estado de exibição só pode ser visível em uma única página e não em várias páginas.A disponibilidade do valor do estado da sessão está em todas as páginas disponíveis em uma sessão do usuário.
Ele reterá os valores no caso de ocorrer uma operação de postback.No estado de sessão, os dados do usuário permanecem no servidor. Os dados ficam disponíveis para o usuário até que o navegador seja fechado ou até que a sessão expire.
As informações são armazenadas apenas no lado do cliente.As informações são armazenadas no servidor.
usado para permitir a persistência de dados específicos da instância da página.usado para a persistência de dados específicos do usuário no final do servidor.
Os valores de ViewState são perdidos / apagados quando uma nova página é carregada.SessionState pode ser apagado pelo programador ou usuário ou em caso de timeouts.

Uso:

  • SessionState: Pode ser usado para armazenar informações que você deseja acessar em diferentes páginas da web.
  • ViewState Ele pode ser usado para armazenar informações que você deseja acessar na mesma página da web.