{"id":18385,"date":"2018-06-26T13:30:32","date_gmt":"2018-06-26T20:30:32","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/?p=18385"},"modified":"2019-02-14T15:23:41","modified_gmt":"2019-02-14T23:23:41","slug":"visual-studio-2017-version-15-8-preview-3","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2017-version-15-8-preview-3\/","title":{"rendered":"Visual Studio 2017 version 15.8 Preview 3"},"content":{"rendered":"<p>We&#8217;re happy to share the highlights of the <a href=\"https:\/\/www.visualstudio.com\/vs\/preview\/\">latest Visual Studio 2017 preview<\/a>, which is now available for download, including:<\/p>\n<ul>\n<li><a href=\"#productivity\">Productivity<\/a> and <a href=\"#perf\">Performance<\/a> improvements \u2013 Visual Studio is more responsive and usable, and projects load faster.<\/li>\n<li><a href=\"#tooling\">Improved tooling to profile and understand your applications performance<\/a>.<\/li>\n<li><a href=\"#jsts\">Updated JavaScript and TypeScript tooling<\/a>, including improved Vue.js and ESLint support, and right-click context menu productivity improvements.<\/li>\n<li>More <a href=\"#cpp\">C++ productivity improvements<\/a> in IntelliSense, Code Analysis, and Just My Code debugging.<\/li>\n<li><a href=\"#vb\">Improved performance for Visual Basic integer manipulation<\/a>.<\/li>\n<li><a href=\"#azure\">Azure Development<\/a> improvements, including continuous delivery for Azure Functions, better experience managing secrets via Key Vault, and ability to configure Application Insights during initial site creation.<\/li>\n<li>More <a href=\"#web\">Library Manager features<\/a> for managing Web Projects\u2019 client-side library files.<\/li>\n<li><a href=\"#mobile\">Mobile Development improvements<\/a> such as faster Android incremental builds and inclusion of Xamarin.Essentials to facilitate building native apps.<\/li>\n<\/ul>\n<p>This Preview builds upon the features that debuted in Visual Studio version 15.8 <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2017-version-15-7-and-version-15-8-preview-1\/\">Preview 1<\/a> and <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2017-version-15-8-preview-2\/\">Preview 2<\/a> which were both released last month. As always, you can drill into the details of all of these features by exploring the <a href=\"https:\/\/www.visualstudio.com\/en-us\/news\/releasenotes\/vs2017-preview-relnotes\">Visual Studio 2017 version 15.8 Preview release notes<\/a>.<\/p>\n<p>We hope that you will install and use this Preview, and most importantly, share your feedback with us. To acquire the Preview, you can either <a href=\"https:\/\/www.visualstudio.com\/vs\/preview\/\">install it fresh from here<\/a>, update your bits directly from the Preview IDE, or if you have an Azure subscription, you can simply <a href=\"https:\/\/azuremarketplace.microsoft.com\/marketplace\/apps?search=visual%20studio%202017%20latest%20preview&amp;page=1\">provision a virtual machine with this latest Preview<\/a>. We appreciate your early adoption, engagement, and feedback as it helps us ship the most high-quality tools to everyone in the Visual Studio community.<\/p>\n<p>Please note: A number of great new 15.8 features are debuting in Preview 3, so you\u2019ll find this blog is more detailed than most of our preview posts.\n<a name=\"productivity\"><\/a><\/p>\n<h2>Productivity<\/h2>\n<p><b>C# Code Cleanup:<\/b> The next time you invoke <b>Format Document<\/b> (<b>Ctrl+K,D<\/b>) you will see a yellow bar prompting you to configure your code cleanup. These new settings allow you to go beyond simply reformatting your file by enabling you to remove and sort usings as well as fix coding convention violations to match the preferences in your .editorconfig, or lacking that, your <i>Tools&gt;Options<\/i> configuration. You can change your Format Document settings at any time by going to <i>Tools &gt; Options &gt; Text Editor &gt; C# &gt; Code Style &gt; Formatting &gt; General<\/i> and see new .editorconfig options for .NET code style in our <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/ide\/editorconfig-code-style-settings-reference?utm_source=158p3&amp;utm_medium=vsblog\">documentation<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.CCodeCleanup.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.CCodeCleanup.png\" alt=\"You can change your Format Document settings at any time by going to Tools &gt; Options &gt; Text Editor &gt; C# &gt; Code Style &gt; Formatting &gt; General\" width=\"1330\" height=\"1395\" class=\"aligncenter size-full wp-image-18704\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.CCodeCleanup.png 1330w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.CCodeCleanup-286x300.png 286w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.CCodeCleanup-768x806.png 768w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.CCodeCleanup-976x1024.png 976w\" sizes=\"(max-width: 1330px) 100vw, 1330px\" \/><\/a><\/p>\n<p><b>Deferred Extension Loading: <\/b>Visual Studio has a rich ecosystem of extensions that extend functionality and enhance the development experience. Getting all this functionality loaded, initialized, and running can take time. In order to preserve Visual Studio\u2019s startup responsiveness, cooperating extensions won\u2019t be loaded until <i>after<\/i> a solution has been opened. The progress bar in the task status center will give you visibility into the state of the loaded extensions. Authors of startup performance friendly extensions (i.e. those who have taken advantage of <a href=\"https:\/\/docs.microsoft.com\/en-us\/visualstudio\/extensibility\/how-to-use-asyncpackage-to-load-vspackages-in-the-background\">AsyncPackage<\/a> so that their extensions can load on the background) should test their extension against Visual Studio 2017 version 15.8 and confirm that everything continues to work after deferred loading. See more details in this <a href=\"https:\/\/blogs.msdn.microsoft.com\/visualstudio\/2018\/05\/16\/improving-the-responsiveness-of-critical-scenarios-by-updating-auto-load-behavior-for-extensions\/\">blog<\/a>.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.DeferredExtensionLoading.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.DeferredExtensionLoading.png\" alt=\"Deferred Extension Loading\" width=\"315\" height=\"144\" class=\"aligncenter size-full wp-image-18705\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.DeferredExtensionLoading.png 315w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.DeferredExtensionLoading-300x137.png 300w\" sizes=\"(max-width: 315px) 100vw, 315px\" \/><\/a><\/p>\n<p><b>Multi-Caret Support<\/b>: In version 15.8 Preview 3, we\u2019re excited to address one of our <a href=\"https:\/\/visualstudio.uservoice.com\/forums\/121579-visual-studio-ide\/suggestions\/4408859-native-multi-editing-multiple-cursors-and-selecti\">top voted UserVoice items: native multi-caret support<\/a>. With this feature, you\u2019ll be able to create multiple insertion points or selections at arbitrary places in your file or add additional selections that match your current selection, allowing you to add, delete or select text in multiple places at once. For a full list of features included with multi-caret support, look under the Edit &gt; Multiple Carets menu flyout.<\/p>\n<p><b>Additional Keyboard Mappings<\/b>: We know many people switch between Visual Studio Code and Visual Studio. To help give you a more consistent set of key mappings as you switch between the two, we&#8217;ve introduced a new Visual Studio Code keyboard mapping scheme. We\u2019ve also included a key mapping scheme that matches the ReSharper mappings.\u00a0 You can find and activate these profiles under <i>Tools &gt; Options &gt; Environment &gt; Keyboard &gt; Mapping Schemes<\/i> dropdown.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.KeyboardMappings.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.KeyboardMappings.png\" alt=\"Keyboard mappings\" width=\"743\" height=\"434\" class=\"aligncenter size-full wp-image-18776\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.KeyboardMappings.png 743w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.KeyboardMappings-300x175.png 300w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><\/a><\/p>\n<p><a name=\"perf\"><\/a><\/p>\n<h2>Performance<\/h2>\n<p><b>Project Loading: <\/b>Visual Studio version 15.8 Preview 3 brings faster project reloads for all types of projects. Benefits are huge \u2013 project unload and reload that used to take more than a minute for large solutions now takes just a few seconds. Git branch checkout that changes a project file. Stay tuned for more project load performance improvements in subsequent releases. Please check out the <a href=\"https:\/\/www.visualstudio.com\/en-us\/news\/releasenotes\/vs2017-preview-relnotes\">Visual Studio Preview release notes<\/a> for details on how we made these perf gains.<\/p>\n<p><b>Showing Data Connections from ASP.NET Web Projects in Server Explorer: <\/b>While loading ASP.NET Web projects, database connections specified in web.config are automatically added to the &#8220;<i>Data Connections<\/i>&#8221; node in the <i>Server Explorer <\/i>window. Adding these connections, particularly if there are a lot of them, may take a long time to complete. Although we have improved the performance of loading these connections, we have also received feedback from some users that they would like to load them manually at a later point. In this update, we introduced a new setting that allows you to configure and control how and when data connections are loaded. This setting, which is checked by default, can be found under <i>Tools<\/i> -&gt; <i>Options <\/i>-&gt; <i>Projects and Solutions<\/i> -&gt; <i>Web Projects<\/i>: \u201c<i>Automatically show data connections from web.config in Server Explorer\u201d<\/i>. If it is unchecked, connections will no longer be automatically loaded. You can add them manually by using the context menu \u201c<i>Add Connections from web.config<\/i>\u201d on the \u201c<i>Data Connections<\/i>\u201d node in the <i>Server Explorer<\/i>.\n<a name=\"tooling\"><\/a><\/p>\n<h2>Performance \u2013 Profiling Applications<\/h2>\n<p>We have a few notable improvements to highlight in this Preview regarding the CPU Usage Tool. These improvements build upon the CPU Usage Tool features we announced with <a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/visual-studio-2017-version-15-8-preview-2\/\">version 15.8 Preview 2<\/a>.<\/p>\n<p><b>Pause\/Resume for Collection of CPU Usage data:<\/b> The CPU Usage tool in the Performance Profiler (ALT-F2) can now start in a paused state, which means that it will not collect any CPU usage sample stack data until it is specifically enabled. This makes the resultant amount of data much smaller to collect and analyze, thus making your performance investigations more efficient. Once you start the target application, a monitoring display will show the CPU utilization graph and will allow you to control the CPU profiling and enable\/disable sample data collection as many times as you like.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolPause.jpg\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolPause.jpg\" alt=\"Pause \/ Resume Collection of CPU Usage Data\" width=\"624\" height=\"234\" class=\"aligncenter size-full wp-image-18777\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolPause.jpg 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolPause-300x113.jpg 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p>The CPU utilization graph changes color to indicate whether sample collection is enabled\/disabled at that point in time.<\/p>\n<p><b>The .NET Object Allocation Tracking Tool<\/b> joins the family of tools available from the Performance Profiler (ALT-F2). Invoking this tool for a performance profiler session causes the collection of a stack trace for every .NET object allocation that occurs in the target application. This stack data is analyzed along with object type and size information to reveal details of the memory activity of your application. You can quickly determine the allocation patterns in your code and identify anomalies as well. In addition, for Garbage Collection events, you can easily determine which objects were collected and which were retained, quickly determining object types which dominate the memory usage of your application. This is especially useful for API writers to help minimize allocations. While your test application is executing, the Performance Profiler displays a monitoring view with a line graph of Live Objects (count), as well as an Object Delta (% change) bar graph.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolNetObjectAllocation.jpg\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolNetObjectAllocation.jpg\" alt=\"The .NET Object Allocation Tracking Tool\" width=\"624\" height=\"424\" class=\"aligncenter size-full wp-image-18778\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolNetObjectAllocation.jpg 624w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CPUUsageToolNetObjectAllocation-300x204.jpg 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/a><\/p>\n<p>Refer to the <a href=\"https:\/\/www.visualstudio.com\/en-us\/news\/releasenotes\/vs2017-preview-relnotes\">Visual Studio Preview release notes<\/a> for details on how to configure settings for these tools and learn more about how to use them. Please give the CPU Usage Tool and the .NET Object Allocation Tracking a try and send feedback if you have any issues or suggestions. <b><u><\/u><\/b>\n<a name=\"jsts\"><\/a><\/p>\n<h2>JavaScript and TypeScript Tooling<\/h2>\n<p>There are a lot of improvements to JavaScript and TypeScript tooling in this version 15.8 Preview. Highlights include:<\/p>\n<p><b>TypeScript 2.9<\/b>: This release includes TypeScript 2.9 by default, which includes richer IntelliSense for some common JavaScript patterns, several new refactorings, and numerous type system improvements. For full details, see the recent <a href=\"https:\/\/blogs.msdn.microsoft.com\/typescript\/2018\/05\/31\/announcing-typescript-2-9\/\">TypeScript 2.9 blog post<\/a>.<\/p>\n<p><b>Improved Vue.js support: <\/b>Support for the Vue.js library has been improved, particularly regarding support for .vue files, aka \u201c<a href=\"https:\/\/vuejs.org\/v2\/guide\/single-file-components.html\">single file components<\/a>\u201d, and enhancements when editing script blocks inside .vue files. Additionally, when the Node.js workload is installed, the New Project dialog will contain additional &#8220;Basic Vue.js Web Application&#8221; templates under the &#8220;JavaScript \/ Node.js&#8221; or &#8220;TypeScript \/ Node.js&#8221; paths.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CodeAnalysis.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CodeAnalysis.png\" alt=\"Improved \" width=\"569\" height=\"447\" class=\"aligncenter size-full wp-image-18779\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CodeAnalysis.png 569w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/08\/2018.06.25.15.8Prev3.CodeAnalysis-300x236.png 300w\" sizes=\"(max-width: 569px) 100vw, 569px\" \/><\/a><\/p>\n<p><b>ESLint support<\/b> has been reimplemented in this release, and the following functionality is now enabled. Rather than only linting saved files, Visual Studio will now lint JavaScript files while they\u2019re opened and being edited. Additionally, results will be reported for all JS files in your project, not just open files. If there are parts of your project you do not want to be linted, an .eslintignore file can now be used to specify directories and files that should be ignored. ESLint has been updated to use ESLint 4 by default, but if your project has a local installation of ESLint, it will use that version instead.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint.jpg\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint.jpg\" alt=\"Visual Studio will now lint JavaScript files while they are open and being edited\" width=\"873\" height=\"611\" class=\"aligncenter size-full wp-image-18710\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint.jpg 873w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint-300x210.jpg 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint-768x538.jpg 768w\" sizes=\"(max-width: 873px) 100vw, 873px\" \/><\/a><\/p>\n<p><b>Open Folder<\/b>: Visual Studio 2017 version 15.8 Preview 3 includes productivity improvements to the Node.js and TypeScript development experience. For example, when working in Visual Studio via the \u201cFile \/ Open \/ Folder\u2026\u201d menu option, you can now right-click to bring up the context menu and select \u201cBuild\u201d to build the TypeScript code with the latest TypeScript compiler, \u201cDebug\u201d to run the file with the debugger attached, or \u201cNpm\u201d to invoke NPM package management commands. Refer to the <a href=\"https:\/\/www.visualstudio.com\/en-us\/news\/releasenotes\/vs2017-preview-relnotes\">Visual Studio Preview release notes<\/a> for details on how to configure your projects so these commands are available.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint.jpg\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint.jpg\" alt=\"pm right click context menu with Build Debug and Npm options\" width=\"873\" height=\"611\" class=\"aligncenter size-full wp-image-18710\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint.jpg 873w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint-300x210.jpg 300w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ESLint-768x538.jpg 768w\" sizes=\"(max-width: 873px) 100vw, 873px\" \/><\/a><\/p>\n<p><b>Improved Editor Performance<\/b>: In previous releases, all JavaScript and TypeScript language service operations were serviced by a single Node.js process. This could cause editor delays if commands that impact user typing (such as automatic formatting after a newline) were sent while a potentially lengthy operation was already in process (such as analyzing code for errors). To mitigate this, a separate process is now used for the operations that most impact editing. This process is significantly lighter on system resources than the existing language service process.\n<a name=\"cpp\"><\/a><\/p>\n<h2>C++ Development<\/h2>\n<p><b>C++ Templates IntelliSense: <\/b>Visual Studio 2017 version 15.8 Preview 3 brings <a href=\"https:\/\/aka.ms\/templateIntelliSense\">IntelliSense for Templates<\/a> \u2013 you can provide more details about template arguments to take full advantage of IntelliSense within your template body.<\/p>\n<p><b>C++ Refactoring: <\/b>We\u2019ve also added a new quick-fix lightbulb to convert basic macros to constexpr as a new tool to modernize your C++ code.<\/p>\n<p><b>C++ Just My Code debugging<\/b> enables you now to <a href=\"https:\/\/aka.ms\/cppjmc\">step-over code from system or 3rd party C++ libraries<\/a> in addition to collapsing those calls in the call-stack window. You get to control this behavior for any C++ libraries when your code is compiled with \/JMC (the default for Debug configurations) and the non-user libraries paths are specified in a .natjmc file. If the system library calls into user-code, when you step in, the debugger will skip all system code and will stop on the first line of user-code callback.<b><\/b><\/p>\n<p><strong>Code Analysis: <\/strong>We are continuously working to <a href=\"https:\/\/aka.ms\/158p3ca\">refresh our code analysis experience<\/a>. You can now enable the new, in-progress features under Tools &gt; Options &gt; Text Editor &gt; C++ &gt; Experimental &gt; Code Analysis. Code analysis can run in the background when files are opened or saved, and results will be displayed in the error list and as green squiggles in the editor.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/07\/2017-06-7cpp-codeanalysis-1216.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2017\/07\/2017-06-7cpp-codeanalysis-1216.png\" alt=\"Code analysis results displayed in the error list and as green squiggles in the editor\" width=\"2019\" height=\"1452\" class=\"aligncenter size-full wp-image-76393\" \/><\/a><\/p>\n<p><b>CMake<\/b><b>: <\/b><a href=\"https:\/\/aka.ms\/cmake15-8-p3\">Adding configurations to CMakeSettings.json<\/a> is now as simple as selecting a template.<\/p>\n<p><b>C++ Standards:<\/b> A new, experimental, token-based preprocessor that conforms to C++11 standards (including C99 preprocessor features), enabled with \/experimental:preprocessor switch. This will be controlled with macro _<i>MSVC<\/i>_TRADITIONAL, which will be defined to 1 when using the traditional preprocessor and 0 when using the new experimental standards conformant preprocessor.<\/p>\n<p><b>Spectre mitigations: <\/b>The Visual Studio Developer Command Prompt now supports enabling the Visual C++ Spectre variant 1 mitigated runtimes (via the -vcvars_spectre_libs=spectre switch). <u><a href=\"https:\/\/blogs.msdn.microsoft.com\/vcblog\/2018\/01\/15\/spectre-mitigations-in-msvc\/\">More information about Spectre mitigations<\/a><\/u> is available on the Visual C++ Team Blog.\n<a name=\"vb\"><\/a><\/p>\n<h2>Visual Basic Development<\/h2>\n<p><b>Integer manipulation<\/b>: Visual Basic normally uses functions in the System.Math library when converting non-integer types to integers. This is generally beneficial as the conversion provides a rounded result. However, there is a performance penalty when rounding is not needed. Since Visual Basic programmers indicate truncation with Fix(), a new optimization will be applied to the pattern CInt(Fix(number)) which will improve performance is scenarios such as graphics manipulation.\n<a name=\"azure\"><\/a><\/p>\n<h2>Azure Development<\/h2>\n<p><b>Azure Functions<\/b>: You can now configure continuous delivery for solutions with Azure Function Projects directly from Visual Studio 2017. Right click on the solution and click \u201cConfigure Continuous Delivery to Azure\u2026\u201d, to launch the dialog. Select \u201cAzure Function\u201d as a target host type and click OK. Visual Studio will automatically create a new Azure Function, a build definition and a release definition targeting that host to automatically deploy your azure function every time you update your code.\u201d<\/p>\n<p><b>Azure Key Vault<\/b>: We have continued to build on the secret management experience by adding the ability to configure an Azure Key Vault with your published application. The Azure Key Vault provides a secure location to safeguard keys and other secrets used by applications so that they do not get shared unintentionally.\u00a0 You can attach a Key Vault already connected with your local project to the published application through the publish summary page. Otherwise, setting a Key Vault up through the publish summary page will attach a Key Vault to both the published and local application.<\/p>\n<p><b>Publishing Apps to Azure<\/b> <b>: <\/b>When creating a new App Service, Visual Studio now offers the ability to configure Application Insights for your site as part of the initial creation process. Application Insights provides diagnostic, analytics, and performance data for your site. If Application Insights is available in the region of your site, it will automatically be enabled as indicated by the Application Insights dropdown being set to the same location as your App Service. If Application Insights is not currently available in the region as your site it will default to \u201cNone\u201d, but you can still enable it by selecting a supported region to run Application Insights in for your site.\n<a name=\"web\"><\/a><\/p>\n<h2>Web Development<\/h2>\n<p>A couple of months ago, we introduced a new <a href=\"https:\/\/blogs.msdn.microsoft.com\/webdev\/2018\/04\/17\/library-manager-client-side-content-manager-for-web-apps\/\">Library Manager<\/a> (LibMan), a lightweight effective solution for web developers to easily manage common client-side library files. Features of the Library Manager include support for common operations like restore and clean, as well as productivity aides like IntelliSense. In this Preview, the Library Manager added UI tooling to find and select library files in order to add them to your project. Additionally, LibMan now recognizes another provider, UnPkg, which provides access to all files available on the npm repository.<\/p>\n<p><a href=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ClientSideLibs.png\"><img decoding=\"async\" src=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ClientSideLibs.png\" alt=\"Library Manager added UI tooling to find and select library files in order to add them to your project\" width=\"726\" height=\"515\" class=\"aligncenter size-full wp-image-18713\" srcset=\"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ClientSideLibs.png 726w, https:\/\/devblogs.microsoft.com\/visualstudio\/wp-content\/uploads\/sites\/4\/2018\/06\/2018.06.25.15.8Prev3.ClientSideLibs-300x213.png 300w\" sizes=\"(max-width: 726px) 100vw, 726px\" \/><\/a><\/p>\n<p><a name=\"mobile\"><\/a><\/p>\n<h2>Mobile Development<\/h2>\n<p><b>Android Incremental Build Improvements: <\/b>Xamarin.Android leverages files generated in the intermediate output directory to achieve incremental builds that are faster than full builds. Previously, if you changed your project&#8217;s target framework it would invalidate the files and result in a full build on the next run. In this release we now preserve the files in per-framework folders so you can switch between different target frameworks and still benefit from incremental builds. Cleaning the project will allow you to reclaim the disk space used by the preserved files.<\/p>\n<p><b>Xamarin.Essentials APIs: <\/b>Our Xamarin templates in Visual Studio 2017 have been updated to include <a href=\"https:\/\/docs.microsoft.com\/xamarin\/essentials\/\">Xamarin.Essentials<\/a>, a core set of cross-platform APIs to help developers build native apps. Xamarin.Essentials gives developers access to over 30 platform-specific APIs that can be accessed from their shared code, including geolocation, secure storage, sensors, device information, and many more. Best of all, it can be used in any iOS, Android, UWP, or Xamarin.Forms app, regardless of how you create the user interface.<\/p>\n<h2>Try out the Preview today!<\/h2>\n<p>If you\u2019re not familiar with Visual Studio Previews, take a moment to read the <a href=\"https:\/\/www.visualstudio.com\/en-us\/productinfo\/vs2017-release-rhythm\">Visual Studio 2017 Release Rhythm<\/a>. Remember that Visual Studio 2017 Previews can be installed side-by-side with other versions of Visual Studio and other installs of Visual Studio 2017 without adversely affecting either your machine or your productivity. Previews provide an opportunity for you to receive fixes faster and try out upcoming functionality before they become mainstream. Similarly, the Previews enable the Visual Studio engineering team to validate usage, incorporate suggestions, and detect flaws earlier in the development process. We are highly responsive to feedback coming in through the Previews and look forward to hearing from you.<\/p>\n<p>Please get the <a href=\"https:\/\/www.visualstudio.com\/vs\/preview\/\">Visual Studio Preview<\/a> today, exercise your favorite workloads, and tell us what you think. If you have an Azure subscription, you can provision <a href=\"https:\/\/azuremarketplace.microsoft.com\/marketplace\/apps?search=visual%20studio%202017%20latest%20preview&amp;page=1\">a virtual machine of this preview<\/a>. You can report issues to us via the <a href=\"https:\/\/aka.ms\/vs-rap\">Report a Problem<\/a> tool in Visual Studio or you can share a suggestion on <a href=\"https:\/\/visualstudio.uservoice.com\/forums\/121579\">UserVoice<\/a>. You\u2019ll be able to track your issues in the <a href=\"https:\/\/developercommunity.visualstudio.com\/\">Visual Studio Developer Community<\/a> where you can ask questions and find answers. You can also engage with us and other Visual Studio developers through our <a href=\"https:\/\/gitter.im\/Microsoft\/VisualStudio\">Visual Studio conversation in the Gitter community<\/a> (requires GitHub account). Thank you for using the Visual Studio Previews.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We&#8217;re happy to share the highlights of the latest Visual Studio 2017 preview, which is now available for download, including &#8211; Productivity and Performance improvements, updated JavaScript and TypeScript tooling, right-click context menu productivity improvements, more C++ productivity improvements in IntelliSense, Code Analysis, and Just My Code debugging, Azure Development improvements, more Library Manager features, and Mobile Development improvements such as faster Android incremental builds and inclusion of Xamarin.Essentials to facilitate building native apps.<\/p>\n","protected":false},"author":584,"featured_media":18852,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[155],"tags":[354,156,1361],"class_list":["post-18385","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-visual-studio","tag-announcement","tag-visual-studio-2017","tag-visual-studio-preview"],"acf":[],"blog_post_summary":"<p>We&#8217;re happy to share the highlights of the latest Visual Studio 2017 preview, which is now available for download, including &#8211; Productivity and Performance improvements, updated JavaScript and TypeScript tooling, right-click context menu productivity improvements, more C++ productivity improvements in IntelliSense, Code Analysis, and Just My Code debugging, Azure Development improvements, more Library Manager features, and Mobile Development improvements such as faster Android incremental builds and inclusion of Xamarin.Essentials to facilitate building native apps.<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/18385","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\/584"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/comments?post=18385"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/posts\/18385\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media\/18852"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/media?parent=18385"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/categories?post=18385"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/visualstudio\/wp-json\/wp\/v2\/tags?post=18385"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}