Product Reviews
Review: Visual Studio 2010
Is it worth upgrading to the latest version of Visual Studio 2010, even if you're not going to move to .NET Framework 4? And if you are upgrading, what will you get?
Visual Studio 2008 really did "change the game." You could use the latest version of Visual Studio to create applications that ran on earlier versions of the Microsoft .NET Framework. This means that the release of Visual Studio 2010 creates a new question: Does it make sense to upgrade Visual Studio even if you're not upgrading to .NET 4? The answer is "yes," and for a lot of reasons. But if you're going to .NET 4 you'll find a lot of support in Visual Studio 2010.
As soon as you start Visual Studio 2010 you'll notice that the Start Page is now more useful than the File menu (see Figure 1). 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. But this extra highlighting isn't without a downside. When debugging, for instance, I sometimes lost the current line because its highlighting was overridden by the highlighting added for the currently selected item.
IntelliSense also gets a lift and is now "in-string" driven. When declaring a variable, if you type in "List" you get all of the classes with "List" in their name, reducing your search time when you can't remember all of a class name.
[Click on image for larger view.] |
Figure 1. The Start Page for Visual Studio 2010 is not only enhanced, it can also be customized to include company resources. |
Working with TDD
Test-driven development (TDD) is more tightly integrated into 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 (I'd be interested in a more streamlined process).
Also new is the Visual Studio Extension manager, effectively an apps store for controls and 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.
Supporting .NET 4
Visual Studio 2010 provides dedicated support for specific development environments and .NET 4 technologies.
For instance, as parallel processing becomes mainstream with PLINQ, 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 middle-tier and service developers may find the parallel processing support useful, ASP.NET developers will appreciate several enhancements. JavaScript IntelliSense support is enhanced -- IntelliSense is no longer disabled if even one library doesn't compile, for instance. Deployment for ASP.NET is also much improved. Many ASP.NET applications (both in ASP.NET 3.5 and 4) will have the "one-click deployment" that WinForms apps have had since .NET 2.0. Config file management is simplified, which should reduce the number of production sites with their debug option set to True. The config file management also makes creating Windows Communication Foundation (WCF) service creation and deployment simpler.
Deployment is also easier for SharePoint developers in Visual Studio 2010. During development, SharePoint developers will find more templates in the Add New Item dialog. Support for creating Windows SharePoint packages, deploying/retracting solutions and other standard activities -- which used to require third-party packages -- is now built into Visual Studio. There's also a SharePoint Explorer for looking into your SharePoint site from Visual Studio.
[Click on image for larger view.] |
Figure 1. Deploying ASP.NET and SharePoint applications is much simpler under Visual Studio 2010 than in previous versions. |
Cloud, Silverlight, Windows 7 and WPF Support
While Visual Studio 2010 supports both Windows Azure and Silverlight 4 development, the tooling is not installed with Visual Studio. For Windows 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 WPF and Silverlight developers get new tooling, including designers with drag-and-drop support for databinding and for building rich Internet applications. 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.
Developers who work in multiple environments will notice odd differences. The Add New Item dialog for Web sites doesn't categorize the templates, while the same dialog for Web applications does. It's these little things that make Visual Studio, as the British say, "homely."
That said, I didn't find any serious problems, though I did get Visual Studio to lock up occasionally while debugging an AJAX/WCF DataServices application when running in a virtual machine (VM) with "just enough" memory. You need at least 1GB of memory to run Visual Studio 2010, and 1.5GB in a VM to compensate for the lack of hardware acceleration.
The upgrade from Visual Studio .NET to 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 Visual Studio 2008 to 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 4.
If you're eligible for the upgrade, you should consider the $300 expense not only as an opportunity to get a better IDE, but as an investment in your eventual upgrade to .NET 4 -- even if you're not ready for that step just yet. One caveat: In my tests, I was able to open Visual Studio 2008 projects in Visual Studio 2010 and later re-open them in Visual Studio 2008 -- but Microsoft isn't making any promises about round-tripping between the two versions. But then, you probably won't want to.
Visual Studio 2010 Professional
Web: microsoft.com/visualstudio
Phone: 877-696-7786
Price: Upgrade $299; with MSDN Essentials $549; with full subscription to MSDN $1,199
Quick Facts: The latest edition of the Microsoft IDE for creating .NET applications adds tooling support for all the features of .NET Framework 4
Pros: Better support for developers through effective use of Windows Presentation Foundation, with specific enhancements for virtually all dev environments
Cons: Odd lock ups, some new features not yet fully integrated
About the Author
Peter Vogel is a system architect and principal in PH&V Information Services. PH&V provides full-stack consulting from UX design through object modeling to database design. Peter tweets about his VSM columns with the hashtag #vogelarticles. His blog posts on user experience design can be found at http://blog.learningtree.com/tag/ui/.