{"id":2803,"date":"2011-09-06T15:16:00","date_gmt":"2011-09-06T15:16:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2011\/09\/06\/first-look-at-the-new-c-ide-productivity-features-in-visual-studio-11-contd\/"},"modified":"2021-10-04T16:17:57","modified_gmt":"2021-10-04T16:17:57","slug":"first-look-at-the-new-c-ide-productivity-features-in-visual-studio-11-contd","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/cppblog\/first-look-at-the-new-c-ide-productivity-features-in-visual-studio-11-contd\/","title":{"rendered":"First Look at the New C++ IDE Productivity Features in Visual Studio 11 (Cont\u2019d\u2026)"},"content":{"rendered":"<p>Hi! I am <strong>Amit Mohindra, a Program Manager on the Visual C++ team<\/strong>. Earlier in the month my colleague Sumit Kumar had talked about <a href=\"http:\/\/blogs.msdn.com\/b\/vcblog\/archive\/2011\/08\/24\/10200097.aspx\">some of the exciting IDE features in the next version of Visual Studio<\/a>. 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.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h3>Project Compatibility = No Upgrade (Yay!)<\/h3>\n<p>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.<\/p>\n<p>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\u00a011 with your Visual Studio 2010 projects <strong>without needing to upgrade<\/strong> your project files.<\/p>\n<p>The upgrade wizard is gone. <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8053.wlEmoticon-smile_0A1BD7A1.png\"><img decoding=\"async\" class=\"size-full wp-image-29103\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8053.wlEmoticon-smile_0A1BD7A1.png\" alt=\"Image 8053 wlEmoticon smile 0A1BD7A1\" width=\"19\" height=\"19\" \/><\/a><\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/3755.clip_image001_5ED74099.png\"><img decoding=\"async\" class=\"size-full wp-image-29097 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/3755.clip_image001_5ED74099.png\" alt=\"Image 3755 clip image001 5ED74099\" width=\"427\" height=\"327\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/3755.clip_image001_5ED74099.png 427w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/3755.clip_image001_5ED74099-300x230.png 300w\" sizes=\"(max-width: 427px) 100vw, 427px\" \/><\/a><\/p>\n<p>The upgrade wizard does not pop-up when you load a Visual Studio 2010 project in Visual Studio 11. It just loads <a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8053.wlEmoticon-smile_0A1BD7A1.png\"><img decoding=\"async\" class=\"alignleft size-full wp-image-29103\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8053.wlEmoticon-smile_0A1BD7A1.png\" alt=\"Image 8053 wlEmoticon smile 0A1BD7A1\" width=\"19\" height=\"19\" \/><\/a>. 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\u00a011 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.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/6403.clip_image003_70B3D466.jpg\"><img decoding=\"async\" class=\"size-full wp-image-29101 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/6403.clip_image003_70B3D466.jpg\" alt=\"Image 6403 clip image003 70B3D466\" width=\"628\" height=\"243\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/6403.clip_image003_70B3D466.jpg 628w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/6403.clip_image003_70B3D466-300x116.jpg 300w\" sizes=\"(max-width: 628px) 100vw, 628px\" \/><\/a><\/p>\n<p>You might be thinking \u201cwait!!!!\u201d if I have more than 200 native projects I don\u2019t want to be changing the platform toolset property for each project.<\/p>\n<p>We have solved that problem in Visual Studio\u00a011 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.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5635.clip_image004_1781EAA7.png\"><img decoding=\"async\" class=\"size-full wp-image-29100 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5635.clip_image004_1781EAA7.png\" alt=\"Massive update of the toolset property\" width=\"465\" height=\"563\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5635.clip_image004_1781EAA7.png 465w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5635.clip_image004_1781EAA7-248x300.png 248w\" sizes=\"(max-width: 465px) 100vw, 465px\" \/><\/a><\/p>\n<p>Don\u2019t get scared by the word \u201cUpgrade\u201d, this option only updates the toolset property for each of your native projects in the solution to use Visual Studio\u00a011 build tools (v110). Note that we are actively working on improving the usability experience around this feature.<\/p>\n<p>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.<\/p>\n<p>&nbsp;<\/p>\n<h3>Support for Visual Studio Templates (VSTemplates)<\/h3>\n<p>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\u00a011 for C++ supports the \u201dvstemplates\u201d 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.<\/p>\n<p>You could either hand author your custom \u201cvstemplate\u201d 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.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/4657.clip_image006_1062AE2F.jpg\"><img decoding=\"async\" class=\"size-full wp-image-29098 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/4657.clip_image006_1062AE2F.jpg\" alt=\"Authoring templates in Visual Studio\" width=\"629\" height=\"446\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/4657.clip_image006_1062AE2F.jpg 629w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/4657.clip_image006_1062AE2F-300x213.jpg 300w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Just fill out the details for your template and click finish in the wizard.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5228.clip_image008_094371B7.jpg\"><img decoding=\"async\" class=\"size-full wp-image-29099 aligncenter\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5228.clip_image008_094371B7.jpg\" alt=\"Authoring templates in Visual Studio\" width=\"629\" height=\"464\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5228.clip_image008_094371B7.jpg 629w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/5228.clip_image008_094371B7-300x221.jpg 300w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p>Now go to File-&gt;New-&gt;Project in Visual Studio\u00a011 and your template shows up.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8865.clip_image010_1715B7B2.jpg\"><img decoding=\"async\" class=\"size-full wp-image-29102 aligncenter\" title=\"Authoring templates in Visual Studio\" src=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8865.clip_image010_1715B7B2.jpg\" alt=\"Authoring templates in Visual Studio\" width=\"629\" height=\"462\" border=\"0\" srcset=\"https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8865.clip_image010_1715B7B2.jpg 629w, https:\/\/devblogs.microsoft.com\/cppblog\/wp-content\/uploads\/sites\/9\/2011\/09\/8865.clip_image010_1715B7B2-300x220.jpg 300w\" sizes=\"(max-width: 629px) 100vw, 629px\" \/><\/a><\/p>\n<p>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 <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/dd885241.aspx\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p>You can learn more on VSTemplates <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/6db0hwky(v=VS.100).aspx\" target=\"_blank\" rel=\"noopener\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2>Summary<\/h2>\n<p>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. <strong>These features are still under development and could potentially change or not even be included in our final product.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":289,"featured_media":35994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[109,112,51,36,113],"class_list":["post-2803","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cplusplus","tag-alm-application-lifecycle-management","tag-projects","tag-upgrade","tag-vc","tag-visual-studio-templates"],"acf":[],"blog_post_summary":"<p>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 [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/2803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/users\/289"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/comments?post=2803"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/posts\/2803\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media\/35994"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/media?parent=2803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/categories?post=2803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/cppblog\/wp-json\/wp\/v2\/tags?post=2803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}