{"id":7795,"date":"2016-10-05T10:55:25","date_gmt":"2016-10-05T17:55:25","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=7795"},"modified":"2019-10-24T17:38:43","modified_gmt":"2019-10-25T00:38:43","slug":"announcing-visual-studio-15-preview-5","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/announcing-visual-studio-15-preview-5\/","title":{"rendered":"Announcing Visual Studio &#8220;15&#8221; Preview 5"},"content":{"rendered":"<p>Today we released <a href=\"https:\/\/www.visualstudio.com\/visual-studio-pre-release-downloads\/\">Visual Studio \u201c15\u201d Preview 5<\/a>. With this Preview, I want to focus mostly on performance improvements, and in the coming days we\u2019ll have some follow-up posts about the performance gains we\u2019ve seen. I\u2019m also going to point out some of the productivity enhancements we\u2019ve made.<\/p>\n<p>So <a href=\"http:\/\/aka.ms\/vs\/15\/preview\/vs_enterprise\">kick off the installer<\/a> here and read the rest of the post. You can also grab the <a href=\"https:\/\/www.visualstudio.com\/news\/releasenotes\/vs15-relnotes\">release notes here<\/a>.<\/p>\n<h2>A big step forward in performance and memory efficiency<\/h2>\n<p>I\u2019d like to start with a side-by-side video that will give you a sense of all the performance improvements in one look. This video compares starting Visual Studio and loading the <a href=\"https:\/\/github.com\/dotnet\/roslyn\">solution for the entire .NET Compiler Platform \u201cRoslyn\u201d<\/a> in 30 seconds with Visual Studio \u201815\u2019 compared to 60 seconds with Visual Studio 2015:<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/03\/VS15Preview5-Visual-Studio-2015-vs-Visual-Studio-15-Roslyn-Solution-Load-Perf.mp4\"><img decoding=\"async\" src=\"\" width=\"750\" height=\"460\" \/><\/a><\/p>\n<p>The faster load time is a result of a couple of the improvements we\u2019ve made \u2013 lightweight\u00a0project load and on-demand loading of extensions. Here are some of the key performance gains in Preview 5:<\/p>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li><b>Shorter solution load time with lightweight\u00a0project load:<\/b> Working on solutions that contain upwards of 100 projects doesn\u2019t mean you need to work with all the files or projects at a given time. VS \u201c15\u201d provides editing and debugging functionality without waiting for Visual Studio to load every project. You can try out this capability with managed projects in Preview 5 by turning on \u201cLightweight Solution Load\u201d from Tools -&gt; Options -&gt; Projects and Solutions. <b><\/b><\/li>\n<li><b>Faster startup with on-demand loading of extensions: <\/b>The idea is simple: load extensions when they\u2019re needed, rather than when VS starts. In Preview 5 we started this effort by moving our Python and Xamarin extensions to load on demand and are working on moving all extensions we ship with Visual Studio and extensions shipped by third party extension vendors to this model. Curious about which extensions impact startup, solution load, and typing performance? You can see this information in Help -&gt; Manage Visual Studio Performance. Do you develop an extension? We will be publishing guidance to help extension developers move to on-demand loading.<\/li>\n<li><b>Moving subsystems from the main VS process to separatel processes:<\/b> We moved some memory-intensive tasks such as Git Source Control, and our JavaScript and TypeScript language services to separate processes. This makes it less likely for you to experience delays caused by code running in the main Visual Studio process, or Visual Studio becoming sluggish and even crashing as the main process approaches the 4GB memory limit of 32-bit processes. We will continue to move components out-of-process in coming releases.<\/li>\n<li><b>Faster project load, coding, and debugging for C++: <\/b>We have made loading C++ projects faster. Check out <a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/03\/fastervscpploadsln.mp4\">this video showing the improvement<\/a>. You can enable this by setting \u201cEnable Faster Project Load\u201d to True from Tools -&gt; Options -&gt; Text Editor -&gt; C\/C++ -&gt; Experimental. We have also made improvements to our linker and PDB loading libraries to make incremental builds and launching the debugger much faster while significantly reducing memory consumption while debugging.<\/li>\n<li><b><b>Improved speed <strong>when using Git, Debugging, and editing XAML Code<\/strong>:\u00a0<\/b><\/b>We have improved the speed of source control operations by switching from libgit2 to git.exe. We have also improved debugging performance by optimizing initialization costs and other costs related to IntelliTrace and the Diagnostic Tools window, and removed several delays that occur when editing XAML files.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>This is just the start and we are dedicated to making improvements like these to make Visual Studio start faster, be more responsive, and use less memory. Keep an eye out for more posts on the Visual Studio blog over the coming days where we\u2019ll go deep into the technical details behind these improvements.<\/p>\n<p>We rigorously test these changes to anticipate issues and deliver the best performance but there is no substitute for real world code. We need your help! So please <a href=\"http:\/\/aka.ms\/vs\/15\/preview\/vs_enterprise\">install Preview 5<\/a>, try it out with your large solutions, and tell us what you think by using the <a href=\"http:\/\/go.microsoft.com\/fwlink\/?LinkId=829399\">Report-a-problem<\/a> tool within the IDE.<\/p>\n<h2>Improvements in productivity<\/h2>\n<p>Visual Studio \u201c15\u201d also has a lot of features aimed at keeping productivity high.<\/p>\n<h2><b>Editing Code<\/b><\/h2>\n<p><i>IntelliSense filtering <\/i>is now available in C#, VB and C++. While exploring complex APIs, you can narrow to just the type you need (for example, just methods, properties, or events). In C# and Visual Basic we determine the &#8220;target type&#8221; required at a position and preselect items in the list matching that type. This speeds up your typing flow and removes the burden of having to figure out the expected type at a given location.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/VS15Preview5-TargetTypePreselection.jpg\"><img decoding=\"async\" src=\"\" width=\"447\" height=\"288\" \/><\/a><\/p>\n<p>In C++, an experimental <i>Predictive IntelliSense<\/i> feature shows a filtered list of IntelliSense results so you don\u2019t have to scroll through a long list. Only items of the expected type are listed based on need based probability. You can turn on this feature in Tools &gt; Options &gt; Text Editor &gt; C\/C++ &gt; Experimental.<\/p>\n<p>In XAML, we have added IntelliSense completion for x:Bind which provides a completion list when you attempt to bind to properties and events. Namespace completion offers to auto-complete the prefix if the reference to the namespace already exists. XAML IntelliSense has also been updated to filter out types and properties that do not match. The closest match is selected, so you only see relevant results and don\u2019t have to scroll through a long list of types.<\/p>\n<p>In JavaScript, we have completely revamped the language service that powers IntelliSense. Previously, as you typed, a JavaScript engine continuously executed your code to provide runtime-like completion lists and signature help. This was great for dynamic JavaScript code, however it often provided an inconsistent editing experience. The new language service uses static analysis powered by TypeScript to provide more detailed IntelliSense, full ES6\/ES7 coverage, and a more consistent editing experience.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/VS15Preview5-IntelliSenseCompare.png\"><img decoding=\"async\" src=\"\" width=\"1087\" height=\"275\" \/><\/a><\/p>\n<h2><b>Quick Fixes and Refactorings<\/b><\/h2>\n<p>To help you maintain a readable codebase and catalyze your development workflow, we\u2019ve added more Quick Actions and Refactorings for C# and Visual Basic. <i>Move Type to Matching File<\/i> moves a type into a new file that has the same name and <i>Sync File and Type Name<\/i> gives you the option to rename your type to match your file name (and vice versa). Lastly, <i>Convert to Interpolated String<\/i> lets you embrace C# 6.0 and VB14 goodness by transforming your `string.Format` expressions into interpolated strings.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/VS15Preview5-MoveType.gif\"><img decoding=\"async\" src=\"\" width=\"653\" height=\"346\" \/><\/a><\/p>\n<h2><b>Navigating Code<\/b><\/h2>\n<p>Getting around, and knowing where you are in a large codebase can be challenging; we\u2019ve added several new navigation features to help with this. <i>Go To:<\/i> (Ctrl + , or Ctrl + T) lets you quickly find files, types, methods, and other kinds of objects in your code.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/VS15Preview5-GoTo.png\"><img decoding=\"async\" src=\"\" width=\"678\" height=\"294\" \/><\/a><\/p>\n<p><i>Find All References <\/i>(Shift+F12) now helps you get around easily, even in complex codebases. It provides advanced grouping, filtering, sorting, searching within results, and (for some languages) colorization, so you can get a clear understanding of your references.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/VS15Preview5-FindAllReferences.png\"><img decoding=\"async\" src=\"\" width=\"678\" height=\"294\" \/><\/a><\/p>\n<h2><b>Debugging<\/b><\/h2>\n<p>In Preview 5 we have introduced and experimental feature: <i>Run to Click.<\/i><b> <\/b>You no longer need to set a temporary breakpoint to skip ahead and stop on the line you desire. When stopped in the debugger, simply click the icon that appears next to the line of code your mouse is over. Your code will run and stop on that line the next time it is hit. You can turn on this feature in Debug &gt; Options &gt; Enable Run to Click.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/wp-content\/uploads\/sites\/4\/2019\/06\/VS15Preview5-Debugger.gif\"><img decoding=\"async\" src=\"\" width=\"697\" height=\"239\" \/><\/a><\/p>\n<p><i>The New Exception Helper: <\/i>See what you need more quickly with the new Exception Helper. View the most useful exception information at a glance, including seeing what variable was null, in a compact non-modal dialog with instant access to inner exceptions<b>.<\/b><b><\/b><\/p>\n<h2>Try it out<\/h2>\n<p>For the complete list of everything in this release, along with some known issues, look at the <a href=\"https:\/\/www.visualstudio.com\/news\/releasenotes\/vs15-relnotes\">Visual Studio \u201c15\u201d Preview 5 Release Notes<\/a> page.<\/p>\n<p>A couple of important caveats about Preview 5. First, this is an unsupported preview so don\u2019t install it on machines that you rely on for critical production work. Second, Preview 5 should work side by side with previous versions of Visual Studio, but you must remove any previous Visual Studio \u201c15\u201d Preview installations before beginning the setup process. Check out this <a href=\"https:\/\/www.visualstudio.com\/en-us\/productinfo\/visual-studio-15-FAQ\">Preview 5 FAQ<\/a> for other common questions.<\/p>\n<p>As always, we welcome your feedback. For problems, let us know via the Report a Problem option, either from the installer or the Visual Studio IDE itself. Track your feedback on the <a href=\"https:\/\/developercommunity.visualstudio.com\/index.html\">developer community portal<\/a>. For suggestions, let us know through <a href=\"http:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio\">UserVoice<\/a>.<\/p>\n<p>Last but not least, check out <a href=\"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/2016\/10\/05\/join-us-in-november-for-connect-2016\/\">Mitra\u2019s post<\/a> from earlier today to learn more about the upcoming developer conference <a href=\"http:\/\/connectevent.microsoft.com\/\">Connect(); 2016<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we released Visual Studio \u201c15\u201d Preview 5. With this Preview, I want to focus mostly on performance improvements, and in the coming days we\u2019ll have some follow-up posts about the performance gains we\u2019ve seen. I\u2019m also going to point out some of the productivity enhancements we\u2019ve made. So kick off the installer here and [&hellip;]<\/p>\n","protected":false},"author":585,"featured_media":255385,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1195,472,4980,155],"tags":[237,1383,9,137,376,124,53,172,125,182,653,353,133],"class_list":["post-7795","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cross-platform","category-gaming","category-java","category-visual-studio","tag-net","tag-c","tag-debug","tag-html","tag-java","tag-javascript","tag-performance","tag-python","tag-typescript","tag-unity","tag-visual-basic","tag-xamarin","tag-xaml"],"acf":[],"blog_post_summary":"<p>Today we released Visual Studio \u201c15\u201d Preview 5. With this Preview, I want to focus mostly on performance improvements, and in the coming days we\u2019ll have some follow-up posts about the performance gains we\u2019ve seen. I\u2019m also going to point out some of the productivity enhancements we\u2019ve made. So kick off the installer here and [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/7795","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/users\/585"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=7795"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/7795\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/255385"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=7795"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=7795"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=7795"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}