Мы работаем над большим устаревшим приложением, и мы перепроектируем бизнес-уровень и уровень данных. Мы считаем, что самое время перепроектировать процесс обработки кеша. Существуют ли какие-либо шаблоны и лучшие практики для реализации слоя кеширования (или создания его на бизнес-уровне)?
Единственное, что я могу придумать, - это использовать зависимость SQL Cache Dependency (что сложно из-за того, что у нас есть большая устаревшая база данных с большим количеством таблиц, которые не всегда соответствуют бизнес-объектам) и внедрение строго типизированных CacheManager, чтобы скрыть строковые ключи и устранить проблемы с классом.
Есть ли что-то более сложное, что мы можем сделать? Есть ли способ применить кэш-аннулирование при выполнении обновления/удаления? Должны ли мы каким-то образом поддерживать один объект в кеше и извлекать список идентификаторов из БД, которые всегда работают с одними и теми же объектами?
В основном, какие методы кэширования вы используете в ASP.NET? Слишком плохо, мы не можем использовать контейнеры IoC или рамки ORM, которые поддерживают кеш: (
Изменить: меня больше беспокоит ремонтопригодность, чем производительность.