Hi! I am Amit Mohindra, a Program Manager on the Visual C++ team. Earlier in the month my colleague Sumit Kumar had talked about some of the exciting IDE features in the next version of Visual Studio. Today I will just add to that list a few more features that we have done in the next version of the IDE to help you be more productive.
Project Compatibility = No Upgrade (Yay!)
Over the years one of the pain points for our customers has been the upgrade cost associated with a new release of Visual Studio . The cost associated with upgrade from Visual Studio 2008 to Visual Studio 2010 especially for Visual C++ customers was steep because of breaking compiler changes and a totally new project and build system based on MSBuild.
In Visual Studio 11 we have eliminated this cost for you by supporting project (asset) compatibility between Visual Studio 2010 and Visual Studio 11. What this means is that you will be able to open and work (build etc.) in Visual Studio 11 with your Visual Studio 2010 projects without needing to upgrade your project files.
The upgrade wizard is gone.
The upgrade wizard does not pop-up when you load a Visual Studio 2010 project in Visual Studio 11. It just loads . You can build the project using Visual Studio 2010 tools in Visual Studio 11 using the multi targeting feature, which I will explain more below. This means while you adapt to using the new compiler and your 3rd parties vendors provide you with binaries compatible with the Visual Studio 11 compiler you can still leverage the new Visual Studio 11 IDE without disrupting your ship cycle. Just set the platform toolset property to v100 in the property pages (requires Visual Studio 2010 to be installed side-by-side with Visual Studio 11). Since there is no upgrade while you are using the Visual Studio 2010 tools (v100) to build you can continue load the project/solution in Visual Studio 2010 as well.
You might be thinking “wait!!!!” if I have more than 200 native projects I don’t want to be changing the platform toolset property for each project.
We have solved that problem in Visual Studio 11 by providing a way for you to update your toolset right from the solution file. Right clicking on your solution file brings up a context menu from which you can choose to update the toolset for all your native projects.
Don’t get scared by the word “Upgrade”, this option only updates the toolset property for each of your native projects in the solution to use Visual Studio 11 build tools (v110). Note that we are actively working on improving the usability experience around this feature.
Note this feature is just not limited to solutions with just Visual C++ project but is valid for mixed solutions as well which might contain some Visual C++ projects and say some C# projects. In the coming weeks you will hear more about this.
Support for Visual Studio Templates (VSTemplates)
Visual Studio 2010 and previous releases for C++ offered a way of creating project templates using an old .vsz/.vsdir format. This format is quite old and does not support the functionality of publishing the templates on the extension gallery for other customer to download and consume. Visual Studio 11 for C++ supports the ”vstemplates” format for authoring your custom project and item templates that will allow for any new templates to leverage the infrastructure to publish the templates online on the extension gallery.
You could either hand author your custom “vstemplate” files using the schema or if you are working on a project you could use Visual Studio to export it to a template as shown below.
Just fill out the details for your template and click finish in the wizard.
Now go to File->New->Project in Visual Studio 11 and your template shows up.
Once you have a template you can also upload the template to the extension gallery by creating a VSIX. Instructions on how to create a VSIX are listed here.
You can learn more on VSTemplates here.
Both of the features above have been requested by you over the years and we are bringing these to you in the next release of Visual Studio. Please share your feedback regarding these features and we will strive to make them better. Please note that the descriptions and screenshots are from our early internal builds. These features are still under development and could potentially change or not even be included in our final product.