LAYERDEV

 Busca Online:

 
Seja bem vindo(a) Visitante, você não está logado deseja logar
no portal para participar de serviços e promoções ? clique aqui.


No caso de perder a senha, acesse aqui e receba por e-mail.
Deseja entrar em contato conosco, acesse aqui e mande-nos um e-mail.

Cache

por Mauricio Junior em 1/1/2011 0

 

Bom, estou disposto a 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 da Microsoft chamada Visual Studio.NET, o sistema do tipo WEB tem entrado mais no mercado com aceitação de clientes; tanto para intranet ou internet.

 

Problema

 

Com o uso popular da internet, a briga para carregar o site na tela mais rápido possível em um custo baixo é prioridade, ou seja, mesmo com a conexão do usuário final seja lenta, o site deve aparecer no browser do usuário final 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 você desenvolvedor. Pode melhorar consideravelmente toda página, principalmente para páginas complicadas que precisam ir ao banco de dados a todo o momento e mostrar ao usuário as informações do banco de dados.

  

 

O “cache” pode ser feito de duas maneiras no ASP.NET: (Referência c-1.1)

 

 

- Uma com código dentro da página ASPX.CS ou ASPX.VB;

- Outra colocando uma tag no cabeçalho do arquivo ASPX.

 

Referência: c-1.1

 

Codificando

 

Primeira forma:

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

 

 

    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));

    }

 

Referência: c-1.2

 

Note que criei um método chamado GetCache(), não recebe valores, não envia valores e é protegido para aquela classe específica. Ele apenas pega o uso do “cache" no servidor, ou seja, se estiver 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 colocar um tempo legal e ideal para seu sistema e site, tudo exagerado demais não é bom.

 

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();

        }

    }

Referência: c-1.3

 

O método foi acrescentado junto ao método Page_Load da página, com isso 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)

 

Referência: 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 receba ou não. No meu caso, não precisarei de parâmetro, coloquei “none”.

 

 

 

Dúvida

 

Qual das duas formas usar ? Bom fazendo o teste, 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”; mesmo que da outra forma também funcione corretamente.

 

 

 

 

Livros publicados:

 

 

 

Espero ter ajudado de alguma forma.

Qualquer dúvida, favor entrar em contato pelo e-mail: mauricio@aspneti.com.

 

Mauricio Junior

www.aspneti.com

www.mauriciojunior.org

 

voltar   comente  subir

Download Copy





 
Mauricio Junior Formado pela Faculdade Anhanguera, Especialista pela FGV (Fundação Getúlio Vargas), Pós-Graduação em Docência Superior e cursando Mestrado na UNB Engenharia Elétrica; .
Tenho 29 anos e possuo sete livros publicados pela editora Ciência Moderna. Sou Certificado Microsoft MCP, MCAD e MVP, faço parte da comunidade ASPNETI.COM, ECODE10.COM, onde publico artigos, vídeos, ebooks e livros Publico artigos, vídeos e podcast em outras comunidades. Trabalho como Analista de Sistemas / Desenvolvedor na empresa ATP S/A. Blog: blog.mauriciojunior.org, Site pessoal www.mauriciojunior.org



Comentários:


Comente (dê sua opinião):

Comentário:
Código Imagem:  (digite o código da imagem respeitando maiúsculo e minúsculo)

Favor digitar o código da imagem para cadastramento.

 

Outros Artigos do Autor

Gerando Relatório e Exportando para o Excel Com Visual Studio.Net 2005
Vídeo - Themes/Skin/Stylo
Sistema de Login – Parte IV
MSDN Media Center - download de vídeos
Prepare o Sql Server para o VS 2005
Ordenando no DataTable
URL Routing com o Visual Studio .NET 2010
Microsoft Research Laptop Multi-Touch
Visual SourceSafe - Série 4
VSS Versionador - Resumão
IsWholeNumber
Vídeo - Serviços do Windows Live
Criando a Tag Cloud em C#
Samsung em NYC
XmlDataSource
Chamando Programas de Dentro do Windows Forms
Gravando Erros com Exception - Parte I
Deletando todos os arquivos
Novo TechNet Experience Online
Windows Phone 7 Jump Start
Criando Números Aleatoriamente
Limpando Cache do Brownser
Loja Apple (a2you.com.br) feita em .NET (Microsoft)
Arrumando seu Desktop
Themas - Muito Simples
Pagamento via celular
Tópicos: Criptografia de Dados
Heroes {Community} Launch - Brasilia/DF
Pegando IP da Máquina com CSharp
Trabalhando com GridView e RowCommand
Saiba ganhar dinheiro navegando na internet
Windows Phone 7 Multi Touch
Sistema de Login em ASP – Parte VI
Método SHA384
Label Server Control AccessKey




eCode10 Magazine 4 Edição

Baixe a sua sem pagar nada, basta apenas ter um cadastro na comunidade aspneti.com ou ser usuário do ecode10.com.



Edições anteriores
LAYERDEV

Notícias *

Visão do Futuro - Day of Glass 2

Futuro próximo pode chegar cedo?...

Lenovo de 14 polegadas IdeaPad

Veja o novo notebook Lenovo IdeaPad...

Windows 8 Store

Channel9 publica um vídeo da Windows Store...

Sony Vaio série Z

Novo Vaio Ultrabook? ou não Ultrabook?...

Samsung quer comprar RIM

Imagine se juntar as duas companhias...

Surface 2.0 mostrado

Novo Surface é mostrado de forma incrível...

Skype Tablet

Será que esse skype tablet pega mesmo?...

Lenovo e o seu novo Ultrabook

Ultrabook chega também pela Lenovo...

Promoções de livros móveis .NET

Baixa agora o seu e aprenda a programar....




NETITC