Project Description
Designed to aid in the development of WPF and Silverlight applications, Caliburn implements a variety of UI patterns for solving real-world problems. Patterns that are enabled by the framework include MVC, MVP, Presentation Model (MVVM), Commands and Application Controller.Goals
- Support building WPF/SL application that are TDD friendly.
- Implement functionality for simplifying various UI design patterns in WPF/SL. These patterns include MVC, MVP, Presentation Model (MVVM), Commands, etc.
- Ease the use of a dependency injection container with WPF/SL.
- Simplify or provide alternatives to common WPF/SL related tasks.
- Provide solutions to common UI architecture problems.
…”
“Actions
Actions extend the databinding capabilities of WPF/SL by enabling a UI to bind not only to data but to methods. Caliburn uses triggers to wire events, gestures, and attached events (extensible to any trigger type you can think of) to methods on a presentation-related class. This type of method binding removes much of the glue code involved in building an MVC or MVP architecture. Additionally, it enables very rich Presentation Model (MVVM) scenarios. …
Commands
Caliburn's command implementation is an alternative to WPF's and supplies very useful functionality that is altogether missing from Silverlight. As you might expect, it is an implementation of the Command Pattern. . …
MVP and Application Controller
Two common patterns that occur in applications are Supervising Controller and Application Controller. Caliburn supports architectures based on these ideas directly through its various implementations of the IPresenter interface. …
Presentation Model and MVVM
Caliburn also supplies a set of base classes that enable transactional editing, n-level undo/redo, dirty tracking and validation. These classes are perfect for creating an editable ViewModel or representing the “Model” portion of the MVP triad when utilizing a Supervising Controller. …
Testability
One of the goals of Caliburn is to make it easier to build applications right. To this effect, Caliburn has features geared around unit testing. There is currently rich support for testing databindings in WPF and a simple fluent interface for verifying change notification on model objects. …
Utilities
Various utility classes and extension methods are provided as part of Caliburn. The most popular of which is the Execute static class, which enables a developer to easily execute code on a background thread or on the UI thread.
…”
“…
Release Notes
In this version:
- Refactored assemblies for greater ease of use.
- Implemented Application base classes that support model-first development.
- Introduced IViewStrategy and the View.Model attached property.
- Added CommandSource triggers
- Tweaked the implementation of Actions/Commands so that it performs better and is more intelligent
- Updated dependencies
- Added a WPF version of the LOB Sample
- Factored out mini-frameworks for the LOB samples.
- Implemented binding validation of hierarchical path notation.
- Fixed many bugs throughout the framework.
…”
This is a non-trivial project, with a great deal of finishing touches you might not expect such as documentation, samples, etc.
Given its complexity, you might think that getting the source to work on your machine might be challenging? Nope, not for me at least. Downloaded and compiled the first time for me with no problems (which if you’ve ever released source you know can be a pain)
Project added to my watch list. :)
No comments:
Post a Comment
NOTE: Anonymous Commenting has been turned off for a while... The comment spammers are just killing me...
ALL comments are moderated. I will review every comment before it will appear on the blog.
Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...
I reserve, and will use, the right to not approve ANY comment for ANY reason. I will not usually, but if it's off topic, spam (or even close to spam-like), inflammatory, mean, etc, etc, well... then...
Please see my comment policy for more information if you are interested.
Thanks,
Greg
PS. I am proactively moderating comments. Your comment WILL NOT APPEAR UNTIL I approve it. This may take some hours...