I've used both. I guess it depends on what your organization values.
Since you are familiar with CC Net, I won't speak much to that. You already know what makes it cool.
Here's what I like about Team Foundation Build:
- Build Agents. It's very simple to turn any box into a build machine and run a build on it. MSFT got this one right.
- Reporting. All relevant build results (test included) are stored in a SQL database and reported on via SQL Server Reporting Services. This is an immensely powerful tool for charting build and test results over time. CC Net doesn't have this built in.
- You can do similar customizations via MSBUILD. It's basically the same as using NAnt with CC Net
Here's what drives me up the wall about Team Foundation Build:
- To build C++/CLI projects (or run unit tests...?) the build agent must have VSTS Dev or Team Suite installed. This, friends, is just batsh*t crazy.
- It must be connected to the TFS Mothership
If you're in a big org with lots of bosses who have huge budgets and love reports (and don't get me wrong, this has huge value) OR you need to scale up to a multi-machine build farm, I'd prefer Team Foundation Build.
If you're a leaner shop, stick with CC Net and grow your own reporting solutions. That's what we did.
Until we got acquired. And got TFS :P