Кэширование на запрос в ASP.NET?

Я использую как IBatis.NET, так и Spring.NET в проекте на работе, и я хотел бы выяснить, могу ли я использовать обе инфраструктуры для достижения "кэширования по запросу" для всех вызовов в моем уровне DAL. Другими словами, каждый раз, когда HTTP-запрос обслуживается ASP.NET, я хотел бы сначала вызвать метод DAL для попадания в удаленную БД, но все последующие вызовы должны быть завышены из кэша.

Я видел несколько статей, описывающих способ достижения этого с помощью HttpContext.Current, но я не могу переварить идею загрязнения моего слоя DAL ссылками System.Web. Я также хотел бы использовать эти рамки, если это возможно, поскольку я не люблю заново изобретать колесо.

1 ответ

Решение

Я не эксперт по IBatis.NET и интеграции с Spring.NET, скорее всего, больше не хватает, но здесь идет..

Я хотел бы создать собственную реализацию ICache, которая использует HttpContext.Current.Items. Затем я бы сделал объекты уровня DAL проксированными с помощью Spring.NET AOP (они находятся за интерфейсами, не так ли?). Тогда это просто вопрос применения рекомендаций кеша с использованием AOP Framework.

Вы должны быть в состоянии сделать это, следуя документации Spring.NET о кэшировании AOP и реализуя ICache, используя в качестве отправной точки реализацию кэширования ASP.NET в Spring.NET.

Другие вопросы по тегам