MVC Области для предприятия - хорошие или плохие?
В рамках одного решения по проекту, представляющего области, когда у вас много контроллеров, улучшается разделение и позволяет легко копировать модули в решение или из него. Однако в крупном корпоративном решении я бы предпочел разделить логику на отдельные проекты.
Таким образом, существуют отдельные проекты интерфейса, контроллера, SOA, модели и репозитория. В этом сценарии области больше не имеют смысла, плюс они добавляют дополнительный верхний уровень к Url, который часто не нужен, хотя я считаю, что вы можете опустить область в URL, если вы держите свои контроллеры уникальными, но не что немного вонючий?
Возможно, области хороши для сайтов средней сложности или когда код модуля лучше хранится в одном месте, поэтому его можно скопировать на другие сайты или удалить.
Ответы
Ответ 1
Я не уверен, что это правильный вопрос. Области могут быть слишком сложными для небольших проектов, но трудно представить себе, что нетривиально большой проект не использует области, чтобы помочь сохранить организованные классы.
Я использую области MVC для предприятия и люблю несколько вещей об этом:
- Обычно люди работают над функцией в пределах данного домена (например, Search, Checkout и т.д.). Если имена областей соответствуют вашим бизнес-доменам, Области MVC помогают сократить время, затрачиваемое на реализацию функции, поскольку связанные классы легко найти.
- Маршрутизация MVC дает вам тонкость гибкости относительно того, как структурировать URL-адреса. Раньше я использовал "Контроллер действия" "шаблон" , но для URL-адресов, не относящихся к публике, я только что полностью охватил маршрут по умолчанию в регионе, чтобы упростить.
- Области дают вам особое преимущество стилизации и, что более важно, инкапсулирующего поведения на уровне раздела сайта. Каждая область получает свою собственную веб-конфигурацию, где вы можете управлять базовым представлением или добавлять управляемые обработчики.
Вы абсолютно правы, что услуги должны быть в отдельных проектах/решениях вообще, которые абстрагируют доступ к данным через репозитории, в среде, где несколько клиентов могут обращаться к общим бизнес-функциям.
Но области MVC отлично подходят для предоставления некоторого порядка хаосу UI/маршрутизации, поскольку веб-проект растет, что для меня неоценимо, независимо от контекста.
Ответ 2
Прежде всего, прежде чем ответить, обратите внимание, что это только мое мнение, и в основном это касается моделей.
Как я вижу, области могут быть настолько злыми. Если у вас много областей, ваш исследователь решений становится лабиринтом, и ему может быть так сложно что-то найти.
Я предлагаю создать новый проект библиотеки внутри вашего решения и разместить там логику.
Лучшее преимущество (и это не то, что вы можете найти то, что вы ищете намного проще) заключается в том, что ваше приложение становится гораздо более модульным. Если вы создаете библиотеку и указываете ссылку для нее в приложении ASP.NET MVC, вы не можете легко ошибиться и задействовать интерфейс в логике.