Presentation Patterns – Model – View – View Model (MVVM)
What is MVVM?
MVVM is a popular presentation pattern used in Silverlight and WPF that is a specialization of the Presentation Model design pattern introduced by Martin Fowler. MVVM leverages the powerful data binding capabilities of Silverlight and WPF to provide clear boundaries between UX design and development. This separation of concerns naturally leads to more testable and maintainable applications and provides a solid foundation for incorporating patterns and practices such as IoC and TDD.
What else should I know?
Due to the abstract nature of the MVVM pattern, there has been a lot of confusion regarding its implementation. Although there are now a number of open source frameworks available that resolve many of the common issues encountered when adopting MVVM, there are still significant challenges to be overcome.
How can iMeta help me?
As iMeta are committed contributors within the open source community we are uniquely positioned to help you leverage the various frameworks available and can provide training, consultancy and bespoke solutions. Here are a few of the most common MVVM related pain points we have helped our customers with:
- Framework Adoption (e.g Caliburn, PRISM)
- Test Driven Design/Development (TDD)
- Inversion of Control (IoC)
- Design Patterns (Command pattern for example)