segunda-feira, 28 de setembro de 2009

Boas Práticas ao usar Session

Usar Session de maneira inadvertida em uma aplicação web pode trazer uma séria de dores de cabeça, como memory leak, lentidão no servidor, perda de escalabilidade dentre outros.

Portanto sempre devemos estar de olho nas Session, elas tem de ser bem gerenciadas.

Aconselho duas técnicas para gerenciar melhor a Session.

Exemplo 1 - Usando propriedades dentro do Controller ou no CodeBehind (no caso do ASP .NET com WebForms):


public class MyController : Controller
{
public int MyProp
{
get
{
return (int)Session["MyProp"];
}
set
{
Session["MyProp"] = value;
}
}

//OU - Com TempData é Melhor

public int MyProp2
{
get
{
return (int)TempData ["MyProp2"];
}
set
{
TempData ["MyProp2"] = value;
}
}
}

Exemplo 2 - Usando propriedades dentro do uma classe estática:


public static class SessionContext
{
//Aqui não da para usar o TempData o que não é legal

//Usuário logado na aplicação.
public static Model.Usuario Usuario
{
get
{
return (Model.Usuario)HttpContext.Current.Session["Usuario"];
}
set
{
HttpContext.Current.Session["Usuario"] = value;
}
}
}

Usando classes e propriedades para gerenciar o que você guarda na Session reduz o risco de se manter objetos na mesma.
Com isto quando um problema de performance ocorrer será mais fácil corrigi-lo.

Nenhum comentário:

Postar um comentário