6. February 2011 14:44
Last time, I spent lots and lots of time developing Catel. Catel is a free open-source MVVM Framework for WPF and Silverlight. I already wrote lots of articles for Catel on CodeProject, but now it’s time to give it some space on my blog as well.
This introduction text will provide you with some basic information about the framework and where to start the search for articles and examples.
The project website is http://catel.codeplex.com. You can find all the actual and relevant information about the project here.
It’s not only an MVVM Framework, but what’s more in the package?
The library also includes logging options (based on log4net), data handling, file handling and more. A cool thing to tell is that the IO namespace of Catel actually supports directory- and filenames longer than 256 characters. The namespace works exactly the same as the System.IO namespace, except that the Catel.IO namespace supports long filenames. Why didn’t Microsoft think of this before…
To get a decent understanding of Catel, it is very important to read the articles that I’ve written. The articles are written in a numbered articles series so it should be pretty clear in what order they should be read :
- Catel - Part 1 of n: Data handling the way it should
Before you actually start reading about the MVVM Framework, it is very important to understand how the most powerful class of Catel works, the DataObjectBase. This class can be used as base class for data objects (a.k.a. models). This article tells you everything about this powerful class.
- Catel - Part 2 of n: Using WPF Controls and Themes
Catel includes lots of WPF controls and themes to make application development easier. Without even using the MVVM Framework, you can use the themes and controls to ease your application development. Catel actually contains most of the controls and classes I blogged about earlier on this blog.
- Catel - Part 3 of n: The MVVM Framework
Finally, some information about the actual MVVM Framework. This article explains the real power of the MVVM Framework. Besides the regular features that other MVVM Frameworks also provide, Catel makes it much easier to communicate with the models via simple attributes, automatic validation, nested user controls (dynamic view models, really cool feature) and much more!
- Catel - Part 4 of n: Unit testing with Catel
When you are writing an application, it is very important to deliver quality above quantity, right? Yes it is! Therefore, a separate article about unit testing an application (including a “real-life” example) is available. No difficult mocking etc, just use the provided test implementations of the view model services which can easily be injected via Unity.
- Catel - Part 5 of n: Building a WPF example application with Catel in 1 hour
Last but not least, this example shows how to create an application from scratch using Catel. The application being created is a Social Media application that shows updates from both Twitter and Facebook.
Quality of the framework
Of course Catel is more than just a hobby project. Therefore, we strive to deliver a quality framework. We do this by writing lots of documentation, examples, demos and unit tests. At the moment, Catel is covered by unit tests for 60 % (it’s just useless to strive for a 100% coverage, it will take up too much time that can be spend on actual features), Catel contains over more than 450 unit tests.
Becoming interested in the project? That’s great! If you are interested, start by downloading the latest source code and build it yourself. The solution of Catel includes all the source code explained in the articles, but also some demo applications (both in WPF and Silverlight). If you really like the framework and want to contribute, just let us know! We can always use talented developers on the team!