Nous travaillons sur une grande application héritée et nous sommes en train de reconcevoir la couche de gestion et la couche de données. Nous pensons que c'est le moment de revoir la façon dont le cache est géré. Existe-t-il des modèles et des meilleures pratiques pour implémenter une couche de mise en cache (ou la construire dans la couche de gestion)? Les seules choses auxquelles je peux penser sont d'utiliser la dépendance du cache SQL (ce qui est difficile car nous avons une grande base de données héritée avec beaucoup de tables qui ne correspondent pas toujours aux objets métier) et la mise en œuvre forte Tapez la classe CacheManager pour masquer les clés de chaîne et éliminer les problèmes de moulage de classe.Quels sont les modèles et les meilleures pratiques de mise en cache dans ASP.NET?
Y at-il quelque chose de plus sophistiqué que nous pouvons faire? Existe-t-il un moyen d'appliquer l'invalidation du cache lors de la mise à jour/suppression? Devrions-nous en quelque sorte maintenir un seul objet dans le cache et récupérer la liste des ID de la base de données qui fonctionnent toujours avec les mêmes objets?
Fondamentalement quelles techniques de mise en cache utilisez-vous dans ASP.NET? Dommage que nous ne pouvons pas utiliser des conteneurs IoC ou des cadres ORM qui prennent en charge le cache :(
Edit:. Je suis plus préoccupé par la maintenabilité que la performance
Merci beaucoup (et tout le monde qui a répondu). Pouvez-vous élaborer sur ceci: • Faire des appels qui doivent être stockés dans le cache en utilisant une fonction wrapper publique T GetFromCache (clé de chaîne, Func ifKeyNotFoundDelegate) pour s'assurer que le cache est toujours utilisé le même. –
Stilgar
Dans un environnement multithread, n'oubliez pas un verrou dans GetFromCache <>(). – RickNZ