C++ enhancements in VS 2010

As part of my series of blog posts talking about VS 2010 and .NET FX 4, I want to focus on the work we are doing for the native developer as part of Visual C++.

In an earlier post, I mentioned how the Visual C++ team is investing heavily in enabling developers with large native applications to be successful on the Windows platform. As a part of that, we released the Visual C++ 2008 Feature Pack earlier this year. Visual Studio 2010 continues down this path by focusing on making native C++ developers more productive with significant enhancements to the overall IDE experience as well as improvements in the language and library space that further extend the power available to C++ developers.

Native C++ applications have been growing larger and more complex over the years. VS2010 makes C++ developers more productive by scaling better when working with larger codebases. One of the key areas where we are making significant improvements is IntelliSense. The IntelliSense engine, which powers the majority of the IDE features, received a major architectural overhaul with a sharp focus on eliminating inefficiencies that surface when dealing with large codebases. A prime example of this is that the IDE remains responsive even while editing source files in very large codebases. Source edits no longer trigger massive updates of the symbol database even with the most complex source dependencies. Visual C++ developers who often edit header files deep down in the include hierarchy or switch project configurations will notice the huge improvement in IDE responsiveness.

Another area where Visual C++ is scaling up is the build system. In VS2010, MSBuild will be the build system powering Visual C++ compilations. MSBuild provides significant customizability, extensibility and logging which are essential elements for large-scale and complex build environments. MSBuild’s logging features will make the expensive chore of tracking a project that keeps rebuilding a much simpler task. Also, the extensibility features will allow you to target different versions of the compiler from the VS2010 IDE as you can see in the images below.

 

 

 

 

 

 

 

 

The increased complexity of C++ applications place higher demand for tools and productivity. VS2010 comes with a new set of IDE productivity tools that make it easier to gain insight about complex codebases. IntelliSense and browsing functions have been overhauled not only to scale up but also to provide more accuracy and resilience. The new header dependency tool allows you to find out more details about your complex include hierarchy. The new Quick Search feature will make it a breeze to go to a specific symbol or file by simply typing a part of its name and pressing enter.

On the library and language front, one of the key focus areas for VS2010 is concurrency. VS2010 makes C++ developers more productive writing parallel code by introducing a new set of libraries and supporting new C++ language features. VS2010 introduces the Parallel Patterns Library (PPL) which provides a new abstraction for building responsive C++ applications that take full advantage of multi-core hardware. PPL enables an effective way of expressing parallelism and provides new asynchronous messaging APIs that allow you to increase application resilience and robustness. VS2010 comes with support for new language features from the upcoming C++0x standard, such as lambdas and the repurposed ‘auto’ keyword, which make writing code that uses the PPL cleaner and more maintainable. Finally, VS2010 delivers more support for developing great Windows applications using MFC by adding yet another set of great features to MFC that make it easier than ever to leverage the features in Windows Vista and in the upcoming Windows 7 release. With built-in support for restart manager, MFC applications can trivially add the ability to recover unsaved applications through unexpected application failures. Task dialog support allows MFC applications to develop richer user interfaces to replace wordy message boxes.

Over the years, we have heard a lot of C++ developers refer to the old days of Visual C++ 6.0 as the glory days of Visual C++ tools. Many of the comments reminisce about the snappy and productive IDE. With Visual C++ 2010, we strive to create a new benchmark for Visual C++ IDE productivity. We will couple this IDE with our superior support for the C++ language and significant improvements to the libraries.

You can always find more information about Visual C++ and interact directly with the team through their blog.

Namaste!