Comment implémenter des dépendances de clé-en fonction de données mise en cache dans ASP.NET à l'aide de Visual Basic .NET

Traductions disponibles Traductions disponibles
Numéro d'article: 312358 - Voir les produits auxquels s'applique cet article
Cet article a été archivé. Il est proposé « en l'état » et ne sera plus mis à jour.
Agrandir tout | Réduire tout

Sommaire

Résumé

Utiliser ce guide pas-à-pas pour implémenter les dépendances en fonction de clé de mise en cache des données dans une application ASP.NET.

Cet exemple montre comment crée et insère un objet DataSet dans un cache avec une interdépendance définir sur un autre cache entrée en la référençant à sa clé. Pour plus d'informations et des exemples de données de mise en cache avec des dépendances basés sur l'heure ou de fichier-basé, consultez la section REFERENCES de cet article.

Back to the top

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel infrastructure réseau et service packs dont vous avez besoin :
  • Microsoft Windows 2000 ou Microsoft Windows XP.
  • Microsoft Internet Information Services (IIS).
  • Microsoft .NET framework.
  • Microsoft SQL Server.
Back to the top

Créer une application Web ASP.NET à l'aide de Visual Basic .NET

La procédure suivante crée une application Web ASP.NET nommée DataCacher
  1. Démarrez Microsoft Visual Studio .NET.
  2. Dans le menu Fichier , pointez sur Nouveau , puis cliquez sur projet .
  3. Dans la boîte de dialogue Nouveau projet , sous types de projets , cliquez sur projets Visual Basic . Sous modèles , cliquez sur Application Web ASP.NET .
  4. Dans la zone Emplacement , remplacez WebApplication # par le nouveau nom de projet : DataCacher . Si vous utilisez le serveur local, laissez le nom du serveur http://localhost . La zone Emplacement ressemble à ceci :
    http://localhost/DataCacher
Back to the top

Créer le formulaire Web

note Pour plus d'informations, consultez la section « Exécution du code » plus loin dans cet article.
  1. Ajouter un nouveau WebForm nommé DataCacheSample.aspx à votre projet dans Visual Studio .NET. Pour ce faire, procédez comme suit :
    1. Cliquez avec le bouton droit sur le n?ud de projet dans l'Explorateur de solutions, pointez sur Ajouter , puis cliquez sur Ajouter nouveau WebForm .
    2. Nommez l'ecran Web DataCacheSample.aspx , puis cliquez sur Ouvrir .
  2. Dans Visual Studio .NET Integrated Development Environment (IDE), basculer en mode Création.
  3. Ajouter un bouton Ecran Web à la page :
    1. Faites glisser un bouton Ecran Web sur la page.
    2. Sélectionnez le bouton Ecran Web. Modifier la propriété ID à CreateNewOrCached et modifiez la propriété à la mise en créer nouveau ou cache .
  4. Ajouter un deuxième bouton Ecran Web :
    1. Faites glisser un autre bouton Ecran Web sur la page et le placer après le bouton CreateNewOrCached .
    2. Sélectionnez le bouton Ecran Web, modifiez la propriété ID RemoveEntry et puis modifiez la propriété à RemoveEntry .
  5. Ajouter une étiquette de WebForm :
    1. Faites glisser une étiquette de WebForm sur la page à partir de boîte à outils .
    2. Sélectionnez l'étiquette de WebForm et modifiez la propriété ID CacheStatus et désactivez la propriété Text .
  6. Ajouter une grille de données :
    1. Faire glisser un contrôle WebForm DataGrid sur la page. Conserver la propriété D'ID par défaut de DataGrid1 .
Back to the top

Ajoutez le code

Ajoutez le code pour insérer des éléments du cache, pour supprimer les éléments de cache et créer la dépendance de cache :
  1. Cliquez avec le bouton droit sur la page .aspx, puis cliquez sur Afficher le code pour afficher le code.
  2. Ajouter les espaces de noms suivants à la liste d'espace de noms :
    Imports System.Data.SqlClient
    Imports System.Web.Caching
    						
    Remarque si l'espace de noms n'est pas spécifié, ou si vous disposez d'une liste redondante des espaces de noms, vous recevrez un message d'avertissement.
  3. Passez en mode Création.
  4. Double-cliquez sur le bouton CreateNewOrCached pour afficher le code de l'événement CreateNewOrCached_Click . Ajoutez le code suivant à l'événement CreateNewOrCached_Click .

    note Ce code nécessite l'installation la Pubs de serveur SQL base de données.
         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
    						
    DataGrid1.DataBind() End Sub Remarque modifier ConnectionString dans le code mentionné ci-dessus pour fonctionner correctement avec votre serveur SQL.
  5. Revenez en mode Création dans le DataCacheSample.aspx page.
  6. Double-cliquez sur le bouton RemoveEntry pour afficher le code d'événement RemoveEntry_Click .
  7. Ajoutez le code suivant à l'événement 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
    					
    CacheStatus.Text = "élément de cache supprimé" End Sub
  8. Dans le menu Fichier , cliquez sur Enregistrer tout pour enregistrer l'ecran Web et d'autres fichiers projet associé.
  9. Générez le projet : dans le menu Générer l'IDE Visual Studio .NET, cliquez sur Générer la solution .
Back to the top

Exécuter le code

  1. Cliquez avec le bouton droit sur la page DataCacheSample.aspx Explorateur de solutions, puis cliquez sur Afficher dans le navigateur .
  2. Cliquez sur le bouton CreateNewOrCached . L'étiquette CacheStatus affiche nouvelle version créée et le contrôle DataGrid est rempli.

    notes :
    • Le paramètre nouvelle version créée pour l'étiquette CacheStatus s'affiche car la clé de cache CacheDataSetEmployees ne référence pas un élément de cache valide lorsque vous entrez l'événement. Dans ce cas, vous pouvez le DataSet est créée, le contrôle DataGrid est lié vers le DataSet , et le DataSet est entrée dans le cache en utilisant la clé de cache CacheDataSetEmployees .
    • Un nouvel objet CacheDependency nommé MyDependency est créé. L'objet MyDependency est répertorié comme la dépendance de l'article CacheDataSetEmployees lorsqu'il est ajouté au cache à l'aide de la méthode d'insertion . Bien que cet exemple démontre dépendances en fonction de clé, vous pouvez également utiliser autres types de critères de mise en cache d'en fonction de dépendance, tels que fichier ou le cachet de date.
  3. Cliquez sur le bouton CreateNewOrCached à nouveau.

    Notez que l'étiquette CacheStatus affiche mis en cache version utilisé . Cela signifie que le DataSet mis en cache est en cours utilisée. Pour vérifier que c'est de données mises en cache, modifier un des enregistrements affichés dans la base de données Pubs à l'aide Analyseur de requêtes SQL ou un autre outil. Après avoir modifié l'enregistrement, cliquez sur le bouton CreateNewOrCached à nouveau. Notez que les modifications que vous avez apportées ne sont pas affichées. Cliquez sur RemoveEntry , puis sur CreateNewOrCached à nouveau pour voir les modifications apportées à la base de données.
  4. Cliquez sur le bouton RemoveEntry .

    Notez que l'étiquette CacheStatus affiche cache élément supprimé . L'élément de cache avec la clé SqlPubsEmployees est supprimé en utilisant la méthode Cache.Remove dans l'événement RemoveEntry_Click . Le tableau contenant le nom de clé du cache de l'élément supprimé est répertorié avec MyDependency lorsqu'elle est créée. L'élément CacheDataSetEmployees sera supprimé car il a été créé en utilisant la méthode Insert et références MyDependency que son paramètre de dépendance.
  5. Cliquez à nouveau sur CreateNewOrCached .

    Notez que l'étiquette CacheStatus affiche la nouvelle version créée . Le DataSet est créé base sur le fait que qu'il n'existe plus dans le cache lorsque l'événement est déclenché.

    En outre, notez que le contrôle DataGrid est affiché comme rempli avec des données même après que l'élément DataSet est supprimé à partir du cache. Cela est dû au fait que la propriété EnableViewState est définie sur True par défaut. Il maintient l'état du contrôle et il n'est pas lié à la manipulation d'entrée du cache dans le code. Pour une représentation plus visuelle de l'état du contrôle de à chaque phase, définir la EnableViewState sur False .
Dans un cas réel, le tableau de clé de cache (dans cet exemple, le groupe de clés ) peut maintenez touches cache pour les autres tables ou autres éléments du cache. Si un de ces modifications éléments, puis l'entrée du cache (dans cet exemple, CacheDataSetEmployees ) pour l'article créé avec cette interdépendance est supprimée à partir du cache. Vous pouvez réagir via un rappel si vous disposez. Pour plus d'informations à propos des rappels, voir la section « Références » plus loin dans cet article.

Back to the top

Résoudre les problèmes

  • Les noms de clé répertoriés dans le groupe de clés du cache doivent être associées à éléments cache réel. Si elles ne sont pas le cas, l'article pour lequel la dépendance est utilisée n'est pas conservée dans le cache correctement--par exemple, si le tableau de clés dans l'exemple de code contient un autre élément du tableau et l'élément est défini à un nom clé de cache non valide.
  • Le tableau de clés du cache ne comporte aucune signification particulière jusqu'à ce que qu'il est utilisé avec un objet CacheDependency .
  • Si vous insérez un élément dans le cache avec aucune interdépendance ou autre d'expiration, le contrôle au moment de l'exécution détermine quand supprimer l'élément du cache.
Back to the top

Références

Pour savoir CacheItemRemovedCallback , reportez-vous au site de Web Microsoft suivant :
Délégué CacheItemRemovedCallback
http://msdn2.microsoft.com/en-us/library/system.web.caching.cacheitemremovedcallback(vs.71).aspx
note CacheItemRemovedCallback définit une méthode de rappel pour avertir les applications lorsqu'un élément de mise en cache est supprimé du cache.

Pour d'informations sur la classe CacheDependency , reportez-vous au site de Web Microsoft suivant :
Classe CacheDependency
http://msdn2.microsoft.com/en-us/library/system.web.caching.cachedependency(vs.71).aspx
La classe CacheDependency suit les dépendances de cache, tels que les fichiers, dossiers ou clés pour les autres objets de cache de l'application.

Pour une présentation brève des différentes mise en cache options disponibles pour ASP.NET, reportez-vous au à l'adresse suivante du Microsoft :
Ajouter des éléments dans le cache
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconaddingitemstocache.asp
Pour plus d'informations, cliquez sur les numéros ci-dessous pour afficher les articles correspondants dans la Base de connaissances Microsoft :
305140 INFO : présentation d'ASP.NET
307225 Présentation de la mise en cache ASP.NET
Back to the top

Propriétés

Numéro d'article: 312358 - Dernière mise à jour: lundi 24 février 2014 - Version: 4.5
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft ASP.NET 1.0
  • Microsoft Visual Basic .NET 2002 Initiation
  • Microsoft ASP.NET 1.1
  • Microsoft Visual Basic .NET 2003 Initiation
Mots-clés : 
kbnosurvey kbarchive kbmt kbcaching kbdatabase kbhowtomaster KB312358 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 312358
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

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