MVVM is a pattern developed by Microsoft to primarily support WPF-based apps. It applies to Windows, Windows Store, and Windows Phone. The primary goals of the pattern are as follows:
This pattern supports Separation of Concerns (SoC). One of the biggest problems of writing code for the old Windows Forms app was that the entire code existed directly behind the UI. As a result, one change could result in problems across the rest of the app. MVVM changes this pattern by separating sections of the code into distinct parts. In particular, the application logic, data, and UI are separated. This allows for new specialties, such as that UI developers can create new and interesting UIs while someone else can work on the application logic.
As XAML supports binding, commands, and dependency properties, the MVVM pattern is ideal because it allows the developer to connect everything together so that the app can be reskinned (by changing out the UI) without breaking the application...