Я попытался структурировать свой последний крупный MVC-проект после подхода с лучшей практикой, но не совсем понял, что я делаю.
Он имеет проект Data, Business и Web (MVC), но контроллеры содержат большую часть кода, слой данных использует NHibernate и имеет несколько репозиториев, ответственных за слишком много вещей, а бизнес-уровень - это свалка для все, что не входит в два других проекта. Он работает, но я чувствую, что он мог быть настроен лучше - главные вещи, в которых я недоволен, - это контроллеры жира и хранилища.
Я начинаю новый проект, который может вырасти до приличного размера, поэтому я трачу немного больше времени, пытаясь получить мой дизайн прямо вверх. Прочитав еще немного, я пытаюсь создать репозиторий для каждого узла-заполнителя, а затем иметь сервис на уровне Business для каждого контроллера на уровне презентации.
Мои первоначальные надежды заключались в том, что основная часть кода будет поступать в сервисы, и это в сочетании с меньшими репозиториями позволит уменьшить мои контроллеры и уровень данных. Пока что этого не происходит.
Все, что я прочитал, предполагает, что модели просмотра не должны возвращаться с уровня Business и должны быть заполнены на уровне презентации, поэтому на данный момент мой сервисный уровень в основном передает модели с моего уровня данных до презентации который затем делает то, что ему нужно, чтобы подготовить модели просмотра. Таким образом, у меня все еще есть контроллеры жира, а также тонкий бизнес и уровень данных.
Мой уровень представления также знает как мой бизнес, так и уровень данных, но я думал, что частью этого разделения было сокращение связи?
Неужели я все это не так? Должен ли я перестать пытаться слепо следовать тому, что я читаю в Интернете, и просто подготовить модели просмотра в бизнес-слое, чтобы я мог переместить основную часть моего кода там? Должен ли я просто вернуться к классическому ASP?:)