Я пробую их на CMS, используя области для разбивки контента по типам. Итак, у меня есть области для календаря, новостей / блога, навигации и страниц (все провалено).
По моему краткому опыту, преимущества областей заключаются в следующем:
Я действительно думаю, что признание первого пункта важно. Для некоторых дополнительная работа по выполнению RenderAction и аналогичных вызовов в другие области может стать преградой. Я также заметил, что маршрутизация с областями может немного отличаться: я полагался на зарегистрированный обработчик в web.config, но маршрутизация больше не работала для него после перемещения моего всеобъемлющего маршрута в область. Пришлось добавить явное игнорирование для обработчика изображений.
Это самый популярный при поиске в Google "областей MVC2":
Области предоставляют средства группировки контроллеров и представлений, позволяющие создавать подразделы большого приложения в относительной изоляции от других разделов. Каждую область можно реализовать как отдельный проект ASP.NET MVC , на который затем может ссылаться основное приложение. Это помогает управлять сложностью при создании большого приложения и упрощает совместную работу нескольких команд над одним приложением.
В качестве конкретного примера того, когда использовать области, рассмотрим сайт электронной коммерции. У вас могут быть свои обычные контроллеры для общедоступной части веб-сайта, а также область «администратора» для управления продуктами, категориями и т. Д. Таким образом вы можете иметь два совершенно разных класса productController, которые имеют разные методы Details (). (один для заполнения общедоступного представления с подробностями о продукте, а другой для пользователей-администраторов, которые могут иметь статистику продаж и т. д.).