Должен ли контроллер MVC находиться в отдельной DLL? - PullRequest
7 голосов
/ 23 января 2009

Я создал .NET winforms MVC. Контроллер и Вид находятся в одном и том же EXE-файле. Модель находится в наборе библиотек DLL, которые используются несколькими группами. MVC очень явный. Модель ничего не знает о контроллере, а контроллер ничего не знает о представлении. Я думаю поставить контроллер в свою собственную DLL, чтобы он мог быть протестирован модулем. Сильно в отличие от кого-то будет повторно использовать контроллер. Модульное тестирование является единственной причиной У меня есть для перехода в DLL.

Концептуально, должен ли контроллер всегда находиться в одной сборке с View? Каковы причины за / против их сохранения?

1 Ответ

5 голосов
/ 23 января 2009

Разделение контроллеров и представлений - абстрактное понятие. Нет строгого правила, согласно которому вы должны физически хранить их отдельно (так же, как уровни в трехуровневом приложении). Однако в любом подходе могут быть некоторые преимущества.

Разделение сборок имеет следующие преимущества:

  • Уменьшает возможность случайного соединения видов с контроллерами и нарушения разделения.
  • Упрощает редактирование представлений без перекомпиляции контроллеров вообще (что прекрасно с точки зрения развертывания).
  • Виды здания и контроллеры разделяются, поэтому вы можете протестировать один из них, даже если другой вообще не собирается.

Однако это может быть невозможно для небольших проектов. Для очень маленьких проектов вы можете захотеть отправить один исполняемый файл и ничего более. Кроме того, вы можете не захотеть создавать 3 отдельных проекта.

Эй, ты не можешь вообще тестировать его;) Ой, у меня болит голова, откуда взялся этот большой кирпич? :))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...