Partager via


Mise en cache dans les applications .NET Framework

La mise en cache vous permet de stocker des données en mémoire pour y accéder rapidement. Lors d'un nouvel accès aux données, les applications peuvent les obtenir du cache au lieu de les extraire de la source d'origine. Cela peut améliorer le niveau de performance et l'évolutivité. En outre, la mise en cache rend les données disponibles lorsque la source de données est temporairement indisponible.

Le .NET Framework fournit des fonctionnalités de mise en cache que vous pouvez utiliser pour améliorer le niveau de performance et l'évolutivité du client Windows et des applications serveur, notamment ASP.NET.

RemarqueRemarque

Dans le .NET Framework 3.5 et versions antérieures, ASP.NET fournissait une implémentation de cache en mémoire dans l'espace de noms System.Web.Caching.Dans les versions précédentes du .NET Framework, la mise en cache était disponible uniquement dans l'espace de noms System.Web et nécessitait donc une dépendance sur les classes ASP.NET.Dans .NET Framework 4, l'espace de noms System.Runtime.Caching contient des API conçues pour les applications Web et non Web.

Mise en cache des données

Vous pouvez mettre en cache les informations à l'aide de classes dans l'espace de noms System.Runtime.Caching. Les classes de mise en cache dans cet espace de noms fournissent les fonctionnalités suivantes :

  • Les types abstraits qui fournissent la base de la création d'implémentations de cache personnalisées.

  • Une implémentation de cache d'objets en mémoire concrète.

La classe de base abstraite de mise en cache (ObjectCache) définit les tâches de mise en cache suivantes :

  • Création et gestion des entrées de cache.

  • Spécification des informations d'expiration et d'éviction.

  • Déclenchement des événements en réponse à des modifications apportées aux entrées du cache.

La classe MemoryCache est une implémentation de cache d'objets en mémoire de la classe ObjectCache. Vous pouvez utiliser la classe MemoryCache pour la plupart des tâches de mise en cache.

RemarqueRemarque

La classe MemoryCache est modélisée sur l'objet de cache ASP.NET qui est défini dans l'espace de noms System.Web.Caching.Par conséquent, la logique interne de mise en cache est similaire à la logique fournie dans les versions antérieures d'ASP.NET.

Pour obtenir un exemple d'utilisation de la mise en cache dans une application WPF, consultez Procédure pas à pas : mise en cache de données d'application dans une application WPF.

Mise en cache dans les applications ASP.NET

Les classes de mise en cache dans l'espace de noms System.Runtime.Caching fournissent des fonctionnalités de mise en cache des données dans ASP.NET.

RemarqueRemarque

Si votre application cible le .NET Framework 3.5 ou une version antérieure, vous devez utiliser les classes de mise en cache qui sont définies dans l'espace de noms System.Web.Caching.Pour plus d'informations, consultez Vue d'ensemble de la mise en cache ASP.NET.

RemarqueRemarque

Lorsque vous développez des applications, nous vous recommandons d'utiliser la classe MemoryCache.L'API qui est fournie dans l'espace de noms System.Runtime.Caching est semblable à l'API fournie dans l'espace de noms Cache.Par conséquent, l'API vous sera familière si vous avez utilisé la mise en cache dans les versions antérieures d'ASP.NET.Pour obtenir un exemple d'utilisation de la mise en cache dans les applications ASP.NET, consultez Procédure pas à pas : mise en cache de données d'application dans ASP.NET.

Mise en cache de sortie

Pour mettre manuellement en cache des données d'applications, vous pouvez utiliser la classe MemoryCache dans ASP.NET. ASP.NET prend également en charge la mise en cache de sortie, qui stocke la sortie de pages générée, les contrôles et les réponses HTTP en mémoire. Vous pouvez configurer la mise en cache de sortie de façon déclarative dans une page Web ASP.NET ou à l'aide des paramètres du fichier Web.config. Pour plus d'informations, consultez outputCache, élément de caching (Schéma des paramètres ASP.NET).

ASP.NET vous permet d'étendre la mise en cache de sortie en créant des fournisseurs de cache de sortie personnalisés. À l'aide de fournisseurs personnalisés, vous pouvez stocker le contenu mis en cache avec d'autres périphériques de stockage tels que les disques, le stockage en nuage et les moteurs de cache distribués. Pour créer un fournisseur de cache de sortie personnalisé, vous créez une classe qui dérive de la classe OutputCacheProvider et configurez l'application pour utiliser le fournisseur du cache de sortie personnalisé.

Mise en cache dans les services WCF REST

Pour les services WCF REST, le .NET Framework vous permet de tirer parti de la mise en cache de sortie déclarative qui est disponible dans ASP.NET. Cela vous permet de mettre en cache les réponses provenant de vos opérations de service WCF REST. Lorsqu'un utilisateur envoie une requête HTTP GET à un service qui est configuré pour la mise en cache, ASP.NET renvoie la réponse mise en cache et la méthode de service n'est pas appelée. Une fois que le cache expire, la prochaine fois qu'un utilisateur envoie une requête HTTP GET, votre méthode de service est appelée et la réponse est de nouveau la mise en cache.

Le .NET Framework vous permet également d'implémenter une mise en cache HTTP GET conditionnelle. Dans les scénarios REST, une requête HTTP GET conditionnelle est souvent utilisée par les services pour implémenter la mise en cache HTTP intelligente, comme décrit dans les Spécifications HTTP (page éventuellement en anglais). Pour plus d'informations, consultez Prise en charge de la mise en cache pour les services HTTP Web WCF.

Extension de la mise en cache dans le .NET Framework

La mise en cache dans le .NET Framework est conçue pour être extensible. La classe ObjectCache vous permet de créer une implémentation de cache personnalisée. Cette classe fournit des membres qui sont disponibles pour toutes les applications managées, notamment Windows Forms, Windows Presentation Foundation (WPF) et Windows Communications Foundation (WCF). Vous pouvez effectuer cette opération afin de créer une classe de cache qui utilise un mécanisme de stockage différent ou si vous souhaitez avoir un contrôle précis des opérations de cache.

Pour étendre la mise en cache, vous pouvez effectuer les opérations suivantes :

Pour plus d'informations, consultez l'entrée Mise en cache de sortie extensible avec ASP.NET 4 (séries VS  2010 et .NET 4.0) (éventuellement en anglais) du blog de Scott Guthrie.

Voir aussi

Tâches

Procédure pas à pas : mise en cache de données d'application dans une application WPF

Référence

ObjectCache

MemoryCache

Autres ressources

Procédure pas à pas : mise en cache de données d'application dans ASP.NET