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 un accès rapide. Lorsque les données sont de nouveau consultées, les applications peuvent obtenir les données à partir du cache au lieu de les récupérer à partir de la source d’origine. Cela peut améliorer les performances et l’extensibilité. En outre, la mise en cache rend les données disponibles lorsque la source de données n’est pas disponible temporairement.

Le .NET Framework fournit des fonctionnalités de mise en cache que vous pouvez utiliser pour améliorer les performances et l’extensibilité des applications clientes et serveurs Windows, notamment ASP.NET.

Remarque

Dans .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 System.Web de noms et nécessitait donc une dépendance sur les classes ASP.NET. Dans .NET Framework 4, l’espace System.Runtime.Caching de noms contient des API conçues pour les applications web et non web.

Mise en cache des données

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

  • Types abstraits qui fournissent la base de la création d’implémentations de cache personnalisées.

  • Implémentation concrète du cache d’objets en mémoire.

La classe de mise en cache de base abstraite (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 d’événements en réponse aux modifications des entrées du cache.

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

Remarque

La MemoryCache classe s'inspire de l'objet cache ASP.NET qui est défini dans l'espace de noms System.Web.Caching. Par conséquent, la logique de mise en cache interne similaire à la logique fournie dans les versions antérieures de 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 des données d’application dans une application WPF.

Mise en cache dans les applications ASP.NET

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

Remarque

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

Remarque

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

Mise en cache de sortie

Pour mettre en cache manuellement les données d’application, vous pouvez utiliser la MemoryCache classe dans ASP.NET. ASP.NET prend également en charge la mise en cache de sortie, qui stocke la sortie générée des pages, des contrôles et des réponses HTTP en mémoire. Vous pouvez configurer la mise en cache de sortie de manière déclarative dans une page web ASP.NET ou à l’aide de paramètres dans le fichier Web.config. Pour plus d’informations, consultez outputCache, élément pour la mise en cache (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. En utilisant des fournisseurs personnalisés, vous pouvez stocker du contenu mis en cache à l’aide d’autres périphériques de stockage tels que les disques, le stockage cloud et les moteurs de cache distribué. Pour créer un fournisseur de cache de sortie personnalisé, vous créez une classe qui dérive de la OutputCacheProvider classe et configurez l’application pour utiliser le fournisseur de cache de sortie personnalisé.

Mise en cache dans les services REST WCF

Pour les services REST WCF, .NET Framework vous permet de tirer parti de la mise en cache de sortie déclarative disponible dans ASP.NET. Cela vous permet de mettre en cache les réponses de vos opérations de service REST WCF. Lorsqu’un utilisateur envoie une requête HTTP GET à un service 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 le cache expiré, 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 mise en cache.

Le .NET Framework vous permet également d’implémenter la 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 la spécification HTTP. Pour plus d’informations, consultez La prise en charge de la mise en cache des services HTTP web WCF.

Extension de la mise en cache dans .NET Framework

La mise en cache dans .NET Framework est conçue pour être extensible. La ObjectCache classe vous permet de créer une implémentation de cache personnalisée. Cette classe fournit des membres disponibles pour toutes les applications managées, notamment Windows Forms, Windows Presentation Foundation (WPF) et Windows Communications Foundation (WCF). Vous pouvez le faire pour créer une classe de cache qui utilise un autre mécanisme de stockage, ou si vous souhaitez un contrôle granulaire sur les 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 (VS 2010 et .NET Framework 4.0 Series) sur le blog de Scott Guthrie.

Voir aussi