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 framework. It also includes user controls and lots of enterprise library classes. The MVVM framework differs itself from other frameworks of the simplicity and solves the "nested user control" problem with dynamic viewmodels for user controls. | |
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. | |
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. | |
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. |
Platform support
Catel | Caliburn.Micro | Cinch (V2) | MVVM light | |
WPF support | ||||
Silverlight support | ||||
Windows Phone 7 support | ||||
Available via NuGet |
ViewModelBase functionality
Catel | Caliburn.Micro | Cinch (V2) | MVVM light | |
INotifyPropertyChanged | ||||
IDataErrorInfo | ||||
IWarningErrorInfo | ||||
Support for canceling data | ||||
Support for confirming data | ||||
Automatic property definitions | ||||
Automatic model communication (mappings) |
View model services
Catel | Caliburn.Micro | Cinch (V2) | MVVM light | |
IMessage(Box)Service | ||||
IOpenFileService | ||||
IPleaseWaitService | ||||
IProcessService | ||||
ISaveFileService | ||||
IUIVisualizerService | ||||
Unit test versions of services |
General features
Catel | Caliburn.Micro | Cinch (V2) | MVVM light | |
Communication with other VM via messenger | ||||
Communication with other VM via attributes | ||||
Communication with other VM via mediators | ||||
RelayCommand / DelegateCommand | ||||
EventToCommandTrigger | ||||
IoC container support | ||||
MEF support | ||||
Background task manager | ||||
ViewModelManager with live VM instances | ||||
Project and item templates | ||||
Design time example data support |
UI features
Catel | Caliburn.Micro | Cinch (V2) | MVVM light | |
MVVM specific window | ||||
MVVM specific user control | ||||
Dynamic view-model injection | ||||
Control to VM communication via attributes |
1 comment:
Could you please add Simple MVVM to your comparison matrix please ?
Post a Comment