Кэширование в ASP.NET MVC Framework - PullRequest
       22

Кэширование в ASP.NET MVC Framework

9 голосов
/ 09 февраля 2009

Я довольно новичок в использовании ASP.NET MVC Framework и надеялся, что смогу найти некоторую помощь по передовым методам при кэшировании различных частей моего MVC-приложения. Я знаю, что переполнение стека использует MVC и некоторые довольно интересные классные методы кэширования, и оно работает быстрее, чем мое приложение, даже при локальном запуске.

У меня есть несколько вопросов.

  1. Как на самом деле работает кеширование, как его «включить» и каковы различные варианты. Какой тип кэширования лучше всего использовать?

  2. В моем приложении много транзакций с базой данных, списки которых регулярно меняются. Я беспокоюсь о сроках обновления страниц, когда пользователи не получают самую последнюю версию данных. Каков наилучший способ найти баланс между скоростью веб-приложения и отображением «актуальных» данных? Какие лучшие практики вы, ребята, нашли, когда сталкивались с этой проблемой?

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

  4. Я использую интеграцию Castle.Windor с контроллерами, я не уверен, что это что-то меняет.

  5. Буду весьма признателен за любые другие рекомендации относительно того, что следует с осторожностью / осторожностью.

Ответы [ 3 ]

3 голосов
/ 09 февраля 2009

Возможно, вы захотите взглянуть на пост Фила Хаака , чтобы узнать о кешировании пончиков. Он является ссылкой для ASP.NET MVC:)

2 голосов
/ 09 февраля 2009

С точки зрения "передового опыта" вам нужно будет учитывать те же вещи, которые вы должны учитывать в любом приложении, которое использует кэширование.

  • Достаточно ли велик объем трафика для кэширования?
  • Как часто меняется конкретный фрагмент данных? Насколько важна своевременность?
  • Владею ли я слоем доступа к данным? Если да, могу ли я инициировать обновление в кеше путем фактического изменения данных и избежать истечения срока действия?

и список можно продолжить.

1 голос
/ 09 февраля 2009

Вы можете легко кэшировать представления, используя атрибут OutputCache. Любые не часто обновляемые списки я также кеширую, используя механизмы кэширования nHibernate.

...