In an attempt to help streamline some of our development processes here at ProAce, I began looking at the available tooling for automating project setup. Sadly, I wasn’t greeted with many options. I found a few interesting approaches but everything is “template-driven” via extracting common settings or by configuring it yourself through XML. This is exactly what I don’t want.
Maybe I’m spoiled from frameworks like StructureMap, FubuMVC, and Topshelf but I’ve become quite accustom to clean fluent interfaces with well thought out DSLs. Rather than complaining about it, I figured we’d look into creating something that extended its use outside of our specific needs. Of course, it’s also a fun way for me to play with some FI techniques since I have yet to do anything of significance with them.
FubuMVC is also looking to have a tool to setup a new project and some other tasks so this might be some perfect timing. If anybody has some suggestions or wants to comment on our example, feel free. Here’s a snippet highlighting some of the features we really want to focus on: http://pastie.org/792754
The idea is that the Compose method will a specification which can then be executed. We’ll also discussed providing an adapter to allow NAnt tasks to be executed (e.g., “x.ExecuteNAntTask<MsBuildTask>()”). There is obviously a ton of stuff going on in NAnt that will have to be thought through (which drove our decision not to base our Tasks off of NAnt) but I think we’ll pick up a ton of additional usability if we can support NAnt so it’s definitely worth it.
Discussion
We’ve got a google group:
http://groups.google.com/group/project-composer
Source
I have not committed anything yet but I plan on making the first initial commit by this afternoon. We’ll be hosting it on Google Code for now:
http://code.google.com/p/project-composer/



Post a Comment