Microsoft Visual Studio 2008 (VS08) is the current incarnation of the company's long line of IDEs. It's the premier IDE for developing applications with the Microsoft .Net Framework and, at least, a contender for the best Windows-hosted C/C++ IDE. Of course, Visual Studio 2008 isn't limited to developing desktop applications; it is also good for developing Web, SOA, and device applications.
VS08 comes in a range of editions, from the free Express Editions to the US$10,000 does-everything Visual Studio Team System 2008 Team Suite. Basically, the Express editions are for beginner, student, and hobbyist developers; Standard Edition is for individual developers; Professional Edition is for advanced developers and those who work in small teams.
Team System is primarily for larger teams. There are Team System clients for developers, architects, DBAs, and testers, as well as a combined client for all roles called Team Suite. The server for Team System is Team Foundation Server (TFS), which combines a team portal, version control, work item tracking, build management, process guidance, and business intelligence.
In this review, I'll concentrate on the features of VS08 Professional Edition, and touch on a few of the highlights of Team Suite. I won't try to discuss Team Foundation Server as such, although it has received numerous enhancements, such as a new team build system and Web access, since we last reviewed it. (See Tom Yager's May 2004 preview of Visual Studio 2005).
Installation and testing
For review purposes, I used three installations of VS08: Professional Edition installed on a Windows Vista for x64 laptop along with Expression Web and Expression Blend; Team Suite installed on a Windows XP desktop along with Visual Studio 2005 (VS05), without access to TFS; and Team Suite installed in a Windows Server 2003 Virtual PC along with TFS. Ninety-day trial versions of all of these versions are available from Microsoft's Web site.
I have blogged at some length about my trials and travails installing Team Suite. None of that should affect you, unless you try to uninstall VS08 from a machine that also has VS05; nevertheless, making an image backup of your system before you start your installation might be wise. Expect a VS08 installation to take several hours, with one manual intervention required to start the documentation installation step.
I ran the VS08 Team Suite on my XP desktop almost all day, five days a week for several weeks, and tried to use it for all my development work. I also ran through a number of individual development scenarios with the Professional Edition on the Vista laptop, and simulated a few group development scenarios on the Team Suite/TFS virtual PC. One caution: If you install on Windows Vista with User Account Control (UAC) enabled, be prepared to run VS08 as Administrator a few times until all the required directories have been created; after that, it should be fully UAC-compliant.
Introducing .Net Framework 3.5
VS08 is the first version of Visual Studio to support .Net Framework 3.5. It is also the first to target multiple versions of .Net Framework (2.0, 3.0, and 3.5). Previous versions of Visual Studio supported only one version of .Net Framework, forcing developers to either maintain multiple versions of Visual Studio or to upgrade all their projects to the current version of .Net Framework. Multi-targeting is a welcome enhancement; it is included in Standard Edition and above.
I wish Microsoft had gone a little further in this direction. It's too bad that Microsoft didn't also provide targeting for .Net Framework 1.1 and easy bidirectional conversion between VS08, VS05, and Visual Studio .Net 2003 projects.
.Net Framework 3.5 has a number of new class library and language features. These include Language-Integrated Query (LINQ), Web 2.0 and SOA-related enhancements, integrated workflow, peer-to-peer protocols, and Microsoft Office support.
The tooling for all of these is found in VS08. So, for example, VS08 Standard and above have LINQ support in Visual Basic .Net and Visual C#, including an Object Relational Designer, the SQLMetal command-line tool, LINQ-aware code editors, and debugger support.