Microsoft's new XML based build tool that looks so much like Ant has become one of the hottest topics on the NAnt list, while it gets more or less ignored in Ant land. MSBuild is going to be bundled with the next version of Microsoft's Visual Studio and will be the default build mechanism for .NET projects then, so it certainly will become a big issue for NAnt.

NAnt's main benefit is and will be that it is Open Source and that it works well with Mono (at least I hope it will, I may need it ;-).

Actually, I'm more interested in what is different between Ant and MSBuild than how MSBuild is going to affect (N)Ant. What have they decided to do in a different way and why? Maybe they have some good ideas that we can improve upon.

John Lam posts a short list of observation he's made while playing with an early access version of MSBuild, he also attaches a sample build file.

I don't grasp the "inter target dependency engine" part, I'll wait until I can find some official docs. This sounds interesting, if I understand correctly what it means. The Item concept sounds like a step into the direction of Ken Arnold's "Ant needs pipes", something we should look into very seriously IMHO.

The other points seem minor, but I'll probably always prefer <csc> over <Task Name="csc"> (and I'd probably never get used to upper-case element and attribute names).

John promises to write an in-depth analysis of MSBuild soon, I'll be reading it.

Bob Arnson posted a pointer to some official information about MSBuild, search for TLS347. I've already picked up the presentation and the source zips but won't find time to actually look into it before the weekend.

Update

Here is what I found:

path: /en/dotNet/msbuild | #