web-dev-qa-db-fra.com

Dois-je utiliser HttpRuntime.Cache?

Je suis un débutant sur asp.net, et j'ai quelques questions sur Cache:

  1. HttpRuntime.Cache ne fournit que plusieurs méthodes et je pense que je suis capable de mettre en œuvre ces méthodes avec Dictionary par moi-même.
  2. Si HttpRuntime.Cache est bien meilleur que Dictionary, pourquoi certaines personnes souhaitent implémenter leur propre framework de cache.
  3. Que diriez-vous de MS Enterprise Cache Block?
32
Domi.Zhang

HttpRuntime.Cache ne fournit que plusieurs méthodes et je pense que je suis capable de mettre en œuvre ces méthodes avec Dictionary par moi-même.

Tu penses mal. HttpRuntime.Cache est bien plus qu'un simple dictionnaire. Il offre des politiques de sécurité des threads et d'expiration du cache. Il offre des possibilités d'utilisation de l'implémentation personnalisée et bénéficie d'une mise en cache distribuée qui est utile dans les batteries de serveurs Web. L'implémentation de cela avec des dictionnaires pourrait être beaucoup de travail dans lequel vous ne voudrez probablement pas vous aventurer car vous réinventerez les roues et même si la réinvention des roues ne vous dérange pas, les chances de bien faire sont minces.

2) Si HttpRuntime.Cache est bien meilleur que Dictionary, pourquoi certaines personnes souhaitent implémenter leur propre framework de cache.

Les gens ne voudraient pas faire ça.

3) Qu'en est-il du bloc de cache MS Enterprise?

C'est de l'artillerie lourde qui n'est pas toujours nécessaire lorsque vous avez besoin d'une mise en cache simple qui pourrait être réalisée avec ce que le cadre vous fournit déjà hors de la boîte.

Remarque: dans .NET 4.0, vous devez utiliser le nouvel espace de noms System.Runtime.Caching au lieu de HttpRuntime.Cache.

Donc, pour répondre à votre question: Should I use HttpRuntime.Cache

Oui, sauf si vous utilisez .NET 4.0, auquel cas vous devez utiliser les classes du nouveau System.Runtime.Caching espace de noms.

86
Darin Dimitrov