В настоящее время в моем приложении и использовании шаблона работы и общего репозитория все мои контроллеры содержат всю бизнес-логику. Я пытаюсь использовать все возможности ViewModels вместо прямой модели.
Хотя это хорошая идея, теперь возникает вопрос, который может значительно отделить мою бизнес-логику в контроллерах. Для контроллеров и ViewModels, которые должны содержать большую часть бизнес-логики?
Я пробовал несколько способов заставить мои ViewModels практически содержать всю бизнес-логику. Тем не менее, мне нужно иметь аргумент в моем конструкторе ViewModel, который принимает подразделение работы. Это хорошая идея?
Мой запах кода говорит мне об этом. Тем не менее, я просто немного обеспокоен тем, как это будет согласовано с контроллерами, которые выполняют действия, не требующие ViewModels. Проще говоря, действия, которые не требуют передачи модели /ViewModel в представление; этот случай происходит при действиях, которые перенаправляются на другие действия. Это означает, что моя бизнес-логика может либо остаться в этом действии, либо я могу отделить эту бизнес-логику от функции.
Какая здесь самая лучшая практика?