Presentation Architecture Design Patterns
These patterns are useful when you are creating the presentation layer.
MVC

Separated the application into 3 areas of concern.
- Designed for presentation layers.
- View handles output.
- Model handles data.
- Controller handle interaction.
| Pros | Cons |
| Strict separation of concerns | High overhead |
| Scales well | Scattered code |
| Hard to data-bind |
MVVM

- Derived from MVC Pattern
- View handles output
- Model handles data
- View Model is binding source
| Pros | Cons |
| Strict separation of concerns | High overhead |
| Scales well | Scattered code |
| Easy to data-bind | Controller not separated |
