As we get down to the final lap of Visual Studio 2008, I wanted to talk about some of the new features in this release. Over the next few months, I will be blogging on different features and technologies that I’m excited about.
Today, let me start with MSBuild.
At the core of every developer’s environment is the build system. I remember my early days of Windows NT in the early 90s when I used to spend hours after hours after hours in the build lab to help get the build out knowing that the whole engineering team is waiting on a new build.
In Visual Studio 2005, we introduced a new build system called MSBuild. In Visual Studio 2008, we built on this foundation and added two new customer requested features. This release adds a new focus on reliability by allowing you to control which .Net platform you want to target for each project that you build, such as targeting a build to run on the 2.0 or 3.0 .Net Fx so customers do not have to install the latest framework to run your software. You can upgrade to VS 2008 and still have confidence that your existing projects not only build, but work without having your customers update to the .Net Fx 3.5. You can preserve as much of the Visual Studio 2005 build elements as you desire. If you want to see more details on multi-targeting, see Luke Hoban’s recent blog post.
We also added multiple core support for doing multi-threaded builds on the command line for those of you with a lot of projects and long build times. Enabling multiple core support requires only a few new properties, and MSBuild manages all of the work to schedule projects efficiently and effectively. The MSBuild team has tested this ability to scale by building some projects on a 64-CPU machine.
In Visual Studio, we integrate the entire build system for you, so there is very little that you need to do to build your projects or your software system out of the box. The underlying build system has full extensibility through not only the IDE, but through a command line and object model.
Like other things, this team is big on self-hosting. For the VS 2008 product they’ve deployed both the multi-targeting and multi-core support across the entire division - Visual Studio is built using these two features.
It is great to see MSBuild being adopted in many different ways by large and small teams. Inside Microsoft, Team Build uses MSBuild as a core building block. Other Microsoft Technologies such as WPF build using MSBuild. Also, developers are using MSDN Forums and open source projects to share customized MSBuild tasks in order to help build and deploy their products.