DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

ASP.NET: Otimizando a geração do viewState com uso da sessão

Veja nesta dica, como otimizar a geração do viewState com uso da sessão em páginas ASP.NET.

ASP.NET: Otimizando a geração do viewState com uso da sessão

O ASP.NET faz muito uso do campo hidden __VIEWSTATE para guardar informações sobre os webControls através dos postbacks.

O problema é que o ViewState pode crescer muito, especialmente quando utilizando gridViews. Esse crescimento afeta a performance do site, pois as paginas ficam maiores, consumindo mais transferência entre o servidor e o client.

Uma solução para isso é armazenarmos o viewState no ambiente de sessão. Desta forma o estado dos webControls estarã em sessão e não na página, evitando uma grande transferência.

Isso é possível desde o .NET 1.1, mas ficou muito mais fácil com o uso de pageAdapters no .NET 2.0

Primeiramente criamos uma classe pageAdapter e fazemos overrides no método que gera o objeto de persistência, substituindo o objeto por uma persistência em sessão :

Imports Microsoft.VisualBasic

Public Class MeuAdapter
Inherits System.Web.UI.Adapters.PageAdapter

Public Overrides Function GetStatePersister() As System.Web.UI.PageStatePersister

Return (New SessionPageStatePersister(Me.Page))
End Function

End Class

Depois configuramos o pageAdapter no web.config de forma que seja utilizado por todas as páginas :

<browsers>
<browser refID="Default">
<controlAdapters>
<adapter controlType="System.Web.UI.Page"
adapterType="MeuAdapter" />
</controlAdapters>
</browser>
</browsers>



Pronto, o viewState das páginas estará sendo guardado em sessão ao invés de ser gerado na página.
Mas fique atento: Se a sessão estiver no stateServer ou SQLServer a performance pode piorar ao invés de melhorar. Faça testes cuidadosos nesses casos.








    1 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.



Clayton
Mas e se meu site tiver uma média de 15mil usuários contectados simuntaneamente? Como fica a memória do servidor? XD~~~~


em 20/8/2007 17:25 - Responder

 



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Tipster .net

Dicas sobre .NET




Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03