Desenvolvimento - C#
Session, ViewState ou Cache o que utilizar?
Como armazenar uma informação temporária e que preciso acessar rapidamente? Qual o desenvolvedor que nunca se deparou com tal pergunta ou não sabia o que seria melhor para resolver seu problema.
por Raphael Silva FerreiraComo armazenar uma informação temporária e que preciso acessar rapidamente? Qual o desenvolvedor que nunca se deparou com tal pergunta ou não sabia o que seria melhor para resolver seu problema.
Session, ViewState e Cache são três grandes ferramentas que podem nos ajudar nesta tarefa. Mas você deve estar se perguntando qual deles é a melhor solução? Depende da situação e este artigo visa lhe levar até o caminho da melhor solução.
Session (sessão) é o período de tempo em que o usuário interage com a aplicação. Em termos de programação a sessão é a memória em forma de dicionário ou ainda de uma tabela hash. Por exemplo, a sessão pode ser um conjunto de valores-chave que podem ser definidos e lidos por um usuário, durante a utilização da aplicação web pelo mesmo.
A Session por default no .NET possui um timeout de vinte minutos podendo ser redefinida (este caso será abordado num próximo artigo). Estes vintes minutos são contados a partir do momento em que o usuário deixa de interagir com o sistema, enquanto isso não ocorre este tempo não é válido.
ViewState é um conjunto de informações escondidas mantidas pela página ASP.NET. Ele monitora as mudanças feitas na página durante o post back.
Nas páginas do ASP.NET o ViewState é habilitado por default para todos os componentes do .NET Framework e pode ser visto (criptografado) ao término do carregamento da página .aspx clicando-se com o botão direito do mouse e em seguida em “Exibir Código Fonte”, após isto basta localizar a tag “_VIEWSTATE”.
Cache também é um tipo de memória, no caso do ASP.NET é a memória da máquina/servidor onde o código fonte está em execução.
Pode-se verificar a ação do Cache neste momento, ao entrar no site pela primeira vez o carregamento da página foi um pouco lento e se nesse exato momento você apertar o botão F5 do seu teclado perceberá que esta página irá carregar bem mais rápido do que a primeira vez. Isto se deve a ação do Cache, no primeiro acesso a página o servidor é contato e os dados são recebidos pelo seu computador, que armazena estes dados no Cache permitindo assim que no futuro a ação seja executada com maior rapidez.
Vantagens:
· Session
o Aceita qualquer tipo de variável e pode ser acessada a todo o momento, lembrando sempre de verificar se o valor adicionado não é nulo ou se ainda a sessão não for perdida.
o Muito boa para trafegar pequenos dados como algumas variáveis ou valores de referência.
· ViewState
o Excelente para quem deseja armazenar informações numa página que precisa ser recuperada de maneira rápida e prática, ou ainda algum valor que é de real importância para a página.
· Cache
o Rapidez na aquisição da informação uma vez que a mesma já se encontra carregada.
o Possibilidade de configuração para estender o cachê a longos períodos como horas.
Desvantagens:
· Session
o Possui timeout que pode dificultar a recuperação dos dados.
o Deve-se tomar cuidado ao adicionar valores, pois a Session não “estoura” como um array ela simplesmente sobrescreve os dados.
· ViewState
o Não Transporta valores entre as páginas, é único para cada página.
o Não recria dinamicamente os controles da página.
o Não restaura os valores dos controles após o postback.
o Quanto maior o ViewState mais pesada/lenta fica a página.
· Cache
o Possibilidade de StackOverFlow se não for bem controlado.
Várias configurações podem ser feitas para estas três ferramentas, mas estas serão abordadas junto das demonstrações nos próximos artigos.
Abraços!