Разделение интересов
Папка модели в шаблоне проекта Asp.net MVC действительно очень запутанная.Большинство разработчиков, недостаточно разбирающихся в паттерне MVC, считают, что модель приложения / предметной области = модель данных.В большинстве случаев это не так.
Например, пользовательский объект может иметь несколько различных форм:
NewUser
- это объект модели приложения, который имеет большинство свойств пользователя, плюс два свойства пароля, которые могут быть декларативно проверены User
объект модели данных имеет все обычные свойства пользователя и одно свойство пароля User
сущность модели приложения имеет все обычные свойства и нет для пароля
Таким образом, вы можете увидеть на этом простом примере несколькомодели, которые отличаются друг от друга.И когда у вас есть приложение с несколькими сборками, очень разумно помещать модель приложения в отдельную сборку, поскольку все сборки, скорее всего, будут взаимодействовать только с использованием этих объектов.Никакие сущности модели данных не должны передаваться за пределы сборки / уровня данных, чтобы использовать SoC ...
Таким образом, в конечном итоге можно поместить модель данных в папку Model при создании небольшого простого приложения, но вво всех других случаях, вероятно, лучше использовать отдельную сборку модели приложения, которая является общей для всех сборок.И есть отдельная модель данных, которая используется только в сборке уровня данных.
Прочитайте этот ответ , который может помочь вам увидеть вещи немного яснее.
И этот также.
Я бы не рекомендовал использовать папку Model и использовать вместо нее отдельную сборку. У вас будет лучшее разделение и улучшенная масштабируемость.