То, что должно войти в Модель, также разрешено входить в View-Model i.e Public Properties, IDataErroInfo и INotifyPropertyChanged, то что должно действительно входить в модель?
Что входит в модель в MVVM?
Ответ 1
Model
Business Data + Business Logic + Business Rules
Вид
Application UI
ViewModel
Wrapper Over Model which is ealily readable/bindable by View
using minimum Effort/Code.
1) IDataErrorInfo
- нужно войти в ViewModel
2) INotifyPropertyChanged
- следует перейти в ViewModel
и Model
(если необходимо, не рекомендуется для модели)
3) Public Properties
- Да, конечно, должен иметь их.
Ответ 2
Предположим, вы собираетесь написать пакетный процесс для загрузки данных. Пакетный процесс будет доступен только для модели, поэтому все, что вам нужно для обработки бизнес-правил, отделенных от пользовательского интерфейса, принадлежит модели. ViewModel может иметь некоторые бизнес-правила, но только в том, что касается пользовательского интерфейса.
В приложении, которое я создаю, Views и ViewModels находятся в одной сборке, а Модель - в другой. Модель не имеет ссылок на сборку View, и только сборка модели имеет ссылки на базовое хранилище данных (комбинация вызовов Linq и веб-сервисов).