Во-первых, прежде чем кто-то кричит обмануть, мне было сложно суммировать его в простом названии. Другое название могло бы быть: "В чем разница между моделью домена и моделью MVC?" или "Что такое модель?"
Концептуально я понимаю модель как данные, используемые представлениями и контроллером. Помимо этого, похоже, существует много разных мнений о том, что составляет модель. Что такое модель домена и модель приложения, а также модель представления, а также модель обслуживания и т.д.
Например, в недавнем вопросе, который я задал о шаблоне репозитория, мне было сказано, что репозиторий является частью модели. Однако я прочитал другие мнения о том, что модель должна быть отделена от модели сохранения и уровня бизнес-логики. В конце концов, разве шаблон репозитория не должен отделять конкретный метод сохранения от модели? Другие люди говорят, что существует разница между моделью домена и моделью MVC.
Возьмем простой пример. AccountController, который включен в проект MVC по умолчанию. Я прочитал несколько мнений о том, что включен код учетной записи плохой дизайн, нарушает SRP и т.д. И т.д. Если кто-то должен был создать "правильную" модель членства для приложения MVC, что бы это было?
Как бы вы отделили службы ASP.NET(поставщик членства, поставщик ролей и т.д.) от модели? Или вы вообще?
Как я вижу, модель должна быть "чистой", возможно, с логикой проверки... но должна быть отделена от бизнес-правил (кроме проверки). Например, допустим, у вас есть бизнес-правило, в котором говорится, что кто-то должен быть отправлен по электронной почте при создании новой учетной записи. На мой взгляд, это действительно не относится к модели. Так где же это?
Кто-нибудь хочет пролить свет на эту проблему?