I’ve been getting a lot of questions lately about my plans for the various OSS projects on my plate. I can’t say that the answers are going to be what you want to hear, but I’ll at least get my official story out here. I’m hoping to make this the last crazy year where I write thousands of lines of code in my free time for these neverending OSS projects, so I really want to see some major milestones and a bit of closure for me.
The Drive to FubuMVC 1.0
Right now, most of my personal focus is on FubuMVC, and specifically the drive to a 1.0 release. I think at this point that there’s more effort in the rear view mirror than there is in front of us to get our first real release out and it’s time to capitalize on what we have already accomplished. I’m excited because FubuMVC has built up some community around it as more developers are using it and contributing features as well.
Ideally, I’d like to make an official beta sometime in April then the real 1.0 release with full documentation by the end of May. I think at this point our major focus is on improving the getting started story, documentation, and stabilizing the major public API’s.
FubuMVC is admittedly a quixotic effort. On one hand, it’s almost impossible to get .Net developers to consider anything besides the official Microsoft solutions, no matter how dreadfully mediocre they are (here’s looking at you ASP.Net MVC). On the other hand, so many open minded .Net developers are abandoning .Net in droves in favor of Ruby on Rails or other environments. Somewhere in between is the FubuMVC sweet spot. We’re just hoping it’s a big enough spot for us to play in.
StructureMap 2.6.2 and 3.0
After FubuMVC, my attention switches back to StructureMap. The first step is to make a small maintenance release (2.6.2) with some accumulated bug fixes and get the Nuget story straightened out.
After that, I’ll be working strictly on the proposed 3.0 architecture. The main effort with 3.0 is to completely rebuild the internal architecture without changing any of the public API other than eliminating obsolete methods left over from the 2.5.* versions. My goal of doing this work is to:
- Clean up the internals and shrink the codebase
- Enable a much better conventional registration story. This is driven directly by my experiences with the FubuMVC and Fluent NHibernate convention stories. MEF is finally getting conventions, so it’s time to raise the bar higher than they can follow
- Make the nested container mechanics much more efficient and predictable. It’s a crucial feature for FubuMVC, but it’s problematic right now
- Child containers
- Split xml configuration completely out of the main core
- Prepare the StructureMap architecture for possible Silverlight support
- Better diagnostics and better exceptions for trouble shooting
- Better extensibility scenarios
- Support finer grained lifecycle configuration and constructor selection strategies
- Some support for the CCA ideas.
I had a full head of steam on this last summer, but got distracted by other efforts at work. I think I’ll get back to this in April or so as FubuMVC work winds down for me. I will definitely be rebuilding the documentation from scratch, but I’ll probably use a combination of Spee guides and GitHub wikis rather than the current static html.
My thought is that I’ll be doing most of the core work solo, but I’ll absolutely need community help later for subjects like integrating StructureMap with other .Net tools. I’ll be making a call (plea) for help sometime this year.
I’ll be honest here, I don’t have any particular passion for StructureMap anymore (other than the technical challenge of finally getting the internals right). I’m hopeful that this can be the very last major release I do personally. I’m aiming to make the internals so clean that other people can easily extend or support the tool later.
I don’t know about the timeframe with StructureMap, but I would like to have the 3.0 release in this calendar year.
I’ve mostly mothballed StoryTeller for right now, but I have every intention of coming back to it later this year. I’m not completely abandoning StoryTeller because Dovetail integrates StoryTeller into our product and I still think it has promise over existing tools. Right now, my plans are to focus almost completely on the UI tooling by scrapping the existing WPF client and building an all new client as a web application (using FubuMVC for the server side, but running the server as either a console app or a TopShelf service. Absolutely no IIS anywhere).
StoryTeller at this point really becomes just a fun learning project for me to explore:
- Learn more about UX design to make test editing much faster in human being time
- Playing with newer HTML5 technologies like Socket.IO and Websockets stuff
- Push my CSS skills
- Running FubuMVC in a box or from a command line
- Learning Spark on the side
Sorry, but I have absolutely no timeline for the StoryTeller work.