After asking some questions of the community and doing some thinking, I've finally devised a plan of action for Caliburn:
- I'm going to freeze the current source code where it's at. Anyone who is using it can be assured that it's not going anywhere. However, I will not be making additional changes to that branch.
- In the next few weeks I'll be committing a brand new code base that will be the foundation for Caliburn from here on out. There will be a single code base that builds for both WPF and Silverlight 2.0.
- I'll be focusing my work on the ActionMessage feature from Caliburn. The API will be changing slightly, but the core features will remain the same. This is necessary to enable Silverlight. The reworking of code will also enable several other improvements such as: performance enhancements, better exceptions, more extensibility points and in many cases, simpler code.
- The assemblies will be more componentized, enabling developers to more easily pick and choose features. For example, my new architecture has a Caliburn.Core assembly and a Caliburn.Actions assembly. In the future, I may add things like Caliburn.Events, Caliburn.Commands, etc. I am convinced that this is a good architectural decision overall and it has the added benefit of helping Silverlight developers to keep their download size small, by selective use of features.
- I will be providing a full unit test suite.
- As I hit various milestones, I'll be building simple demo applications and blogging about the use of various features.
- When I am satisfied with the feature set and quality of Caliburn.Actions I will make an official release. At that time, I will consider what feature to work on next, but in the mean time, I would love to here from you.
This is a fairly daunting task, but I'm pretty excited about it. "Actions" were always the heart of Caliburn, in my mind, so I'm resolved to focus on getting it done right. Last night I finished getting my prototype to compile for WPF and Silverlight, so I'm on my way.
Since it is going to be a challenge creating a common code base for both platforms, I'm going to be blogging about that as well. I've got two posts coming up that are related. The first will detail using NAnt to build WPF and Silverlight apps and the second will detail several of the differences between the two platforms. Stay tuned!
06-24-2008 1:19 PM