More on MVC and M-V-VM

There have been a raft of interesting articles and discussions of MVC patterns and WPF.  A practical introduction is here:

https://www.codeproject.com/KB/WPF/MVCtoUnitTestinWPF.aspx

I love the article, but must add I have always struggled with RoutedCommands and CommandBindings.  I think the APIs are too complex for what they do, but more importantly I prefer to route commands through my application model, not through WPF's element tree.  The Blend architecture contains a creature called CommandManager which makes sure commands get to their destination, and we tend to Databind directly to properties of type ICommand (I love ICommand, just not its implementation in RoutedCommand).

Meanwhile, Dr. WPF aptly summarizes the controversy:  https://www.drwpf.com/blog/Home/tabid/36/EntryID/27/Default.aspx

Basically, I have found everyone agrees you should separate your Model and your View, but the details of the rest depend on technology and personal preference.