По-перше, перш ніж хтось кричав дурнем, мені було важко сформулювати це в простому заголовку. Інший заголовок міг би бути "Яка різниця між моделлю домену та моделлю MVC?" або "Що таке модель?"
Концептуально я розумію Модель як дані, що використовуються поданнями та контролером. Крім цього, мабуть, є багато різних думок щодо того, з чого складається модель. Що таке модель домену проти моделі додатка, моделі перегляду, моделі обслуговування тощо.
Наприклад, у недавньому запитанні, яке я запитав про шаблон сховища, мені прямо сказали, що сховище є частиною моделі. Однак я читав інші думки, що модель слід відокремлювати від моделі стійкості та рівня бізнес-логіки. Зрештою, хіба шаблон Репозиторію не повинен відокремлювати конкретний метод стійкості від моделі? Інші люди кажуть, що існує різниця між моделлю домену та моделлю MVC.
Візьмемо простий приклад. AccountController, який входить до проекту за промовчанням MVC. Я прочитав кілька думок про те, що включений код облікового запису має поганий дизайн, порушує SRP тощо. Тощо. Якщо б хтось розробив "належну" модель членства для програми MVC, що це було б?
Як би ви відокремили послуги ASP.NET (постачальник членства, постачальник ролей тощо) від моделі? Або ти хотів би взагалі?
Як я бачу, модель повинна бути "чистою", можливо, з логікою перевірки .. але повинна бути окремою від ділових правил (крім перевірки). Наприклад, припустимо, у вас є бізнес-правило, згідно з яким хтось повинен отримувати електронну пошту при створенні нового облікового запису. На мій погляд, це насправді не належить до моделі. То де воно належить?
Хтось хоче пролити світло на це питання?