April 13, 2010, 4:46 PM — As a daily user of Visual Studio from its inception, and of Visual C++ and Visual InterDev before that, I have been following the evolution of Microsoft's development environment quite closely. In the Visual Studio 2010 IDE, Microsoft has taken several large steps away from its legacy code. That was a gutsy and potentially risky move on the part of the Visual Studio team, but one that worked out well and will lay the foundation for future product growth.
Visual Studio 2010 is a major upgrade in functionality and capability from its predecessor. It includes some major rewriting of core features, as well as many new features. Developers, architects, and testers will all find areas where the new version makes their jobs easier. Despite the higher pricing for this version, most serious Microsoft-oriented shops will upgrade to Visual Studio 2010 and never look back.
[ Also on InfoWorld: See Martin Heller's Strategic Developer blog for a scrolling tour of Visual Studio 2010 highlights and ongoing coverage of Microsoft development technologies. ]
Raising the bar for IDEsThe most obvious large step is revamping the core editing and designer views to use the Windows Presentation Foundation (WPF). I covered this and the related improvements in the UI and debugger in my review of Visual Studio 2010 Beta 1. Initially there were some performance penalties associated with this, but now almost everything I do in the Visual Studio 2010 IDE happens faster than it would in Visual Studio 2008, even columnar text selection. I particularly like the navigation improvements in the code editor. Both the "Navigate to" and "Call Hierarchy" features have proven invaluable to me recently as I learned a large C++ code base.
Another obvious large step is to revamp IntelliSense and start to support Test-Driven Development (TDD). As I discussed in my reviews of Visual Studio 2010 Beta 1 and Visual Studio 2010 Beta 2, IntelliSense has been redesigned, the easily corrupted IntelliSense .NCB file has been eliminated, and the whole system has become more sensible about offering to do what you might actually want instead of cavalierly completing your typing with irrelevancies. At this point, Visual Studio 2010 is usable for test-driven development (TDD), although I wouldn't yet call it a real TDD-oriented system. For me, that would require another view of a project that emphasized a Red, Green, Refactor development cycle.
A third obvious large step is targeting and supporting multiple versions of the .Net Framework (2.0 through 4.0) in an intelligent way. A fourth is the enhanced debugging capabilities, both in debugging threaded applications and in historical debugging for managed assemblies. There are greatly enhanced sets of tools for architects and testers, such as Sequence Diagrams, Dependency Graphs (for managed assemblies), better bug reporting, and reproducibility. Then there is the new, non-brain-damaged help engine; support for Azure and Silverlight; support for Windows 7, SharePoint 2010, and Office 2010; functional programming with F#; and so on. Silverlight is targeted by its associated .Net version, but Visual Studio 2010 actually supports Silverlight versions 1 through 4.
I mentioned some of the improvements to Team Foundation Server (TFS) when I discussed Beta 2. One thing I didn't mention that deserves some attention is the new ability to gate check-ins for selected developers. Gated check-ins were one of the key features Linus Torvalds wanted for Git that he didn't have in Subversion. If you think about an open source project like the Linux kernel, you really don't want inexperienced developers checking changes into the trunk unless all the unit tests have passed and a senior developer has reviewed the code. TFS can do that now (not that Linus would ever consider using it).













