These are good questions! Validation is owned by the BOTH Model and ViewModel (s). This is how I usually approach him:
First, I put the greatest possible check in the Model - these will be rules that are not dependent on this presentation. For example, suppose an employee in your domain is invalid if it does not have an EmployeeNumber property that is not null and six characters in length, and each of the six characters must be a digit.
-, ViewModel, IDataErrorInfo. , , , ( IDataErrorInfo). IDataError info , ...
, , , . () , , , , , . , , FullName component/valueObject Employee, , , ViewModel , , .
, Validator - NHibernateValidator, , , () . , NHibernate, , . , ( MyDomainImpl). .
, . , , - .
,
Berryl