I understand the basics of the Model-View-ViewModel pattern or as Dan Crevier calls it the DataModel-View-ViewModel pattern and I understand that it is a good approach to design WPF based applications. But there are still some open question. For example: Where do I put my business logic where my validation logic? How do I decouple the Database (in a way that the underlying storage solution can easily be exchanged) from the Model but still be able to do complex data mining? How do I design the ViewModel that it can observe state changes in the Model?
Do you know of any applications that use this pattern that I could study for evaluate different approaches? Preferably ones where the source code is available?
Or maybe you even know of articles, books, blogs, websites that go a bit more into detail?