Demonstra Passo a passo: Usando o cache com o SQL servidor de saída do ASP.NET

Este passo a passo mostra como armazenar em cache páginas ASP.NET que dependem de dados em um banco de dados do SQL Server.

Um recurso avançado de cache de saída do ASP.NET é a dependência de cache do SQL.A dependência de cache do SQL permite que você armazene em cache páginas que são dependentes de dados de tabelas do SQL Server.Você pode configurar o SQL Server e o ASP.NET para armazenar solicitações de cache de página, reduzindo a carga de trabalho do servidor, até que os dados dos quais a página depende tiverem sido atualizados no SQL Server.A dependência de cache do SQL é útil para dados como catálogos de produtos ou informações de registro de clientes que permanecem comparativamente estáticos.

Tarefas ilustradas nesta explicação passo a passo incluem:

  • Criar e configurar uma página para exibir dados do banco de dados Northwind.

  • Ativar um banco de dados para notificação de cache do SQL.

  • Especificar a dependência de cache do SQL em sua página e em seu arquivo Web.config.

  • Fazer alterações no banco de dados Northwind e exibir o comportamento do cache.

Pré-requisitos

A fim de concluir este explicação passo a passo, será necessário:

  • Acesso ao SQL Server 2000 ou o SQL Server 2005 com o banco de dados Northwind.

  • Acesso ao banco de dados do SQL Server Northwind.Para obter informações sobre como baixar e instalar o banco de dados Northwind de exemplo do SQL servidor, consulte Instalando o banco de dados de exemplo no Microsoft SQL servidor Web site.

    Observação:

    Se você precisa de informações sobre como efetuar o logon para o computador que está executando o SQL Server, contate o administrador do servidor.

  • Microsoft Data Access Components (MDAC) versão 2.7 ou posterior.

    Se você estiver usando o Windows XP ou Windows Server 2003, você já tem o MDAC 2.7.Contudo, se estiver utilizando Windows 2000, você pode necessitar atualizar o MDAC já instalado no seu computador.Para mais informações, consulte o artigo do MSDNInstalação do MDAC.

  • O .NET Framework versão 2,0.

Criando o Site Web

Se você já tiver criado um site Web no Desenvolvedor Visual Web (consulte Demonstra Passo a passo: Criando um Basic página da Web no Visual Web Developer), você pode usar este Web site e ir para "Habilitando Notificação Cache para Servidor SQL" neste passo a passo.Caso contrário, crie um novo site e página usando o procedimento a seguir.

Para criar um site do sistema de arquivos

  1. Abra o Visual Web Developer.

  2. No menu File, clique em NewWeb Site.(Em Visual Web Developer Express Edition, no menu File clique emNew e em Web Site).

    The Novo site caixa de diálogo é exibida.

  3. Em O Visual Studio installed templates, clicar Site da Web do ASP.NET.

  4. Na caixa Location, insira o nome da pasta onde você deseja manter as páginas do seu site.

    Por exemplo, digite o nome da pasta C:\WebSites.

  5. Na lista Language, clique a linguagem de programação com a qual você prefere trabalhar.

  6. Clique em OK.

    Visual Web Developer cria a pasta e uma nova página chamada Default.aspx.

Ativando Notificação de Cache para o SQL Server

Você deve configurar o SQL Server para fornecer uma notificação adequada para o ASP.NET sobre alterações nos dados dependentes.Precisará de privilégios administrativos para configurar o servidor.

Para ativar a notificação de cache para SQL Server

  1. No menu Start do Windows, aponte para All Programs, para Accessories e clique emCommand Prompt para abrir uma janela do prompt de comando.

  2. Localize o arquivo executável Aspnet_regsql.exe em sua unidade de disco.Esse arquivo é instalado com o .NET Framework versão 2.0 no local a seguir:

    %windir%\Microsoft.NET\Framework\FrameworkVersion
    

    Tenha certeza que %windir% representa seu diretório Windows e a versão .NET Framework é 2.0 ou mais recente.O caminho pode ser semelhante ao seguinte:

    C:\WINDOWS\Microsoft.NET\Framework\v2.0.40217
    
  3. Use o seguinte comando para ativar a notificação de cache para a tabela Employee, no banco de dados Northwind:

    aspnet_regsql.exe -S <Server> -U <Username> -P <Password> -ed -d Northwind -et -t Employees
    
    Observação:

    Serão necessários privilégios administrativos ou a conta e senha administrativa e senha.Se você não tiver essas informações, contate seu administrador do banco de dados.

    Uma mensagem aparecerá indicando o êxito ou falha ao ativar o banco de dados.A seguinte mensagem indica êxito:

    Enabling the table for SQL cache dependency.
    ..
    Finished.
    

Adicionando uma Conexão de Dados ao Projeto

Para trabalhar com o banco de dados do SQL Server no Visual Web Developer, você precisa adicionar uma conexão para o banco de dados Northwind.

Para adicionar uma fonte dados para o projeto

  1. Em Server Explorer (Database Explorer no Visual Web Developer Express Edition.), clique com o botão direito do mouse em Data Connections e, em seguida, clique em Add Connection.

    Observação:

    O Server Explorer (Database Explorer no Visual Web Developer Express Edition) normalmente está ancorado atrás do Solution Explorer.

    Se Server Explorer (Database Explorer no Visual Web Developer Express Edition) não estiver visível, no menu View, clique em Server Explorer (Database Explorer no Visual Web Developer Express Edition).

  2. Se a caixa de diálogo Choose Data Source for exibida, faça o seguinte:

    1. Na lista Data source, clique em Microsoft SQL Server.

    2. Na lista Data provider, clique em .NET Framework Data Provider for SQL Server.

    3. Clique em Continue.

  3. Na caixa de diálogo Add Connection, forneça os detalhes (nome do servidor, as credenciais de login e assim por diante) para seu banco de dados e selecione o banco de dados Northwind.

  4. Clique em OK.

Adicionando um Carimbo de Data / Hora e Dados à Página da Web

Agora você pode criar um página da web para demonstrar cache.Nesta seção você adicionará uma estampa de tempo que irá rastrear o tempo de criação da página e um controle GridView para ver a tabela de Empregados do banco de dados Northwind.

Para adicionar um carimbo de data / hora e dados na página da web

  1. Alterne para ou abra a página Default.aspx.

  2. Alternar para modo Design.

  3. Do grupo Padrão na caixa de Ferramentas, arraste um controle Label para a página, deixando o nome padrão Label1.

  4. Em Server Explorer (Database Explorer no Visual Web Developer Express Edition), expanda Data Connections

  5. Expanda o nó para a conexão de dados que você criou anteriormente.

  6. Expanda o nó Tables.

  7. Arraste a tabela Employees para a sua página.

    Visual Web Designer cria um controle GridView que é configurado para usar a conexão e a tabela que você selecionou.

  8. No menu GridView Tasks, clique em Configure Data Source.

    O nome de sequência de conexão de dados padrão NorthwindConnectionString1 aparece na primeira etapa do assistente Configure Data Source.

  9. Clique em Next.

  10. No painel Configure Select Statement, selecione Specify columns from a table or view.

  11. Na lista Name, clique em Employees.

  12. Na lista Columns, selecione as colunas EmployeeID, LastName e FirstName.

  13. Clique em Next.

  14. Clique em Finish.

    Visual Web Designer configura o controle GridView para exibir os dados que você selecionou.

    Observação:

    Se você ver uma mensagem perguntando se você quer atualizar os campos e chaves do controle GridView, clique Sim.

  15. Clique duas vezes em uma parte em branco da página .

    O designer gera um método Page_Load e troca as vistas.

  16. Adicione o seguinte código realçado para exibir um carimbo de data/hora que indica a criação da página:

    Protected Sub Page_Load(ByVal sender As Object, _
            ByVal e As System.EventArgs) _
            Handles Me.Load
         Label1.Text = System.DateTime.Now
    End Sub
    
    protected void Page_Load(Object sender, System.EventArgs e)
    {
         Label1.Text = System.DateTime.Now.ToString();
    }
    
  17. Salve o arquivo.

Testando a Página com Cache

Agora você pode executar a página e observar o comportamento sem cache.A página é carregada e a data/hora atual do servidor é exibida, e em seguida, os dados são recuperados e colocados na página.

Para testar a página sem cache

  1. Pressione CTRL+F5 para executar a página.

  2. Atualize a página no navegador

    Observe que o carimbo de data/hora altera a cada atualização da página.Os dados permanecem os mesmos.

Configurando a Página da Web para Cache

Para esta parte do passo a passo, você irá configurar a página para a dependência de cacho do SQL baseada na tabela Emplyees do banco de dados Northwind.

Para configurar a página da web para cache

  1. Alterne para modo de origem.

  2. Na parte superior da página, adicione a seguinte diretiva para indicar a dependência:

    <%@ OutputCache Duration="3600" SqlDependency="Northwind:Employees" VaryByParam="none" %>
    

O atributo VaryByParam indica se ASP.NET deveria levar em consideração os parâmetros da página (como buscar uma string ou valores postados) na cache.Quando VaryByParam estiver configurado para none, nenhum parâmetro será considerado, todos os usuários tem a mesma página enviada independentemente de qualquer parâmetros adicionais fornecidos.Configurando VaryByParam para * (um asterisco) significa que para cada combinaçao única de parâmetros de requerimento uma única página será armazenada na cache.**Contudo, configurando VaryByParam para * pode gerar muitas versões diferentes da página armazenadas, então se você souber os parâmetros variantes a cada armazenamento, é recomendado que você especifique explicitamente no atributo VaryByParam.Para obter detalhes, consulte:Armazenando Múltiplas Versões de uma Página.

Definindo a Configuração de Cache no Arquivo Web.config

Adicionalmente à declaração OutputCache na sua página Web na seção precedente, você deve especificar os detalhes de armazenamento no arquivo Web.config.

Para criar e atualizar o arquivo Web.config

  1. Se o site já tiver um arquivo Web.config, vá para a etapa 4.

  2. No Solution Explorer, clique com o botão direito do mouse no nome do seu site e clique em Add New Item.

  3. Na caixa de diálogo Add Item, clique em Web Configuration File e em Add.

    Certifique-se de usar o nome Web.config.

  4. Adicione o seguinte XML à página Web.config como um filho do elemento system.web:

    <!-- caching section group -->
    <caching>
      <sqlCacheDependency enabled = "true" pollTime = "1000" >
        <databases>
          <add name="Northwind" 
             connectionStringName="NorthwindConnectionString1"
             pollTime = "1000"
          />
        </databases>
      </sqlCacheDependency>
    </caching>
    
    Observação:

    O nome de sequência de caracteres de conexão NorthwindConnectionString1 foi estabelecido anteriormente quando você criou a conexão de dados.Se a sequência de conexão tiver um nome diferente, substitua esse nome.

    Observação:

    As credenciais da conta especificada na sequência de conexão devem ter privilégios suficientes para pesquisar no banco de dados

  5. Salve o arquivo e feche-o.

Testando a Página com Cache

Com cache ativado, atualizar a página não resultará mais em um carimbo de data / hora atualizado ou em uma consulta de banco de dados, porque o ASP.NET atenderá a solicitação de página do cache.

Para testar a página com cache

  • Pressione CTRL+F5 para executar a página.

    Observe que o carimbo data/hora permanecerá o mesmo a cada atualização da página.A página estará sendo recuperada do cache.

Alterando os Dados

Agora você pode alterar os dados no banco de dados e ver que o cache é invalidado e uma nova página é criada.

Para alterar os dados

  1. Em Server Explorer (Data Explorer no Visual Web Developer Express Edition), expanda o nó Data Connections.

  2. Expanda a conexão que você criou anteriormente.

  3. Expanda o nó Tables.

  4. Clique com o botão direito do mouse em Employees e, em seguida, clique em Show Table Data.

  5. Atualize o banco de dados editando qualquer campo da tabela de dados, garantindo que ele seja um campo que está sendo exibido em sua página da web.

    Como alternativa, você pode utilizar o painel do SQL (se o painel do SQL não estiver visível, no menu Query Designer, clique em Pane e em seguida, clique em SQL).Insira um comando SQL diretamente e clique no botão Executar SQL na barra de ferramentas Query Designer.Por exemplo, execute o seguinte comando:

    UPDATE dbo.Employees SET LastName = 'Doe' WHERE (EmployeeID = 5)
    

    Isso altera o nome de funcionário 5 para Doe.

  6. Feche o modo de exibição de dados.

Testando a Dependência de Cache do SQL

Agora você pode testar a página para ver se os dados e o carimbo de data / hora alteraram.

Para testar a dependência de cache do SQL

  1. Pressione CTRL+F5 para executar a página.

    Observe que o carimbo data/hora foi alterado e que os novos dados são exibidos.

  2. Pressione CTRL+F5 para executar a página novamente.

    Agora o carimbo data/hora permanecerá o mesmo porque os dados não mudaram, e a página está sendo recuperada novamente a partir do cache.

Próximas etapas

Você pode armazenar em cache páginas usando outros parâmetros.Para obter mais informações, consulte: Explicação passo a passo: Usando cache de saída para melhorar o desempenho de site da Web.Se você não é familiar com acesso a dados, consulte Explicação passo a passo: Acesso básico a dados em páginas da Web.

Consulte também

Conceitos

Armazenamento em ASP.NET com a Classe SqlCacheDependency

Referência

DefaultHttpCachePolicy

OutputCacheSettingsSection