What goes in Model in MVVM?
Model
Business Data + Business Logic + Business Rules
View
Application UI
ViewModel
Wrapper Over Model which is easily readable/bindable by View using minimum Effort/Code.
IDataErrorInfo
- Should go into ViewModelINotifyPropertyChanged
- Should go into ViewModel. Could also go in the Model if necessary (But not recommended)- Public Properties - Yes of course a Model should have them.
Assume you are going to write a batch process for a data load. The batch process will only access the model, thus everything you need to process the business rules divorced from the UI belongs in the model. The ViewModel may have some business rules but only as they pertain to the UI.
In the application I am building, the Views and ViewModels are in one assembly and the Model in another. The model has no references to the View's assembly and only the Model assembly has references to the underlying data store (a combination of Linq and web service calls).