views:

267

answers:

8

I might be starting a new project in .NET soon, and would prefer not to use an XML-based build tool like Nant or MSBuild. I like Rake, but I'm thinking it may be better to have something based on a .NET dynamic language (such as Boo), similar in spirit to gant or BuildR for Java. Is there such a thing for .NET? If not, what do you recommend?

A: 

I haven't heard of anything like that, but maybe you could port Rake to IronRuby, and then extend it to understand building C#/VB.NET and running other .NET tools.

Lou Franco
+2  A: 

There is always the Boo Build System or "Boobs" for short (yes it's a silly name) and looks very similar to Rake.

Ayende has written about this previously in Introducing the Boobs Build System and shows a nice example of the syntax.

Boo is written in C# and has a really nifty compiler that can be modified at runtime for doing all sorts of domain specific language (DSL) tricks.

craigb
Thanks, how'd I miss that? Unfortunately, the project doesn't look very well maintained. Has it been touched since last year? There are no downloads.
Alan Hensel
A: 

Using a non-industry standard build system is something you should only really do if the industry standard build systems don't do something you need. Is there some functionality that Nant/Msbuild don't provide that you expect to need?

Alex Lyman
Well, first of all, you've made a big assumption about how conservative the company is. But to answer your question, XML scripting lacks the power of a real language, and it's cluttered. Oh well, moot point, probably - if "boobs" is the answer, then "nant" it shall be! (They are kinda conservative.)
Alan Hensel
Its not really a non-conservative thing. Standard build systems have much better support, in both terms of tooling and in terms of training. I'd bet there's very few people that really know the ins/outs of boobs, but throw a rock at a .NET shop and you'll hit somebody that's hacked at NAnt/MSBuild.
Alex Lyman
We may just have different definitions of "conservative". To me, in the context of software development, it has a lot to do with wanting to stay far away from the bleeding edge, which is exactly what you just described. That's all I meant.
Alan Hensel
+1  A: 

You should really check out FinalBuilder. I evaluated it quite a bit last year and really liked it although in the end we deployed TFS2008 and so we're using TeamBuild to get a lot of the integration goodness. But really FinalBuilder had TONs of prebuilt build activities, great support for lots of environments and tools, and a nice IDE for designing it all.

Kevin Dostalek
+1  A: 

You could try FluentBuild.

For my money, using UppercuT (uses NAnt in the back end) is an optimal solution because of everything that it can do for me without much work to set it up.

http://code.google.com/p/uppercut/

Some good explanations here: UppercuT

ferventcoder
+1  A: 

You should try NUBuild.

I uses it on a regular basis and I work with around 75 projects that I need to build with every code change/release. NUBuild is extremely fast, easy to setup (you do it only once) and gives you the power of a complete build server at your fingertip by letting you do 'local builds'. It also has lots of other advance features and functionalities. You can find more detail on the project site (on codeplex):

http://nubuild.codeplex.com/

A: 

Since you mention it, I just got started with IronRuby and rake on a current project. Because I don't want my team to have to install MRI I decided to go with an xcopy deployment of IronRuby that I had preloaded with rake. Not sure if this is exactly what you're after but check out my blog post on the early findings.

http://dylandoesdigits.blogspot.com/2009/11/rake-for-net-projects.html

I think it meets your requirements. .NET based on the dynamic language runtime, no XML. As a current msbuild angle bracket co-sufferer, I'm pretty happy with how little work it's been thus far.

Dylan