I recently worked on a .Net WPF project to build a retail point of sale system where I used the MVP pattern for the first time. It took me a little while to wrap my head around the change of approach but once I did that I thought that the concept rocked!
My question is this: what is the distinction between MVC, MVP and MVVM? If there is a clear distinction, are there guidelines as to when you should use one pattern over another?
If anyone can offer guidance on this, or point to article that explains the differences I'd very much appreciate it.
Microsoft's Application Architecture Guide describes MVC and MVP, and explores the differences between the two.
http://www.codeplex.com/AppArch
This MSDN article describes MVVM and it's evolution.