MVC3 Когда использовать районы?
Я работаю над гибким проектом MVC3, и он начинает становиться довольно большим, особенно мой раздел управления, где пользователь может установить множество конфигураций и т.д. Это мой первый проект MVC3, поэтому я просто Любопытно, когда имеет смысл использовать районы?
Как и должен ли контроллер для определенного раздела, такого как управление, перед тем, как вы решите разбить его на область и создать контроллеры для отдельных операций управления?
Кроме того, при использовании областей, должен ли я рефакторинг использовать области для всего или просто для разделов, которым нужна область?
Ответы
Ответ 1
Есть так много мнений о том, как организовать это, поскольку есть разработчики, но мои взгляды таковы:
Контроллеры должны отвечать только за взаимодействие с представлениями. То есть, создание экземпляров объектов и объектов, получение данных из ваших бизнес-объектов или уровня доступа к данным, реагирование на любые запросы со страницы (заявки на формы, запросы AJAX, интерфейс к динамическим методам создания ресурсов/классам (например, создание CAPTCHA или других динамических изображения)) и т.д. Если вы придерживаетесь этой философии, их размер и сложность никогда не должны превышать их взгляды.
Области Я имею тенденцию использовать области для разбиения приложения на под-приложения. Например, на сайте может быть форум для обсуждения, каталог продуктов, информация о компании, база данных поддержки и т.д., Все из которых будут отдельными областями:
/areas/forum/...
/areas/product/...
/areas/company/...
/areas/support/...
Затем в каждой области у вас может быть
/areas/support/{views|controllers}
/areas/support/search/
/areas/support/contact/
/areas/support/knowledgebase/
и др.
Так же, как на веб-сайте, где каждая папка представляет собой отдельный "area" веб-сайт, области предоставляют другой уровень организации, который позволяет хранить связанные контроллеры, представления и т.д. в общем месте и должен использоваться в аналогичном мода.
Ответ 2
Мы используем области, чтобы отличать заметные отдельные проблемы в приложении. Особенно отдельные проблемы, которые могут потребовать уникальной аутентификации или компоновки/стиля для каждой области. Например, я работаю над приложением, имеющим "модули". Каждый модуль является областью mvc и каждым модулем в качестве секции установки, которая также является областью mvc. Приложение имеет три модуля, так что это в общей сложности шесть областей - с шестью правами пользователей, чтобы идти вместе с ними. Это позволяет каждому модулю иметь новую "главную страницу/макет" (внешний вид) и определенный уровень безопасности.
Это помогает также отделить код; код в AreaA не имеет ничего общего с кодом в AreaB, но иногда AreaA и AreaB используют общий код, найденный в корне проекта.
У неземных частей сайта есть такие вещи, как пользовательский логин, страницы ошибок (404 и т.д.), основная область "пусковая установка" для ввода модулей, обработки исключений и других объектов, которые пересекают любая из областей mvc.
Ответ 3
Наиболее практично, когда вам нужно отдельное управление и повторное использование имен контроллеров. Как вы могли бы использовать его для сайта администрации, блога и т.д.