Como implementar baseado em chaves dependências para dados colocação em cache no ASP.NET utilizando o Visual Basic .NET

Traduções de Artigos Traduções de Artigos
Artigo: 312358 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Utilize este guia passo-a-passo para implementar baseado em chaves dependências de cache de dados numa aplicação do ASP.NET.

Este exemplo cria e insere um objecto DataSet uma cache com uma dependência definir no outro item de entrada de cache referenciando a chave. Para obter informações adicionais e exemplos de dados em cache com dependências baseado no tempo ou baseado em ficheiros, consulte a secção REFERENCES deste artigo.

Back to the top

Requisitos

A lista seguinte descreve o hardware recomendado, software, infra-estrutura de rede e service packs que necessita:
  • Microsoft Windows 2000 ou Microsoft Windows XP.
  • Microsoft Internet Information Services (IIS).
  • Microsoft .NET framework.
  • Microsoft SQL Server.
Back to the top

Criar uma aplicação Web do ASP.NET utilizando o Visual Basic .NET

O seguinte procedimento cria uma nova aplicação Web do ASP.NET com o nome DataCacher
  1. Inicie o Microsoft Visual Studio NET..
  2. No menu ficheiro , aponte para Novo e, em seguida, clique em projecto .
  3. Na caixa de diálogo Novo projecto , em Project Types , clique em Projectos do Visual Basic . Em modelos , clique em ASP.NET Web Application .
  4. Na localização da caixa, substitua WebApplication # com o novo nome de projecto: DataCacher . Se estiver a utilizar o servidor local, deixe o nome do servidor como http://localhost . Caixa localização é semelhante ao seguinte:
    http://localhost/DataCacher
Back to the top

Criar o formulário de Web

Nota Para obter informações adicionais, consulte a secção "Executar o código" deste artigo.
  1. Adicione um novo formulário da Web denominado DataCacheSample.aspx para o projecto no Visual Studio. NET. Para o fazer, siga estes passos:
    1. Clique com o botão direito do rato no nó de projecto no Solution Explorer, aponte para Adicionar e, em seguida, clique em Adicionar novo formulário da Web .
    2. Nome do formulário da Web DataCacheSample.aspx e, em seguida, clique em Abrir .
  2. No Visual Studio .NET Integrated Development Environment (IDE), mude para vista Estrutura.
  3. Adicione um botão de formulário da Web à página:
    1. Arraste um botão de formulário da Web para a página.
    2. Seleccione o botão do formulário da Web. Altere a propriedade ID para CreateNewOrCached e altere a propriedade de texto para Em Criar nova ou cache .
  4. Adicione um segundo botão de formulário da Web:
    1. Arraste o outro botão de formulário da Web para a página e coloque-seguir ao botão CreateNewOrCached .
    2. Seleccionar o botão do formulário da Web, altere a propriedade ID para RemoveEntry e, em seguida, altere a propriedade de texto para RemoveEntry .
  5. Adicione uma etiqueta de formulário da Web:
    1. Arraste um rótulo de formulário da Web para a página a partir da caixa de ferramentas .
    2. Seleccione o rótulo de formulário da Web, altere a propriedade ID para CacheStatus e, em seguida, desmarque a propriedade de texto .
  6. Adicione um DataGrid:
    1. Arraste um controlo de formulário da Web DataGrid para a página. Mantenha a propriedade de ID predefinido do DataGrid1 .
Back to the top

Adicione o código

Adicione código para inserir itens de cache, para remover itens de cache e criar a dependência da cache:
  1. Clique com o botão direito do rato na página .aspx e, em seguida, clique em Código para visualizar o código.
  2. Adicionar espaços de nomes seguintes na lista de espaço de nomes:
    Imports System.Data.SqlClient
    Imports System.Web.Caching
    						
    NOTA: se o espaço de nomes for omitido, ou se tiver uma listagem redundante dos espaços de nomes, receberá uma mensagem de aviso.
  3. Mudar para a vista de estrutura.
  4. Faça duplo clique no botão CreateNewOrCached para visualizar o código para o evento CreateNewOrCached_Click . Adicione o seguinte código ao evento CreateNewOrCached_Click .

    Nota Este código requer a instalação pubs o servidor SQL da base de dados.
         Private Sub CreateNewOrCached_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CreateNewOrCached.Click
            ' Create a DataSet object from the cache entry with the
            ' CacheDataSetEmployees key.
            Dim CacheDataSetEmployees As Object = CType(Cache.Get("CacheDataSetEmployees"), DataSet)
    
            ' Verify if the object is null.
            If (CacheDataSetEmployees Is Nothing) Then
    
                ' Set a value for the cache entry that serves as the 
                ' key for the dependency.
                Cache("SqlPubsEmployees") = "SomeValue"
    
                ' Create the array of cache key item names.
                Dim keys() As String = {"SqlPubsEmployees"}
    
    
                Dim ds As DataSet = New DataSet()
                ' Create the connection and pass in the ConnectionString.
                Dim MySqlConn As SqlConnection = New SqlConnection("Server=localhost;Database=Pubs;uid=sa;pwd=")
                ' Create the Data Adapter and pass the command text and 
                ' connection to use.
                Dim MySda As SqlDataAdapter = New SqlDataAdapter("SELECT TOP 10 * FROM Employee", MySqlConn)
                ' Populate the DataTable "Employees" in the DataSet.
                MySda.Fill(ds, "Employee")
                ' Set the DataGrid's DataSource to the "Employee" DataTable.
                DataGrid1.DataSource = ds.Tables("Employee")
    
                ' Create a dependency object referencing the array of cache 
                ' keys (keys).
                Dim MyDependency As New CacheDependency(Nothing, keys)
    
                ' Insert the DataSet into Cache with a dependency on 
                ' MyDependency
                Cache.Insert("CacheDataSetEmployees", ds, MyDependency)
                MySqlConn.Close()
    
                ' Display the status of the DataSet/Cache Entry.
                CacheStatus.Text = "New Version Created"
    
    
            Else
    
                ' Display the status of the DataSet/Cache Entry.
                CacheStatus.Text = "Cached Version Used"
                ' Set the DataSource to the cached version of the DataSet.
                DataGrid1.DataSource = CacheDataSetEmployees
            End If
    
            ' Bind the DataGrid to the DataSource.
            DataGrid1.DataBind()
    
        End Sub
    						
    Nota modificar ConnectionString no código supramencionado para funcionar correctamente com o SQL Server.
  5. Voltar à vista Estrutura no DataCacheSample.aspx página.
  6. Faça duplo clique no botão RemoveEntry para visualizar o código de evento RemoveEntry_Click .
  7. Adicione o seguinte código ao evento RemoveEntry_Click :
    Private Sub RemoveEntry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RemoveEntry.Click
            ' Remove the cache item listed in the CacheKeys array (keys).
            Cache.Remove("SqlPubsEmployees")
    
            ' Display the status of the cache item.
            CacheStatus.Text = "Cache Item Removed"
    End Sub
    					
  8. No menu ficheiro , clique em Guardar tudo para guardar o formulário da Web e outros ficheiros de projecto associado.
  9. Criar o projecto: no menu criar do Visual Studio .NET IDE, faça clique sobre Criar soluções .
Back to the top

Executar o código

  1. Com o botão direito do rato na página DataCacheSample.aspx no Solution Explorer e, em seguida, clique em View in browser .
  2. Clique no botão CreateNewOrCached . O nome de CacheStatus apresenta a Nova versão criado e o controlo DataGrid é preenchido.

    notas :
    • A definição de Nova versão criado para o rótulo CacheStatus aparece porque a chave de cache CacheDataSetEmployees não referencia um item de cache válido quando introduz o evento. Neste caso, DataSet é criada, o controlo DataGrid é dependente de DataSet e DataSet é introduzido para a cache utilizando a chave de cache CacheDataSetEmployees .
    • É criado um novo objecto CacheDependency denominado MyDependency . O objecto MyDependency é listado como a dependência para o item CacheDataSetEmployees quando é adicionado à cache utilizando o método de Inserir . Apesar deste exemplo demonstra baseado em chaves dependências, também pode utilizar outros tipos de dependência baseadas em cache critérios, tais como ficheiro ou carimbo de data/hora.
  3. Clique no botão CreateNewOrCached novamente.

    Note que a etiqueta CacheStatus apresenta Utilizado de versão em cache . Isto significa que o DataSet em cache está a ser utilizado. Para verificar se se trata de dados em cache, modificar um dos registos apresentados na base de dados Pubs utilizando o SQL Query Analyzer ou outra ferramenta. Depois de modificar o registo, clique novamente no botão CreateNewOrCached . Repare que as alterações efectuadas não são apresentadas. Clique em RemoveEntry e clique em CreateNewOrCached novamente para ver as alterações efectuadas à base de dados.
  4. Clique no botão RemoveEntry .

    Note que a etiqueta CacheStatus apresenta Removido do cache de produto . O item de cache com a chave SqlPubsEmployees é removido utilizando o método Cache.Remove no evento RemoveEntry_Click . A matriz que contém o nome de chave de cache do item removido é listada com MyDependency quando é criado. O item CacheDataSetEmployees será removido porque foi criada utilizando o método Inserir e referências MyDependency como respectivo parâmetro de dependência.
  5. Clique novamente em CreateNewOrCached .

    Note que a etiqueta CacheStatus apresenta a Nova versão criado . O DataSet é criado based de facto já não existe na cache quando o evento é accionado.

    Além disso, repare que o controlo DataGrid é apresentado como povoada com dados mesmo após a remoção da cache do item DataSet . Isto acontece porque a propriedade EnableViewState estiver definida como true por predefinição. Isto mantém o estado do controlo e não está relacionado com a manipulação de entrada de cache no código. Para obter uma representação visual mais do estado do controlo em cada fase, defina EnableViewState como Falso .
Numa situação mundo real, a matriz de chave de cache (neste exemplo, a matriz de chaves ) poderá conter chaves de cache para outras tabelas ou outros itens de cache. Se um essas alterações de itens, em seguida, na cache de entrada (neste exemplo, CacheDataSetEmployees ) para o item criado com esta dependência é removido da cache. Pode reagir através de uma chamada de retorno se for necessário. Para mais informações sobre as chamadas de retorno, consulte a secção "Referências" mais adiante neste artigo.

Back to the top

Resolução de problemas

  • Nomes de chaves listados na matriz cache chaves têm de ser associados a itens de cache real. Se não estiverem, o item para o qual a dependência é utilizada não será mantido na cache correctamente--por exemplo, se a matriz de chaves no código de exemplo contém outro elemento de matriz e o elemento é definido para um nome de chave de cache inválido.
  • A matriz de chaves de cache tem sem significado específico até que é utilizado com um objecto CacheDependency .
  • Se inserir um item para a cache com nenhuma dependência ou outra expiração, o controlo de tempo de execução determina quando remover o item da cache.
Back to the top

Referências

Para obter informações sobre CacheItemRemovedCallback , visite o seguinte Web site da Microsoft:
CacheItemRemovedCallback delegado
http://msdn2.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback(vs.71).aspx
Nota CacheItemRemovedCallback define um método de chamada de retorno para notificar aplicações quando um item em cache é removido da cache.

Para obter informações sobre a classe CacheDependency , visite o seguinte Web site da Microsoft:
Classe CacheDependency
http://msdn2.microsoft.com/en-us/library/system.web.caching.cachedependency(vs.71).aspx
A classe CacheDependency controla as dependências de cache, tais como ficheiros, pastas ou chaves para outros objectos na cache da aplicação.

Para obter uma breve descrição geral das várias cache opções disponíveis para o ASP.NET, visite o seguinte Web site da Microsoft:
Adicionar itens à cache
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaddingitemstocache.asp
Para obter informações adicionais, clique nos números de artigo existentes abaixo para visualizar os artigos na Microsoft Knowledge Base:
305140INFO: Plano de ASP.NET
307225Descrição geral de colocação em cache do ASP.NET
Back to the top

Propriedades

Artigo: 312358 - Última revisão: 24 de fevereiro de 2014 - Revisão: 4.5
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kbcaching kbdatabase kbhowtomaster KB312358 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 312358

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com