Silverlight Model-View-ViewModel-Presenter
Terms Defined
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
M-V-P (em-vee-pee)
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.
M-V-VM (em-vum)
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.
M-V-VM-P (em-vump)
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.