With the release of Microsoft Visual Studio 2008 the game changed. It was possible to use Microsoft Visual Studio 2008 to create applications that ran on earlier versions of the Microsoft .NET Framework. This means that the release of Microsoft Visual Studio 2010 creates a new question: Does it make sense to upgrade Microsoft Visual Studio even if you’re not upgrading to .NET Framework 4? The answer is “yes,” and for a lot of reasons. But if you’re going to .NET Framework 4 you’ll find a lot of support in Microsoft Visual Studio 2010.
As soon as you start Microsoft Visual Studio 2010 you’ll notice that the Start Page is now more useful than the File menu. The Start Page still provides access to project templates, but the rest of the page now provides organized access to training resources for the major .NET technologies. Once you open a file you’ll find that, thanks to Windows Presentation Foundation (WPF), there’s more visual feedback in the editing window. For instance, if you click on a variable name, all uses of that variable name are highlighted. This feature isn’t limited to variables – clicking on a method header automatically highlights all the return clauses and the end of the method.
Test-driven development (TDD) is more tightly integrated into Microsoft Visual Studio. From an edit window’s context menu, you can run tests or add a test project to your solution. While not limited to being used with TDD, Generate from Usage allows you to write code and have Visual Studio create the classes and members that your code references. In conjunction with TDD, this feature really allows you to create your tests ahead of your code. Again, the implementation isn’t perfect. For example, generating members requires that you fiddle with your mouse for each member. Also new is the Microsoft Visual Studio Extension manager, effectively an apps store for controls and Microsoft Visual Studio add-ons. Unfortunately, extensions are organized by name or popularity instead of by dev environment (for example, Silverlight versus ASP.NET). It’s also not obvious if an extension is free until you start to download it.
Microsoft Visual Studio 2010 provides dedicated support for specific development environments and .NET Framework 4 technologies. For instance, as parallel processing becomes mainstream with PLINQ, Microsoft Visual Studio includes enhanced support for debugging multiple threads. The Parallels Task window goes beyond the old Threads window to show individual tasks, even if those tasks are running on the same thread. The Concurrency Visualizer lets you see if you’re successfully distributing your processing loads over the logical cores available on your computer.
While Microsoft Visual Studio 2010 supports both Microsoft Azure and Silverlight 4 development, the tooling is not installed with Microsoft Visual Studio. For Microsoft Azure, you’ll need to open the single cloud project type, which will start the download of the full Windows Azure development toolkit. If you’re running on Windows Vista SP1 or Windows Server 2008, you’ll be able to develop and test your cloud applications on your local computer. Silverlight 4 developers will also need to download a tool package. Both Windows Presentation Foundation (WPF) and Silverlight developers get new tooling, including designers with drag-and-drop support for databinding and for building rich Internet applications. Microsoft Visual Studio 2010 Professional also includes support for Windows 7 development, including multi-touch and Ribbon UI components. You can create applications that support adding items to the Windows 7 Taskbar, for instance.
The upgrade from Microsoft Visual Studio .NET to Microsoft Visual Studio 2005 was a major step forward for .NET developers, while the move from 2005 to 2008 was less impressive (as most of the changes focused on providing support for .NET 3.5). By comparison, the move from Microsoft Visual Studio 2008 to Microsoft Visual Studio 2010 falls in the middle, providing better support for all development activities, specific enhancements for each development environment and tooling for new features in .NET Framework 4.