Reputation: 3105
The things which are supposed to go into the Model are also allowed to go into the View-Model i.e. Public Properties, IDataErroInfo and INotifyPropertyChanged, then what should actually go into the model?
Upvotes: 17
Views: 7266
Reputation: 30820
Business Data + Business Logic + Business Rules
Application UI
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)Upvotes: 34
Reputation: 1587
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).
Upvotes: 4