Fat-free MVVM for WPF and Silverlight.
No assemblies, no dependencies, no fuss.
Q: What is MVVM?
A: MVVM is an architectural pattern for
in GUI applications.
Q: What does MVVM stand for?
A: Model View ViewModel
- Model: an object model that represents the real state content
- View: all elements displayed by the GUI such as buttons, windows, graphics, and other controls
- ViewModel: a “Model of the View”
Q: When should I use MVVM?
A: If you want to unit test
your UI code as far as the View Model.
Q: When shouldn't I use MVVM?
A: MVVM is
for simple UI operations.
Q: Do I need a framework
to implement MVVM?
Q: Do I need MVVM Zero to implement MVVM?
Q: Do I need to read a book to understand the MVVM pattern?
Q: Will you be adding a plethora of incidental functionality to MVVM Zero in the future?
- "Another confusion point is with the frameworks surrounding MVVM. Some I'm very familiar with include PRISM, MVVM Light Toolkit, Caliburn Micro and Cinch. While these
frameworks and toolkits are widely used and can prove very valuable, they're
not essential for MVVM." - John Papa, Technical Evangelist for Microsoft
- "MVVM has only two truly distinctive technical advantages: automated testing of the view logic and
integrated design time data. Lots of developers don’t care about either." - Ward Bell, Microsoft MVP
- "MVVM happens to be a leading pattern. However, many people throw a lot of extra complexity into the definition of MVVM, burdening it with things that really are optional and
confusing the community in the process." - Pete Brown, Microsoft Community PM WPF/Silverlight
- "For simple UI, M-V-VM can be overkill. In bigger cases, it can be hard to design the ViewModel up front in order to get the right amount of generality.
Data-binding for all its wonders is declarative and harder to debug than nice imperative stuff where you just set breakpoints (though if you have lots of events running around, it may not be much different)." - John Gossman, Microsoft Architect
for WPF and Silverlight