2009-02-09 3 views
9

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

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

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

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

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

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

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

ответ

3

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

+0

Также есть Стивен Вальтер и другие на ASP.NET MVC. Это не просто расколото. –

+0

Да ... но нет никого такого шумного, как Фил Хаак. Возможно, Джефф Этвуд бьет его по шумной вещи. Но все. –

1

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

2

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

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

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

Смежные вопросы