Home » News Stories » MS Ignite News: .NET Developments

News Stories

Job Search


Back to News »

MS Ignite News: .NET Developments

Share this:
digg it  | kickit | Email it | | reddit | liveIt
Subscribe to IrishDev News RSS 
DateMonday, March 08, 2021
AuthorJacqueline Widdis, Release Manager, Microsoft /

MS Ignite News: .NET Developments

16 New Updates & Features to Visual Studio 2019 v16.9 and v16.10 Preview 1 are Now Available


Jacqueline Widdis, Release Program Manager at Microsoft says there are 16 New Updates & Features to Visual Studio 2019 v16.9 and v16.10 Preview 1 Available at MS Ignite

According to Jacqueline Widdis, Release Program Manager at Microsoft (pictured), whenever there is a conference such as Microsoft Ignite, there is a tangible excitement throughout internal teams; discovering what new, exciting products, product features, and educational opportunities are available for customers.

Carrying this excitement forward, the Visual Studio team is eager to release Visual Studio 2019 v16.9 (the next long-term servicing release) and v16.10 Preview 1, with new features highlighted from some of teams such as C++, .NET Productivity, Address Sanitizer, XAML Tooling, and IntelliCode teams.


Over to you Jacqueline!


What’s New in Visual Studio 2019 v16.9?

1) Address Sanitizer with C++

Address Sanitizer support for Windows is out of experimental support and now generally available. The highlight change is MSVC can now work out which runtime libraries are needed to use ASan with your project. Consequently, you no longer need to supply them when compiling from the command-line. All you need to do is set /fsanitize=address and our tools will work out the rest of the details.


Additionally, the IDE integration for ASan-reported exceptions (vcasan.lib) now handles the complete collection of reportable ASan exceptions. If the compiler and linker detect you are building with ASan but not receiving debug information, it will offer the option to emit this information.


Finally, we have added support for global C variables and __declspec(no_sanitize_address). This makes it possible to opt out of running the Address Sanitizer over specific variables or even entire functions.


2) C++ Conformance

We have implemented the More Constexpr Containers proposals which allows destructors and new expressions to be constexpr. We are excited about this as it paves the way for utilities like constexpr std::vector and std::string. Included in our implementation in this release are compiler diagnostics for uses which trigger undefined behavior.


Stack and Co. Hiring Software Developers Nationwide


3) C++ IntelliSense

Based on your feedback, we have made many improvements to the stability and functionality of providing imported modules and header units in IntelliSense. We appreciate every report, so please keep them coming! While we were working on stability, we also added extra functionality. As a result, we can highlight Go-to-definition on module imports, indexing support for export {…}, and more accurate module reference for those with identical names.


As implementation of a top-voted Developer Community suggestion ticket, we added completion for make_unique, make_shared, and emplace_back. These provide text completion based on the specified type parameter.


Additionally, Visual Studio 2019 can configure IntelliSense in CMake projects based on the value of CMake variables set by toolchain files. This greatly improves IntelliSense for Android and other embedded scenarios. The CMakeSettings.json file is the location to specify your custom IntelliSense options.


4) Improved Call Stack Handling of Stack Overflow Scenarios

Visual Studio 2019 has a new capability to filter out redundant frames from the call stack when the debugger stops on a Stack Overflow Exception. It is now possible to see the base of the stack where an infinite recursion originated. This should make it easier to investigate these types of bugs.


5) New .NET Core Memory Dump Analyzers

Deadlocks generally occur when thread A is waiting for thread B to release a lock. Simultaneously, thread B is waiting for thread A to release a lock. This conundrum caused us to add a new Auto Analyzer to inspect the threads in a memory dump to determine if an unresponsive application is due to one of these deadlocks. A blocked finalizer can lead to abnormal memory growth which. This, in turn, can lead to system instability due to out of memory exceptions. Our new Analyzer inspects the .NET Core Finalizer queue to help you identify potential blocking objects in a memory dump.


To access the Analyzer, open your memory dump in Visual Studio 2019. On the Mini Dump File Summary page, select the Run Diagnostics Analysis action.


6) IntelliCode: Frictionless Suggestions in the Completions List

IntelliCode suggestions already helps you find other locations where a repeated edit applies. Comparatively, in Visual Studio 2019 v16.9, you can easily apply suggestions in a more frictionless way and without breaking your editing flow. You can find IntelliCode suggestions right in your IntelliSense completion list. From there, you are also able to find and apply the same change in other locations. This new functionality in the completion list should blend naturally into your editing flow. The edit is added to the completion list in a non-intrusive way. This makes edits easy to find and perform repetitious actions.


7) .NET Productivity

From our .NET team, we bring you several features to help with continual improvements in productivity. First on the list, using directives will now automatically be added when copying and pasting types to a new file. To give this a try, you will need to turn on this option under Tools > Options > Text Editor > C#. You can also access it from Basic > Advanced and select Add missing using directives on paste.


We have also added inline type hints that insert adornments for variables with inferred types and lambda parameter types. Like the last feature, you will need to turn this feature on under the menu Tools > Options > Text Editor > C# or again under Basic > Advanced > Display inline type hints. This last option is under the Inline Hints section. Hold down Alt+F1 to view hints at any time.

In addition, there is now IntelliSense completion that automatically inserts a semicolon as a commit character for object creation and method completion.


8) .NET Core Debugging with WSL 2

Are you a .NET Core developer who loves working in Windows and Visual Studio, but needs to test your app in Linux? If so, the new .NET Core debugging in WSL 2 feature is something you will want to try out! It enables you to debug your code in WSL 2 using the Linux distro of your choice.

After installing WSL 2 and the distribution of your choice and opening an ASP.NET Core web app or .NET Core console app in Visual Studio, you’ll see a new Launch Profile named WSL 2.

Selecting this profile will add it to your launchSettings.json. Once the new profile is selected, Visual Studio checks that your WSL 2 distribution is configured to run .NET Core apps, and helps you install any missing dependencies. As soon as all the dependencies are installed, you are ready to debug WSL 2. From here, you can start Debugging as normal, and your app will now be running in your default WSL 2 distribution. Check Environment.OSVersion to verify the correct distribution.


Note: Only Ubuntu and Debian have been tested and are currently supported. Other distributions supported by .NET Core should work but require manually installing the .NET Core Runtime and Curl.


By default, the WSL 2 launch profile will use the default distribution as set in wsl.exe, but you can modify your launch profile to include specific distributions. Adding extra functionality, you can also have multiple launch profiles. For instance, if you need to test your console app on Debian, Ubuntu 18.04, and Ubuntu 20.04, you could modify these settings.


Dublin City Centre Coworking


9) XAML Tools (WPF, WinUI, UWP & Xamarin.Forms

In this release we’ve made multiple improvements to our XAML tooling, highlights include: 


For MVVM Tooling improvements in the XAML code editor we’ve introduced lightbulbs to set the design DataContext in XAML to an available view-model. Setting this enhances IntelliSense, such as the ability to create new ViewModel properties, Go To Definition and completions right from the XAML code editor. You can even create new ICommand properties for whichever implementation your solution references. 


Xamarin.Forms “changes only” XAML Hot Reload is now GA quality, no longer in preview. Apps targeting Xamarin.Forms 5.0 or newer will use this new mode by default.  


The new “changes only” XAML Hot Reload mechanism makes it possible to update your running app’s UI in real-time and see those changes reflected immediately without requiring the full page to be reloaded, and without having to save the file. “Changes only” Hot Reload also supports the Live Visual Tree, so you can see the runtime UI hierarchy for your app and easily navigate to your XAML source code.  


For those customers who prefer to continue to use the older “full page” Hot Reload you can still do so even for projects targeting Xamarin.Forms SDK v5 by going to the Hot Reload settings under Tools > Options > Debugging > Hot Reload.


These are just two of our highlights, for a complete list of XAML tooling improvements please see the release notes.


10) Ding! Your Test Run is Complete!

One of the features we find particularly fun is how Test Explorer can play audio cues after a test run completes. This includes the option for different sounds for test runs with all tests passing and a different for test runs with at least one failing test. You are also able to fully customize these sounds using the Windows 10 sound library or your own audio files. To watch this in action, check out our demo on Youtube.


11) Improvements to GitHub Actions Tooling

In a previous post, using GitHub Actions in Visual Studio is as easy as right-click and Publish, we announced the efforts added to Visual Studio 2019 to extend our Publish experiences. Specifically, we sought to introduce and assist developers to repeatable, predictable continuous integration and deployment (CI/CD) environments using GitHub Actions. In this release, we bring the following improvements:

A redesigned summary page.

An added new status section

Commit and push the workflow with just one click


In addition, these updated experiences also now recognize more project types. Plus, we will help you generate CI/CD workflows for building, testing, deploying ASP.NET web projects to Azure App Service, Azure Functions, and Azure API Management.


For those customers who prefer to continue to use the older “full page” Hot Reload you can still do so even for projects targeting Xamarin.Forms SDK v5 by going to the Hot Reload settings under Tools > Options > Debugging > Hot Reload.


These are just two of our highlights, for a complete list of XAML tooling improvements please see the release notes.


What’s New in Visual Studio 2019 v16.10 Preview 1?

Our .NET Productivity team has been working hard for this release!


12) Remove Unused References


We have added functionality through the Remove Unused References command. This command allows you to clean up unused project references and NuGet packages. This option is turned off by default, but you can enable it under menu Tools > Options > Text Editor > C# > Advanced. Select the Remove Unused References command in Solution Explorer (Experimental). Once the option is enabled, the Remove Unused References command will appear in the right-click menu of a project name or dependencies node.


When you select Remove Unused References, a dialog box will open. You can then view all references that are going to be removed, but you also have the option to preserve any you wish to keep.


13) Simplify LINQ Expressions

Next, there is a refactoring to Simplify LINQ expressions. This will remove the unnecessary call to the Enumerable for the .Where() method to help improve performance and readability. To access this feature, place your cursor on the LINQ Expression, press (Ctrl+) to trigger the Quick Actions and Refactorings menu. Select Simplify LINQ expression.


14) New Completion Options

Next, there is additional IntelliSense functionality by the added completion for Enum values when a type is known even if the Enum value is not entered.


We have also added a new IntelliSense completion mode setting that gives you the ability to set default completion options. This new setting is available in Tools > Options > Text Editor > Advanced > Default IntelliSense completion mode where you can choose  from the following options: Last used which will preserve the last setting you used with Ctrl+Alt+Space, Tab-only which will only complete on tab, and Automatic which is currently the default behavior that will complete on punctuation and special characters.


To continue to help you, we added a new command called Smart Break Line that automatically inserts a set of braces and adds the caret within those braces when using Shift+Enter as a commit character. Smart Break Line works for all type declarations that require braces as well as properties, events, fields, and object creation expressions. The example below shows Smart Break Line used on a class and  a field. If the field doesn’t have a semicolon at the end, typing Shift+Enter will convert the field to a property by adding a set of braces. One more use ofShift+Enter will undo the commit which will still automatically add a semicolon at the end of the field.


15) New Code Style Preferences for New Lines

Finally, we have added new code style preferences for new lines. You can configure these preferences with an EditorConfig file or with Tools > Options > Text Editor > C# > Code Style > New line preferences (experimental).


As an example, you can set your code style preferences to report a diagnostic and offer a code fix to remove extra blank lines.


16) Extended Support for Visual Studio 2019 v16.9

Visual Studio 2019 version 16.9 is the fourth supported servicing baseline for Visual Studio 2019. Consequently, Enterprise and Professional customers are encouraged to standardize on this version as it will provide a long term stable and secure development environment.  As explained in more detail in our lifecycle and support policy, version 16.9 will be supported with fixes and security updates for one year after the release of the next servicing baseline.


Now that version 16.9 is available, version 16.7, our last released servicing baseline, will be supported for an additional year and will go out of support in April 2022. Prior minor versions 16.0, 16.1, 16.2, 16.3, 16.5, 16.6, and 16.8 are no longer under support.  These intermediary releases received servicing fixes only until the next minor update was released.


You can acquire the latest most secure version of Visual Studio 2019 version 16.9 in the downloads tab of the Subscriptions portal.  For more information about Visual Studio supported baselines, please review the support policy for Visual Studio 2019.


As you can see, we have been busy updating our product to bring more value and productivity to our developers. We hope you enjoy each of these features and look forward to hearing your suggestions for improvements on Developer Community. For now, I am going to settle into a few of our Ignite 2021 sessions where I hope to see you interacting online. As always, we wish you a happy Visual Studio 2019 experience with either our v16.9 or v16.10 Preview 1 release. This calendar year promises some very exciting announcements, so stay tuned!

While you enjoy some of our virtual conference sessions, feel free to download one of our latest releases to give these new features a try.  Also, we love to hear your feedback through our improved Developer Community. It is the first place our teams look for new ideas or to address any problems you may be experiencing. We look forward to interacting with you through our vibrant online community.


This article was published by Jacqueline Widdis on the Microsoft Blog and edited (only a little) by (Want to contribute? Check out our Guest Writers section)

Our subscribers are also reading....

Related: Microsoft MS Ignite News


Corporate Information

Visit: Visual Studio at


Get Instant Irish Tech News Updates on our Social Channels....

Join at Facebook Join at LinkedIn Follow IrishDevdotcom on Twitter

Got a Story – Share it with the Irish Software Community – Email us at

Back to News »
digg it  | kickit | Email it | | reddit | liveIt | RSS
Low Cost, No Frills Coworking and Hotdesks
Unix Tutorials