Cómo implementar las dependencias basada en claves de datos de caché en ASP.NET mediante Visual Basic .NET

Seleccione idioma Seleccione idioma
Id. de artículo: 312358 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Resumen

Utilice a esta guía paso a paso para implementar las dependencias basadas en claves de almacenamiento en caché de datos en una aplicación ASP.NET.

En este ejemplo crea e inserta un objeto DataSet en una caché con una dependencia que se establezca en otro elemento de entrada de caché haciendo referencia a su clave. Para obtener información adicional y ejemplos de datos de almacenamiento en caché con dependencias de archivo o de tiempo, vea la sección de REFERENCES en este artículo.

Back to the top

Requisitos

En la lista siguiente se describe el hardware, el software, la infraestructura de red y los service pack recomendados que se necesitarán:
  • Microsoft Windows 2000 o Microsoft Windows XP.
  • Servicios de Microsoft Internet Information Server (IIS).
  • Microsoft .NET framework.
  • Microsoft SQL Server.
Back to the top

Crear una aplicación Web ASP.NET mediante Visual Basic .NET

El siguiente procedimiento crea una nueva aplicación Web ASP.NET denominada DataCacher
  1. Inicie Microsoft Visual Studio NET..
  2. En el menú archivo , seleccione nuevo y, a continuación, haga clic en proyecto .
  3. En el cuadro de diálogo Nuevo proyecto , en Tipos de proyecto , haga clic en Proyectos de Visual Basic . En plantillas , haga clic en Aplicación Web ASP.NET .
  4. En el cuadro ubicación , reemplace WebApplication # con el nuevo proyecto nombre: DataCacher . Si se utiliza el servidor local, deje el nombre del servidor como http://localhost . El cuadro ubicación similar a ésta:
    http://localhost/DataCacher
Back to the top

Generar formulario Web Forms

Nota Para obtener información adicional, consulte la sección "Ejecutar el código" más adelante en este artículo.
  1. Agregar un WebForm nuevo llamado DataCacheSample.aspx a su proyecto en Visual Studio. NET. Para ello, siga estos pasos:
    1. Haga clic con el botón secundario en el nodo de proyecto en el Explorador de soluciones, elija Agregar y haga clic en Agregar formulario Web nuevo .
    2. Nombre el WebForm DataCacheSample.aspx y a continuación, haga clic en Abrir .
  2. En Visual Studio .NET desarrollo integrado entorno (IDE), cambie a vista de diseño.
  3. Agregar un botón de formulario Web a la página:
    1. Arrastre un botón de formulario Web hasta la página.
    2. Seleccione el botón de WebForm. Cambie la propiedad ID a CreateNewOrCached y cambie la propiedad Text para Crear nuevo o caché .
  4. Agregue un segundo botón de formulario Web:
    1. Arrastre otro botón de formulario Web hasta la página y lo coloca detrás del botón CreateNewOrCached .
    2. Seleccione el botón de WebForm, cambie la propiedad ID para RemoveEntry y, a continuación, cambie la propiedad Text a RemoveEntry .
  5. Agregue una etiqueta WebForm:
    1. Arrastre una etiqueta de formulario Web hasta la página en cuadro de herramientas .
    2. Seleccione la etiqueta WebForm, cambie la propiedad ID para CacheStatus y, a continuación, borre la propiedad Text .
  6. Agregue un control DataGrid:
    1. Arrastre un control DataGrid de WebForm la página. Mantener la propiedad de identificador predeterminada de DataGrid1 .
Back to the top

Agregue el código

Agregue código para insertar elementos de caché, para quitar elementos de la caché y para generar la dependencia de caché:
  1. Haga clic con el botón secundario del mouse en la página .aspx y, a continuación, haga clic en Ver código para mostrar el código.
  2. Agregar los espacios de nombres siguiente a la lista de espacio de nombres:
    Imports System.Data.SqlClient
    Imports System.Web.Caching
    						
    Nota si bien se omite el espacio de nombres o si tiene una lista de espacios de nombres redundante, recibirá un mensaje de advertencia.
  3. Cambie a la vista Diseño.
  4. Haga doble clic en el botón CreateNewOrCached para mostrar el código para el evento CreateNewOrCached_Click . Agregue el código siguiente al evento CreateNewOrCached_Click .

    Nota Este código requiere que instale SQL Server Pubs base de datos.
         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 la ConnectionString en el código mencionado anteriormente para funcionar correctamente con SQL Server.
  5. Volver a vista Diseño en el DataCacheSample.aspx página.
  6. Haga doble clic en el botón RemoveEntry para mostrar el código de evento RemoveEntry_Click .
  7. Agregue el código siguiente al 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. En el menú archivo , haga clic en Guardar todo para guardar el formulario Web y otros archivos de proyecto asociado.
  9. Genere el proyecto: en el menú Generar en el IDE de Visual Studio. NET, haga clic en Generar solución .
Back to the top

Ejecute el código

  1. Haga clic con el botón secundario en la página DataCacheSample.aspx en el Explorador de soluciones y, a continuación, haga clic en Ver en el explorador .
  2. Haga clic en el botón CreateNewOrCached . La etiqueta de CacheStatus muestra la Creación de versión nuevo y se rellena el control DataGrid .

    notas :
    • La configuración de Creación de versión nuevo para la etiqueta CacheStatus aparece porque la clave de caché CacheDataSetEmployees no hace referencia un elemento de caché válido al especificar el evento. En este caso, se crea el DataSet , el control DataGrid está enlazado al DataSet y el DataSet está especificado en la caché mediante la clave de caché CacheDataSetEmployees .
    • Se crea un nuevo objeto de CacheDependency denominado MyDependency . El objeto MyDependency aparece como la dependencia para el artículo CacheDataSetEmployees cuando se agrega a la caché mediante el método Insert . Aunque este ejemplo muestra las dependencias de clave, también puede utilizar otros tipos de basado en la dependencia de caché criterios, como archivo o timestamp.
  3. Vuelva a hacer clic en el botón CreateNewOrCached .

    Observe que la etiqueta CacheStatus muestra Utiliza de versión en caché . Esto significa que el DataSet en caché es que se va a utilizar. Para comprobar que se trata de datos almacenados en caché, modificar uno de los registros mostrados en la base de datos pubs mediante el Analizador de consultas SQL u otra herramienta. Después de modificar el registro, haga clic de nuevo en el botón CreateNewOrCached . Observe que no se muestran los cambios realizados. Haga clic en RemoveEntry y haga clic en CreateNewOrCached nuevo para ver los cambios realizados en la base de datos.
  4. Haga clic en el botón RemoveEntry .

    Observe que la etiqueta CacheStatus muestra Caché artículo quitados . El elemento de caché con la clave SqlPubsEmployees se quita mediante el método Cache.Remove en el evento RemoveEntry_Click . La matriz que contiene el nombre de clave de caché del elemento eliminado se muestra con MyDependency cuando se crea. Se quitará el elemento CacheDataSetEmployees porque se creó utilizando el método Insert y referencias MyDependency como su parámetro de dependencia.
  5. Vuelva a hacer clic en CreateNewOrCached .

    Observe que la etiqueta CacheStatus muestra la Creación de nueva versión . Se crea el conjunto de datos basa en el hecho de que ya no existe en la caché cuando se desencadene el evento.

    Además, observe que el control DataGrid se muestra como se rellena con datos incluso después de que el elemento DataSet se quita de la caché. Se trata porque la propiedad EnableViewState se establece en true de forma predeterminada. Esto mantiene el estado del control y no está relacionado con la manipulación de entrada de caché en el código. Para una representación más visual de estado del control en cada fase, establezca el EnableViewState en false .
En una situación real, la matriz de claves de caché (en este ejemplo, la matriz de claves ) puede contener las claves de caché para otras tablas u otros elementos de caché. Si uno de los cambios de elementos, a continuación, la entrada de caché (en este ejemplo, CacheDataSetEmployees ) para el elemento creado con esta dependencia se quita de la caché. Si tiene que pueden reaccionar a través de una devolución de llamada. Para obtener más información acerca de las devoluciones de llamada, consulte la sección "Referencias" más adelante en este artículo.

Back to the top

Solucionar problemas

  • Los nombres de claves que aparecen en la matriz de claves de caché deben estar asociados con elementos de caché real. Si no lo están, el elemento para que se utiliza la dependencia no se conservarán en la caché correctamente--por ejemplo, si la matriz de claves en el código de ejemplo contiene otro elemento de matriz y el elemento se establece en un nombre de clave de caché no válida.
  • La matriz de claves de caché no tiene ningún significado específico hasta que se utiliza con un objeto CacheDependency .
  • Si inserta un elemento en la caché con ninguna dependencia o otro caducidad, el control de tiempo de ejecución determina cuándo se debe quitar el elemento de la caché.
Back to the top

Referencias

Para obtener información acerca de CacheItemRemovedCallback , visite el siguiente sitio Web de Microsoft:
Delegado CacheItemRemovedCallback
http://msdn2.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback(vs.71).aspx
Nota CacheItemRemovedCallback define un método de devolución de llamada para notificar a las aplicaciones cuando se quita un elemento en caché de la caché.

Para obtener información acerca de la clase CacheDependency , visite el siguiente sitio Web de Microsoft:
Clase CacheDependency
http://msdn2.microsoft.com/en-us/library/system.web.caching.cachedependency(vs.71).aspx
La clase CacheDependency realiza un seguimiento de dependencias de caché, como que los archivos, carpetas o claves de otros objetos en caché de la aplicación.

Para obtener una introducción breve a las diversas opciones de almacenamiento en caché disponibles para ASP.NET, visite el siguiente sitio Web:
Agregar elementos a la caché
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaddingitemstocache.asp
Para obtener información adicional, haga clic en los números de artículo correspondientes para verlos en Microsoft Knowledge Base:
305140INFORMACIÓN: Guía básica de ASP.NET
307225Introducción a la memoria caché de ASP.NET
Back to the top

Propiedades

Id. de artículo: 312358 - Última revisión: lunes, 24 de febrero de 2014 - Versión: 4.5
La información de este artículo se refiere 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
Palabras clave: 
kbnosurvey kbarchive kbmt kbcaching kbdatabase kbhowtomaster KB312358 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 312358

Enviar comentarios

 

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