I’ve seen a lot of examples from guys like Josh Smith and Karl Shifflett on best practices for using MVVM (Model-View-ViewModel). These are really great examples, but I have yet to find anyone doing real-world development in WPF on a LOB (line of business) application applying these principles.
I’m currently in development on a very large application and I will be writing a series of articles on the structure in which it is built including what I am calling Model-View-ModelController; a cross between MVVM and MVC. They obviously won’t entail any of the business specifics, but I want to demonstrate some of the patterns I am using to both give ideas to anyone struggling with the same issues I have and to also learn more through feedback from the community. Any and all feedback will be much appreciated.
The technologies I will be focusing on are WPF, and Linq-To-Sql. A few of the tenets I will be focusing on are
- Views Instantiate the ModelControllers, and other Views
- ModelControllers know NOTHING about the Views
- ModelControllers instantiate Models and other ModelControllers
- Models are simply DTO objects and have no knowledge of the existence of anything other than related Models