178 people following this project (follow)

Catel is an application toolkit with the focus on MVVM, and consists of two basic pillars and extensions:

Catel.Core contains an IoC container, data objects, validation, memento, message mediator, argument checking, etc. This can be used in any application and is not specific for Windows applications.

Catel.MVVM contains all the MVVM classes such as ViewModelBase, Command, services, etc.

Catel also provides extensions such as Controls, FluentValidation and Prism.

The release cycle is very short (4 weeks), so all found features and bugs are solved within 4 weeks.

If you are not convinced yet, take a look at the MVVM comparison sheet and you will be convinced.

Donations are welcome

Writing and supporting Catel takes time, lots of time. To thank the team, you can donate some money which we will use to buy a beer in the weekends:

YES, I WOULD LIKE TO MAKE A DONATION

Follow us on Twitter

You can follow us on twitter: @CatelMvvm

Latest blog posts

 Geert van Horrik News Feed 
Sunday, May 06, 2012  |  From Geert van Horrik
Sunday, May 06, 2012  |  From Geert van Horrik
Friday, April 27, 2012  |  From Geert van Horrik
Thursday, March 29, 2012  |  From Geert van Horrik
Sunday, March 18, 2012  |  From Geert van Horrik
 Geert van Horrik News Feed 


Looking for examples?

The examples are located in a separate repository at http://catelexamples.codeplex.com.

Core

The core library of Catel contains some very useful classes, even when not developing anything with MVVM (but, for example, a website):
  • Argument class (always check your input, now easy with Argument.IsNotNull("argument", argument), etc)
  • IoC container (with extented support for Unity, MEF, Ninject, Windsor, etc)
  • Memento pattern
  • MessageMediator (mediator pattern)
  • WeakEventListener (no more memory leaks, works for all target frameworks)

MVVM

The MVVM framework includes the following features that differs this project from other frameworks:
  • Communication with other view models via simple attributes, no messengers needed (but still, a MessageMediator is available)
  • Solves the nested user controls problem in MVVM, view models are created on the fly when needed based on the datacontext
  • UserControl<TViewModel> and DataWindow<TViewModel> that are fully compatible with the MVVM framework and easy to use

nestedusercontrols_overview.png

Of course, the framework also implements the features you can find in any MVVM framework:
  • ViewModelBase with INotifyPropertyChanged, IDataErrorInfo, INotifyDataErrorInfo support
  • Command (a.k.a. RelayCommand)
  • EventToCommand and lots of other behaviors
  • View Model Services such as the IMessageService, IPleaseWaitService, IUIVisualizerService, etc
  • Design-time data support

Articles and blog posts

There are several article s available about Catel. The articles are posted on The Code Project:

Need help or consultancy?

If you need help, don't hesitate to create a new discussion. If you need more advanced help, we are also available for consultancy!

Sponsors

Available languages

Last edited Tue at 6:12 AM by GeertvanHorrik, version 159