Adopt powershell as a way of defining build scripts, like PSake.
Obviously there's a considerable investment in TFS Build 2010, but I just don't like using XML as a scripting language... Having a first-class alternative to WWF / MSBuild that used an actual scripting language would be nice.
Visual Studio uses MSBuild for it’s build specification and I don’t think that is going to change. From the build automation perspective we are looking at ways to allow tighter integration with scripting technologies, however, we are not planning to support PSake in any specific way.
TFS Program Manager
This makes PS a First Class citizen in VS. Running, Debugging, Intellisense and may be TDD. That will be amazing.
James Tryand commented
Without mono support, I don't feel that this should get traction. Not to say it isn't the right thing, but Powershell needs to be available for mono, at which point, this is most certainly the right way to go.
Jim Christopher commented
I posted a blog post about my desires on this before I found this suggestion (http://www.beefycode.com/post/A-Feature-Request-for-Visual-Studio-vNext.aspx). In a nutshell here is my opinion:
Software builds are a form of automation, and PowerShell is the de facto automation engine for Windows now.
Adam Tybor commented
Powershell is the right tool here. Every other build system offers a real scripting engine. WF is way too heavy to get simple things done. Powershell has outstanding interop with .NET so can leverage all the existing TFS tasks today.
My biggest complaint is I can't test a build locally with the current system. The feedback loop is way to slow to debug, test, troubleshoot build issues. Something I can have done in a few minutes with powershell takes hours with a TFS build template.
So much to the point nobody wants to touch or customize them which is not the right environment to promote if you want to teams to leverage auto builds.
How about a list of scripts for build scripts, that can be a mix of Workflows, Powershell, Exe, or just plain assemblies. Each with its own input/output variables (exe may be hard to do output variables). This would allow people to share build snippets a lot easier than they currently do, as it involves no merging of xml.
Of course this is all possible by replacing the current workflow with an extensible one, but it would be nicer built into the client.