Rating:        Based on 3 ratings
Reviewed:  2 reviews
Downloads: 716
Change Set: d2073a402df1
Released: Aug 4, 2011
Updated: Aug 4, 2011 by GeertvanHorrik
Dev status: Stable Help Icon

Recommended Download

Application Catel 2.0 - libraries
application, 2405K, uploaded Aug 4, 2011 - 306 downloads

Other Available Downloads

Source Code Catel 2.0 - source
source code, 20146K, uploaded Aug 4, 2011 - 141 downloads
Documentation Catel 2.0 - reference documentation
documentation, 12879K, uploaded Aug 4, 2011 - 159 downloads
Source Code Catel 2.0 - code snippets
source code, 8K, uploaded Aug 4, 2011 - 110 downloads

Release Notes

Catel history

(+) Added
(*) Changed
(-) Removed
(x) Error / bug (fix)

For more information about issues or new feature requests, please visit:


Version 2.0

Release date:

(+) Added support for Windows Phone 7 Mango
(+) Added MVVM services for the following WP7 capabilities:
* Accelerometer
* Compass
* Gyroscope
* Vibration
(+) Added behavior for UserControl<TViewModel>, DataWindow<TViewModel> and Page<TViewModel>
so it is no longer required to derive from these classes to get the same behavior
(+) Added support for auditing and analytics
(+) Added support for data annotations, all registered properties on DataObjectBase
and ViewModelBase can now be decorated with data annotation attributes
(+) Added RaisePropertyChanged as alternative for OnPropertyChanged for the developers
that prefer it. Internally it still uses OnPropertyChanged. Also added type-safe way
to call the method: RaisePropertyChanged(() => MyProperty)
(+) Added CloseViewModelOnUnloaded to UserControl<TViewModel>. If set to false, the control
will not close the view model and re-use it the next time
(+) IPleaseWaitService now implements Pop and Push to allow multiple view models to use the
same please wait service without flickering. Each view model should Push when beginning
and Pop when ending an action. If the last view model calls Pop, the please wait window
is hidden
(+) Added IPleaseWaitService support for Silverlight by using the BusyIndicator
(+) IUIVisualizer now supports naming convention so it is easy to register windows via
naming conventions when the Windows do not implement DataWindow<TViewModel>
(+) BREAKING CHANGE: Added new ServiceLocator which also supports unity, but the references
to unity are no longer required for Catel
(+) Added INavigationService for WPF and Silverlight
(+) Added DoubleClickToCommand and UpdateBindingOnTextChanged interactivity behaviors
(*) BREAKING CHANGE: properties on the EventToCommand implementation for WP7 can now be set
via direct values and bindings (until now, only bindings were supported). So set a value
via a direct value, use the PropertyNameByValue convention
(*) BREAKING CHANGE: removed all obsolete methods marked obsolete in 1.4
(*) BREAKING CHANGE: EventToCommand has been moved to a new namespace (Catel.Windows.Interactivity)
(*) EventToCommand can now disable the associated object if required in Silverlight and WP7
(*) If a view (such as a dialog) is closed from within a viewmodel, the DialogResult is now
correctly being set if supported by the view
(*) Command class now accepts Execute and CanExecute methods without a parameter (very useful
in lots of cases where the parameter is not being used)
(*) Most public methods in the MVVM Services are now marked virtual so it is easy to customize
an out-of-the-box service implementation
(*) ViewModelBase now only registers services in the ServiceLocator when they are not already
registered. This allows customization of the ServiceLocator before viewmodels are actually
(*) It's now possible to add assemblies from a Xap file to AssemblyHelper.RegisterAssembliesFromXap
so AssemblyHelper.GetLoadedAssemblies() also includes dynamically loaded xap assemblies
(*) ViewModelServiceManager is now deleted. Injected services in ViewModelBase always take precedence
over services registered in the ServiceLocator. Since the ServiceLocator fully takes care of
caching, the ViewModelServiceManager is no longer required
(*) DataObjectBase.InitializeProperty is now protected instead of private to enable dynamic property
registeration and initialization


Reviews for this release

good job, keep on going
by Depletion on Aug 27, 2011 at 6:58 AM
really great framework
by benny856694 on Aug 16, 2011 at 5:18 PM