Лучшие практики в отношении кэширования в приложениях ASP.NET - PullRequest
9 голосов
/ 04 августа 2009

У меня вопрос по поводу кеширования. У меня есть типичное n-уровневое веб-приложение ASP.NET. Я создал специальную оболочку Cache (обертывающую объект ASP.NET Cache) и хотел бы ознакомиться с лучшими практиками кэширования данных. Я не хочу использовать кэширование на своем бизнес-уровне (не хочу добавлять туда ссылки на System.Web dll). Тот же случай с DAL. Таким образом, остались только следующие варианты:

  1. Кэшировать все в слое пользовательского интерфейса
  2. Создать слой кэша между пользовательским интерфейсом и BL (не знаете, насколько это возможно?)

Я также слышал о грядущей инфраструктуре кэширования Velocity, но думаю, что это может быть излишним (поскольку моему приложению не понадобится веб-ферма / кластер).

Я могу быть совершенно неправ в своих подходах, поэтому я приветствую любые предложения или альтернативные подходы относительно того, как эффективно кэшировать данные в моих веб-проектах.

Ответы [ 2 ]

10 голосов
/ 04 августа 2009

Слой между вашим UI и BLL будет слоем Services, который является хорошим местом для кэширования. Используйте абстрактный менеджер кэша (пример в моем блоге ), чтобы при необходимости вы могли менять поставщиков (кэш ASP.NET, скорость, memcached и т. Д.).

1 голос
/ 04 августа 2009

Иногда также стоит подумать, для чего предназначаются кэшированные данные? Если в конечном итоге он просто собирается генерировать статический HTML-код на уровне пользовательского интерфейса, тогда обертывание этих частей в пользовательском элементе управления и добавление директивы @ OutputCache могут быть наиболее эффективным способом (по крайней мере, при использовании веб-форм). Легко забыть об этом, иногда, когда вы увязли в инфраструктуре кэширования и т. Д. Конечно, я понимаю, что во многих случаях это может быть неуместным или оптимальным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...