- Model: C# Classes that model the business domain
- View: XAML Markup that contains declarative rendering instructions and mappings to a model.
- Presenter: C# Classes that contain imperative presentation logic and event targets.
- View Model: C# classes that model the visual domain
Strengths: Provides clear separation of presentation logic and event handling from visual rendering instructions. Encapsulates presnetation logic within highly testable containers.
Weaknesses: Lacks a definite contract between the logic and the visual representation.
Strengths: Provides a definite contract between the logic and the visual representation.
Weaknesses: Lacks clear separation between presentation logic and event handling from visual domain model. Presentation logic often not in highly testable containers.
The M-V-VM-P pattern combines these two patterns to produce an optimal balance between separation of visuals and logic and encapsulating imperative presentation logic within highly testable containers.