ASP.NET MVC 4 в действии
Джеффри Палермо
Облегченные контроллеры
В этой главе рассматриваются:
- Упрощение программирования с помощью облегченных контроллеров
- Управление общими данными представлений без атрибутов фильтров
- Порождение результатов действий для применения общего поведения
- Использование шины приложения
В предыдущей главе мы рассмотрели, как можно использовать AutoMapper, чтобы избавиться от рутинной ручной работы по преобразованию моделей представления. В этой главе мы продолжим разгружать наши контроллеры с помощью простого рефакторинга и архитектуры приложения.
Вы помните те раздутые и громоздкие методы Page_Load
в Web Forms? Эти методы могут быстро выйти из-под контроля и дезорганизовать нашу кодовую базу. Действия контроллера тоже ненадежны. Контроллеры находятся между моделью и представлением и должны содержать код принятия решений, но мы часто ошибочно размещаем в них логику. В первую очередь, это довольно удобно. Потребуется две строки кода, чтобы создать в методе действия список выбора. А добавление атрибута фильтра в контроллер - простой способ организовать глобальные данные для мастер-страницы.
Но эти методы не подходят для сложных проектов. Настроить процесс так, чтобы он нашел определенный заказ, авторизировал его, передал его в службу отправки и отправил по электронной почте уведомление пользователю, прежде чем перенаправил пользователя на страницу подтверждения? Слишком много для одного контроллера.
В этой главе мы рассмотрим способы, которые мы можем объединить с концепцией управления зависимостями, которая рассматривается в главе 16. Мы рассмотрим, почему так важны облегченные контроллеры, исследуем несколько способов уменьшить методы действий, а также изучим новую концепцию, которая может в корне изменить ваш стиль программирования в ASP.NET MVC.