recurso que posso chamar de antigo, pois notei que muitos o desconhecem apesar de ser muito util e facil de implementar. Perfis de CacheEste recurso possibilita ao usuario definir perfis no arquivo de configuracao de sua aplicacao web.config, onde e possivel configurar todos os parametros do cache e esta configuracao pode ser aplicada a uma ou a N pagina de sua aplicacao, abaixo segue um exemplo da configuracao de um perfil: <caching> <outputCacheSettings> <outputCacheProfiles> <add name="cacheteste" enabled=true duration="60" varyByParam= /> </outputCacheProfiles> </outputCacheSettings> </caching> Listagem 01. Definicao de um perfil de cache. Customizando CacheDependencyEste recurso possibilita ao usuario criar uma classe customizada de dependencia de cache, onde e preciso somente que a classe customizada herde a classe CacheDependency e implemente uma regra qualquer para expirar o cache. SqlCacheDependencyEste recurso possibilita ao usuario definir uma dependencia de cache ligada diretamente a uma tabela ou a uma linha especifica de uma tabela do SQL Server, onde ao ser modificada a linha ou a tabela o dado existente no cache e automaticamente removido. O ASP.NET pode gerenciar modificacoes feitas em tabelas a partir da versao 7 do SQL Server, porem para gerenciar modificacoes em uma linha especifica e necessario a utilizacao do SQL Server 2005. Seguimentando CacheEste recurso possibilita ao usuario definir uma area de sua pagina que nao sera armazenada no cache. Entao parte sera armazenada e parte nao sera, por exemplo, voce tem uma pagina que exibi dados de um banco de dados, mas tambem exibi dados estaticos entao e possivel definir que a area estatica nao sera armazenada no cache. Ja que nao ha necessidade para tal. Usando CacheDependencyPesquisando e conversando com alguns amigos sobre a utilizacao de uma logica de cache em nossas aplicacoes descobri que poucos sabiam que existe a possibilidade de associar um objeto existente no cache a uma dependencia nao fisica e os que sabiam nunca implementaram tal ideia. Para implementar uma dependencia como mencionado acima, devemos utilizar o que chamamos de keys, o ASP.NET fornece um overload na classe CacheDependency que recebe como parametro um array de string contendo os identificadores de objetos contidos no cache que serao as dependencias a imagem 01 possibilita um entendimento melhor deste metodo. Figura 01. Overload da Classe CacheDependency utilizado neste artigo. Este overload permite que sejam utilizadas chaves de itens ja existentes no cache para o ASP.NET se baseie no seu conteudo e identifique quando os objetos de cache dependentes deste devem ser removidos. A listagem 01 demonstra sua utilizacao. public class Clientes{public static readonly string[] ChavesMestre = new string[] {"keyCliente" }; public List<Cliente> Listar(){ List<Cliente> nomes = new List<Cliente>(); System.Web.Caching.Cache dadosCache = HttpRuntime.Cache; if (dadosCache.Get("Clientes") == null) { dadosCache.Insert(ChavesMestre[0], DateTime.Now); nomes.Clear(); nomes.Add(new Cliente(1, "Diego", "diego.dias@2dsolucoes.net")); nomes.Add(new Cliente(2, "Fulano", "fulano.fulano@2dsolucoes.net")); nomes.Add(new Cliente(3, "Fernando", "diego.dfsd@uol.com.br")); nomes.Add(new Cliente(4, "Mario", "atendimento@2dsolucoes.com.br")); System.Web.Caching.CacheDependency cd = new System.Web.Caching.CacheDependency(null, ChavesMestre); dadosCache.Insert("Clientes", nomes, cd); } else { nomes.Clear(); nomes = dadosCache.Get("Clientes") as List<Cliente>; } return nomes; } }Listagem 01. Demonstra como utilizar a dependencia a partir de keys. Como podemos ver na listagem 01 existe um metodo denominado de Listar que e responsavel por listar clientes. Neste metodo