Я прочитал пост Ayende о Futures в NHibernate и начал его использовать. Сначала только для изолированного сценария - запросы, которые возвращают постраничные результаты (как для запроса, так и для подсчета элементов в одной поездке в базу данных). Но потом я подумал, почему бы не использовать фьючерсы для каждого отдельного запроса. В большинстве моих методов действий мне нужно делать несколько запросов, в среднем по 5 на страницу (чтобы получить профиль пользователя, нижний колонтитул, категории, информацию о группе и т. Д.).
Очевидным преимуществом является то, что в целом эти запросы должны быть короче для выполнения. Но есть ли недостатки такого дизайна веб-приложения? Области, которые делают меня любопытным:
- Кэширование в NHibernate - помешает ли этот дизайн каким-либо образом использовать функции кэширования NHibernate?
- Может быть, такой пакет запросов заблокирует таблицы базы данных и заставит другие параллельные действия ждать? Я использую уровень изоляции Read Committed.
Любой другой? Каков ваш опыт работы с фьючерсами? Вы бы порекомендовали использовать его таким образом, для всех возможных предметов?