In this MVVM framework comparison sheet includes as many aspects as possible. However, it might be possible that some were missed. If you have features that are not included in the comparison sheet, or you find that information is incorrect, please let us know!
Below is short list of definitions:
Definition | Explanation |
---|
VM | View-Model |
Frameworks reviewed
Framework | Description | Website |
---|
Catel | Catel is more than just an MVVM toolkit. It also includes user controls and lots of enterprise library classes. The MVVM toolkit differs itself from other frameworks of the simplicity and solves the "nested user control" problem with dynamic viewmodels for user controls | http://catel.codeplex.com |
Caliburn.Micro | A small, yet powerful implementation of Caliburn designed for WPF, Silverlight and WP7. The framework implements a variety of UI patterns for solving real-world problems. Patterns that are enabled include MVC, MVP, Presentation Model (MVVM), and Application Controller. | http://caliburnmicro.codeplex.com |
Cinch (V2) | Cinch is a MVVM framework that exposes a number of helper classes to allow the developer to quickly get to grips with creating scalable testable MVVM frameworks as quickly as possible. | http://cinch.codeplex.com |
MVVM light | The MVVM Light Toolkit is a set of components helping people to get started in the Model - View - ViewModel pattern in Silverlight and WPF. It is a light and pragmatic framework that contains only the essential components needed. | http://mvvmlight.codeplex.com |
Simple MVVM toolkit | Simple MVVM Toolkit makes it easier to develop Silverlight, WPF and WP7 applications using the Model-View-ViewModel design pattern. The purpose of the toolkit is to provide a simple framework and set of tools for getting up to speed quickly with applications based on the MVVM design pattern. The emphasis is on simplicity, but it contains everything you need to implement MVVM for real-world line of business applications. | http://simplemvvmtoolkit.codeplex.com/ |
WAF | The WPF Application Framework (WAF) is a lightweight Framework that helps you to create well structured WPF Applications. It supports you in applying a Layered Architecture and the Model-View-ViewModel (aka MVVM, M-V-VM, PresentationModel) pattern. | http://waf.codeplex.com/ |
Platform support
| Catel | Caliburn.Micro | Cinch (V2) | MVVM light | Simple MVVM | WAF |
---|
WPF | | | | | | |
---|
Silverlight 4 | | | | | | |
---|
Silverlight 5 | | | | | | |
---|
Windows Phone 7 | | | | | | |
---|
Windows Phone 8 | | | | | | |
---|
WinRT | | | | | | |
---|
Available via NuGet | | | | | | |
---|
UI features
| Catel | Caliburn.Micro | Cinch (V2) | MVVM light | Simple MVVM | WAF |
---|
MVVM specific window | | | | | | |
---|
MVVM specific user control | | | | | | |
---|
Dynamic view model injection | | | | | | |
---|
Lazy loading of view models | | | | | | |
---|
View to VM communication via attributes | | | | | | |
---|
Events when views are actually loaded | | | | | | |
---|
ViewModelBase functionality
| Catel | Caliburn.Micro | Cinch (V2) | MVVM light | Simple MVVM | WAF |
---|
INotifyPropertyChanged | | | | | | |
---|
IDataErrorInfo | | | | | | |
---|
IDataWarningInfo | | | | | | |
---|
Support for canceling data | | | | | | |
---|
Support for confirming data | | | | | | |
---|
Automatic property definitions | | | | | | |
---|
Automatic model communications (mappings) | | | | | | |
---|
Generate features
| Catel | Caliburn.Micro | Cinch (V2) | MVVM light | Simple MVVM | WAF |
---|
Communication with other VM via messenger | | | | | | |
---|
Communication with other VM via attributes | | | | | | |
---|
RelayCommand / DelegateCommand | | | | | | |
---|
EventToCommand trigger | | | | | | |
---|
IoC container support | | | | | | |
---|
Unity support | | | | | | |
---|
MEF support | | | | | | |
---|
Background task manager | | | | | | |
---|
ViewModelManager with live VM instances | | | | | | |
---|
Project and item templates | | | | | | |
---|
Design time example data support | | | | | | |
---|
Memento pattern | | | | | | |
---|
View model services
| Catel | Caliburn.Micro | Cinch (V2) | MVVM light | Simple MVVM | WAF |
---|
IMessage(Box)Service | | | | | | |
---|
INavigationService | | | | | | |
---|
IOpenFileService | | | | | | |
---|
IPleaseWaitService | | | | | | |
---|
IProcessService | | | | | | |
---|
ISaveFileService | | | | | | |
---|
IUIVisualizerservice | | | | | | |
---|
Unit test versions of services | | | | | | |
---|
Windows Phone specific view model services
| Catel | Caliburn.Micro | Cinch (V2) | MVVM light | Simple MVVM | WAF |
---|
IAccelerometerService | | | | | | |
---|
ICameraService | | | | | | |
---|
ICompassService | | | | | | |
---|
IGyroscopeService | | | | | | |
---|
ILocationService | | | | | | |
---|
INavigationService | | | | | | |
---|
IVibrateService | | | | | | |
---|