What's New in Visual Studio 2019 16.4 Preview 3

Microsoft announced a bevy of new preview releases today at its Ignite conference, including Visual Studio 2019 version 16.4 Preview 3, which features faster code navigation, IntelliSense and IntelliCode improvements and more.

Here's a look at some new features:

Speedy code navigation: "In 16.3 we introduced file search for all languages and semantic code search for C# and VB into the new Search bar. In 16.4 we have rewritten the Find in files tool window to address suggestions and feedback on the most popular search control in the IDE. Performance has been significantly improved and reliability issues that previously led to frustrating hangs have been fixed. We cleaned up the UI and added a few improvements like adding exclusions to a search query.

IntelliSense without Using directives: "IntelliSense is indispensable for browsing and finding members of a type but if you’re missing a Using directive you might not find what you need. In 16.4 IntelliSense shows members and types for any assemblies referenced from your project and automatically adds the Using directive to keep your code neat and tidy."

IntelliCode helps with argument completion: "IntelliCode saves you time by putting what you’re most likely to use at the top of your IntelliSense completion list. IntelliCode can also provide suggestion for arguments as you type, bringing the most likely arguments to the top of your completion list. Set your cursor on a method and type CTRL+SPACE to give it a try."

Automatically re-train and acquire IntelliCode team models: "Since we released the ability to create team models trained on your own code last year, we’ve heard feedback that sharing team models through links can be cumbersome and it’s difficult to remember to retrain your models. With our new Azure DevOps task and automatic acquisition of models, you can set up your pipeline to take care of team model updates and automatically share the model with others working in the same repository."

Refactoring with help from IntelliCode: "IntelliCode goes beyond smarter IntelliSense. IntelliCode learns from your edits and provides refactoring suggestions for repeated edits as you type. IntelliCode understands the syntactic structure of your changes so suggestions include locations with similar structure but different variables and formatting. These suggestions appear with your other refactoring quick fixes and are available from the CTRL + '.' shortcut. Remember to enable this early IntelliCode feature from Tools Options."

XAML code editor pop up, merge resource dictionaries and more: "In this release there are multiple new features for desktop developers building WPF or UWP applications. One such feature is the ability to open the XAML code editor window separately from the XAML designer using our new 'pop up' button next to XAML tab."

Audio calls and app sharing for desktop apps in Live Share:
"Real time collaboration with Live Share opens the door for pair programming, rich code reviews, and help from experts even when they are remote. A quick call can often provide more context behind the code. Now the Live share tool window lets you start an audio call with other collaborators in a Live Share session."

In its announcement post, Microsoft also detailed the new vertical tab option for the IDE and pin properties in the debugger, both of which we covered in last month's Preview 2 release.

All of the above -- including a bunch of bug fixes -- and more is covered in more detail in the announcement post and the release notes.

Featured

This week saw two third-party vendors of dev tools -- UX and UI toolkits and controls -- release new offerings that include support for two of Microsoft's main open source frameworks, the cross-platform .NET Core 3.1 and Blazor, which allows for creating browser-based web applications with C# instead of JavaScript.

Clustering non-numeric -- or categorial -- data is surprisingly difficult, but it's explained here by resident data scientist Dr. James McCaffrey of Microsoft Research, who provides all the code you need for a complete system using an algorithm based on a metric called category utility (CU), a measure how much information you gain by clustering.