Introduction
Model View ViewModel (MVVM) is a UI software design pattern similar to Model View Controller (MVC). MVVM allows separation of concerns and makes the application very flexible and easy to maintain. Designers can work independently with the user interface while developers work on the model and the back-end coding.
Applications built on the MVVM pattern should have the following three distinctive layers:
View: This is the front-end or user interface code such as XAML with very little or no code-behind.
ViewModel: This is the code between View and Model. ViewModel acts as a bridge between the user interface and the model. This layer can have all the presentation layer code that connects to the model. This makes it easy to test the user interface functionality of the application.
Model: This layer contains the classes that represent data or entities. This can include business logic and data access layers.
MVVM also will have notification mechanism to send a message to the client...