Cache usando Visual Studio.NET 2005

Quero hoje mostrar na prática como utilizar “cache” em sistemas ASP.NET, ou seja, sistemas e sites WEB. Nos dias de hoje, com novas ferramentas e controles da ferramenta do Visual Studio.NET, o sistema do tipo WEB tem entrado mais no mercado com aceitação de clientes, tanto para intranet como para internet.

Problema

Com o uso popular da internet, a briga para carregar o site na tela o mais rápido possível a um custo baixo é prioridade, ou seja, mesmo que a conexão do usuário final seja lenta, o site deve aparecer em seu browser de uma forma rápida e eficaz. Nem todo usuário possui uma conexão banda larga em casa, com isso existe demora do carregamento do site ou sistema. Na demora excessiva da funcionalidade, a empresa poderá perder clientes e vendas, dependendo do estabelecimento.

Solução

O recurso no .NET chamado “cache” veio para tirar todo esse problema de lentidão no sistema ou site, para páginas que possuem os mesmos valores e não têm problemas para manter os dados em “cache”, não precisando ir ao banco de dados; essa solução é ideal e objetiva para o desenvolvedor. Pode melhorar consideravelmente toda página, principalmente as complicadas, que precisam ir ao banco de dados a todo o momento e mostrar ao usuário as informações do BD.

O “cache” pode ser feito de duas maneiras no ASP.NET:

  1. Com código dentro da página ASPX.CS ou ASPX.VB; ou
  2. Colocando uma tag no cabeçalho do arquivo ASPX.

Codificando

  • Primeira forma:

Ativando o “cache” em 10 segundos. (Referência c-1.1)

Note que criei um método chamado GetCache(). Ele não recebe nem envia valores e é protegido para aquela classe específica. Ele apenas pega o uso do “cache” no servidor, ou seja, se houver outro usuário no site ou sistema navegando, será detectado automaticamente e o sistema usará o mesmo “cache”, dados já exibidos para o próximo usuário que entrar, esse tempo é de 10 segundos. Com isso não precisará ir ao banco de dados.

Esses 10 segundos podem ser alterados para quantos segundos quiser. Geralmente não é bom colocar muito tempo, tente encontrar um tempo legal e ideal para seu sistema e site.

Depois de criar o método, basta apenas acrescentar dentro do método Load da página principal .ASPX. (Referência c-1.3)

protected void
GetCache()
 {
 //Uso do cache de saída do servidor
 Response.Cache.SetCacheability(HttpCacheability.Server);
 //Mostra que a página ficará ativa por 10 segundos
 //mantendo o cache
 Response.Cache.SetExpires(DateTime.Now.AddSeconds(10));
 }

Note que criei um método chamado GetCache(). Ele não recebe nem envia valores e é protegido para aquela classe específica. Ele apenas pega o uso do “cache” no servidor, ou seja, se houver outro usuário no site ou sistema navegando, será detectado automaticamente e o sistema usará o mesmo “cache”, dados já exibidos para o próximo usuário que entrar, esse tempo é de 10 segundos. Com isso não precisará ir ao banco de dados.

Esses 10 segundos podem ser alterados para quantos segundos quiser. Geralmente não é bom colocar muito tempo, tente encontrar um tempo legal e ideal para seu sistema e site.

Depois de criar o método, basta apenas acrescentar dentro do método Load da página principal .ASPX. (Referência c-1.3)

protected void Page_Load(object sender, EventArgs e)
{
 GetCache();
 if (!Page.IsPostBack)
 {
 preencheDataList();
 }
 }

O método foi acrescentado junto ao método Page_Load da página, o que resolve muito o problema de lentidão e carregamento das informações.

* Segunda forma:

A outra maneira de ativar o “cache” da página, ou seja, “cache” de saída, é alterar o cabeçalho da página específica (Referência c-1.4).

 <%@ OutputCache Duration="10" VaryByParam="None" %>

Referência: c-1.4

Exemplo na página (Refência c-1.5):

c-1.5

Os atributos e valores OutPutCache Duration e VaryByParam devem estar especificados corretamente na página.

OutPutCache Duration: significa quanto tempo a página será armazenada, esse tempo é medido em segundos;

VaryByParam: significa que quando houver um parâmetro a ser passado do tipo “query string”, o mesmo pode ser colocado no atributo. Dessa forma será feito “cache” da página mesmo que haja parâmetros que recebam ou não. No meu caso, não precisarei de parâmetro, coloquei “none”.
Dúvida

Qual das duas formas usar? É preciso testar. Os dois tipos funcionam corretamente para a função e desempenho. A minha opinião e preferência é usar a primeira opção mostrada, não gosto de mexer muito na página .ASPX, gosto mesmo de codificar em ambiente “code behing”; mas a outra forma também funciona corretamente.

Espero ter ajudado de alguma forma.

via: imasters mauricio jr

assinatura_blog

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s