Comments
Не упомянут MVCDonutChaching. Кеширование по заголовкам, по параметрам. Кеширование всей страницы, кеширование части страницы и т.п.
Кеширование всей страницы делается с помощью output cache — атрибутами или кодом. Кеширование экшенов намерено не упоминал, потому что нет механизма сброса кеша для частичного кеша, из-за этого часто возникает неконсистентность страниц. Лучше кешировать данные частей, чтобы несколько раз не бегать в базу.

Идеальный сценарий для кеша:
1) 90% запросов отдаются из кеша браузера (без запроса вообще или через ответ сервера с кодом 304)
2) Из оставшихся 90% отдаются из кеша сервера, который кеширует полные ответы и управление даже не доходит до приложения
3) Из оставшихся 90% отдается из кеша приложения, которое кеширует готовые к рендерингу данные
Недавно столкнулся с проблемой, когда кеш экспайрится, то IIS во сколько потоков у него есть, во столько и долбит контроллер пока кеш по новой не заполнится. Если метод контроллера тяжелый, то времени в итоге может не хватить и все упадет.
Пришлось добавлять еще один уровень кеширования внутрипрограмный, который отдавал старую версию кеша, пока новый не заполнится в один поток.
Only those users with full accounts are able to leave comments. Log in, please.