Diferença entre Session e ViewState

Sessão vs ViewState

ViewState e sessão são duas das soluções para problemas em aplicativos da web. O problema envolve um usuário de computador acessando uma página da web em um determinado período de tempo. Após algum tempo de uso, ou após o usuário fechar o aplicativo, as informações e o acesso da página da web são excluídos dos registros de uso recentes.

ViewState é válido apenas durante postbacks e aplicável apenas a dados serializados. ViewState, em primeiro lugar, é o objeto / arquitetura que permite que os controles da Web mantenham seu valor entre postbacks. Como uma sessão, o ViewState pode ser executado e acessível a um servidor.
As informações em ViewState são armazenadas para o cliente apenas como um valor criptografado nos campos ocultos do navegador. Isso torna os dados inseguros e possivelmente sujeitos a hackers. Durante os postbacks, o ViewState rastreia as mudanças em um site específico.



ViewState também retém o valor de controle para a página específica. Isso significa que os dados em uma página não estão e não podem estar disponíveis, acessados ​​ou replicados em outra página. ViewState é mantido no nível da página ou na página ativa atual. Não tem ponto de expiração e pode ser habilitado ou desabilitado no ViewState para controles específicos.

ViewState pode ser visto na visualização do código-fonte da página que dura até que a página seja fechada. ViewState é usado principalmente para armazenar uma pequena quantidade de dados (geralmente uma string e outros dados serializados) na página atual. Além disso, ViewState consome mais largura de banda em comparação com a sessão, mas menos memória e espaço de memória. ViewState não envolve muita memória, pois todos os dados são perdidos no momento em que a página é fechada.

Enquanto isso, a sessão é mais comumente usada para páginas da Web e afeta não apenas a página, mas todo o aplicativo e toda a duração de um usuário usando aquele navegador ou página em particular. A sessão é válida para qualquer tipo de objeto e é armazenada na memória do servidor do navegador. Os dados que ele retém são os dados do usuário do computador ou, em outras palavras, dados específicos do usuário. Os dados ficam disponíveis até que o usuário feche o aplicativo do navegador ou a sessão expire por conta própria.

Ao contrário do ViewState, os dados da sessão podem ser acessados ​​ou replicados em outra janela ou página da sessão. As sessões também não podem desativar ou ativar controles específicos. A sessão também envolve diferentes tipos de dados a serem armazenados em seu receptáculo de memória. A sessão também tem uma memória maior em comparação com o ViewState, pois usa a memória do servidor. A desvantagem disso é que a sessão tem um tempo de expiração e a quantidade de dados armazenados na memória do servidor pode afetar o tempo de carregamento do servidor.

Resumo:

1. Além do ViewState e da sessão, outras soluções ASP.NET incluem variáveis ​​de aplicativo, cache e cookies. 2.ViewState e sessão podem ser executados e acessíveis em um ambiente de servidor.
3.ViewState é usado no lado do cliente, enquanto a sessão é usada no lado do servidor. Estar do lado do cliente faz com que o ViewState não tenha validade. O oposto (ter uma expiração e estar no lado do servidor) é para a sessão.
4.ViewState pode conter apenas uma string ou dados serializáveis, enquanto a sessão pode conter uma grande variedade de tipos de dados. Isso torna a quantidade de dados no ViewState muito menor em comparação com a da sessão.
5. A sessão pode replicar ou acessar dados para uma nova página ou janela enquanto o ViewState não é capaz desse recurso.
6.Session armazena seus dados na memória do servidor, enquanto ViewState oculta seus dados em campos ocultos do navegador como dados criptografados. 7. Visto que a memória do servidor contém diferentes tipos de dados, uma grande quantidade de dados armazenados pode afetar a carga do servidor.