I joined the project not long after this and started looking forward to working on the source code. Since then I have fixed a few problems in the current development version and actually checked source in. This probably doesn’t seem like a big achievement, however this is my first OSS and I am proud to be contributing.
The current goal for the project is to finish Doppler 3 CTP and make it stable enough to release. We seem to be getting rid of problems at a reasonable rate and aim to have this task complete by the end of January 2008.
In the middle of December we had a Live Meeting to discuss the future of the project, the roles people will play and what we want to get out of the time working with the code base.
It was decided that we would try and re-write the application using as much of the technology provided in the .net 3.5 stack as possible. This would include: -
- Windows Workflow Foundation for managing background tasks, such as checking feeds and downloading enclosures.
- Windows Communication Foundation for parsing syndicated content, specifically (System.ServiceModel.Syndication).
- Windows Presentation Foundation for the user interface experience.
- System.AddIn for providing an Add In model for non-core features and 3rd party modules.
- Visual Studio 2008 as a development environment.
- ClickOnce as a deployment method.
- MSBuild for all build related scripting.
I am sure that there are some areas that I have missed, this is what I can remember right now.
We are going to attempt to use a Test Driven Design approach with Behaviour Driven Development style specifications to drive the project. The BDD documentation will provide a set of user stories that we will attempt to prioritise and split into iterations. I am not sure how well this is going to work on an OSS project, but it will be interesting to see.
I believe that one of the important decisions made was that anything used during the development of Doppler v4 will be available freely, or at least have a free version available. The tools that are in use right now, that I know of, are :-
- NUnit testing framework
- Rhino Mocks mocking framework
- TeamCity for continuous integration server
- NCover + NCoverExplorer for code coverage analysis
TeamCity and NCover are both commercial products; however JetBrains offer a free professional version of the TeamCity and Gnoso still make some beta versions of NCover available for free. Both companies also provide a free license for OSS projects. We are currently using the free professional version of TeamCity, with the intention of approaching them for an OSS license shortly. Gnoso have already granted us an OSS project license for professional version of NCover and NCoverExplorer.
The reason for choosing NUnit instead of the build in testing features of Visual Studio 2008 was two-fold: -
- Visual Studio 2008 Express editions do not support the Microsoft Test features.
- NUnit is familiar to several of the developers and is an excellent testing framework.
As I work with the Doppler project I am going to write about my experiences on here. The first subject will be the setting up of a Continuous Integration process for the project.