Microsoft has releases Visual Studio 2019 version 16.1

Microsoft has now released a new update for Visual Studio 2019. Let see what news we are and if there are improvements for Xamarin (Yes, there are…Yes!!!!)

As usual I’ll copy here Microsoft Release notes (it’s quite long, so I’ll keep only the important part) and then we’ll see the improvements for Xamarin. I’ve added in bold the parts related to Xamarin.

Release Notes Visual Studio 2019 version 16.1

IDE

  • Visual Studio IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
  • We have added Per-Monitor Awareness support.
  • New codefixes are available for C#.
  • Most Recently Used has been added to Visual Studio Search.

Performance

  • You can now experience optimizations to improve the solution load time of very large solutions.
  • Template authors can add custom tags to their templates.
  • There is now CodeLens support for custom UI.
  • We have provided updates to Language Server Protocol implementation.
  • We have updated behavior for switching between solutions, folders, and other views.

C++

  • In-editor documentation for CMake has been added.
  • Use Windows Subsystem for Linux with C++ natively in Visual Studio, and AddressSanitizer for Linux projects and WSL.
  • We have made improvements and modified colorization in C++ Quick Info tooltips.
  • We have implemented new C++ Code Analysis quick fixes.

F#

  • We have released more performance improvements and a bulk of bug fixes for F# and F# tooling.

.NET

  • New .NET productivity features include one-click code cleanup on projects and solutions, a new toggle block comment keyboard shortcut, refactoring to move types to other namespaces.
  • You can now clone code from an SSH URI through the clone screen in the start window.
  • .NET Productivity additions in this release include intellisense completion for unimported types, toggling single-line comment/uncomment, exporting naming styles to editorconfig, and a new code style setting for preferring usings inside/outside namspaces.
  • We have implemented .NET SDK tooling additions primarily around supporting WinForms and WPF projects for .NET Core 3.0 along with bug fixes and performance improvements.
  • Visual Studio SDK v16.0 has been released to NuGet.
  • A preview of the XAML Designer for .NET Core 3.0 WPF development is available.

Xamarin

  • Default Android Experience for Xamarin now supports API 28.
  • Xamarin.Forms XAML recommendations for design time attributes.

Top Issues Fixed in Visual Studio 2019 version 16.1

  • Cannot navigate to the symbol under the caret in ASP.NET MVC Projects.
  • Resx editor doesn’t render.
  • Xamarin.iOS cannot find the application manifest. Please ensure the project contains a manifest file named ‘Info.plist”.
  • nmake environment missing path to NETFX tools.
  • Clicking on a ASP.NET Core project in solution opening the project .csproj file.
  • Assembly reference is removed from project after running app referencing library.

Details of What’s New in Visual Studio 2019 version 16.1

IDE

  • IntelliCode is now generally available and comes installed with any workload that supports C#, C++, TypeScipt/JavaScript, or XAML.
  • Use the start window to clone code from an online repository through SSH.
Clone with SSH on start window

Clone with SSH on start window

  • Visual Studio IntelliCode is installed by default when you install a workload that supports C#, XAML, or C++.
    • C# and XAML base models will be on by default.
    • Preview features, such as custom model training and argument completion, can be enabled via Tools > Options > IntelliCode.
  • Added Per-Monitor Awareness support
  • New codefixes available for C#.
  • Added Per-Monitor Awareness support for WinForms based PropertyBrowser window of Visual Studio. Requires .NET Framework 4.8 RTM version installed on the machine.

Debugger

  • Source Link can now use Windows Authentication to support on-premises TFS Source Control.
  • Added nuget.org symbol server to the list of default symbol servers

Project

  • The button for switching the Solution Explorer view will now consistently show you a dropdown menu of all possible views.
Solution switching

Solution view switching

  • Improved the loading time for very large solutions. The improvement varies based on the size of the solutions.
  • Removed the Convert dialog under File > Convert. This feature was previously deprecated in Visual Studio 2015.
  • Updated the validation rules for the task.vs.json and launch.vs.json schemas, and added descriptions for the properties.
  • Added support for Linux remote debugging using a custom program via launch.vs.json.

Editor

  • Visual Studio Search will now display on focus the three most recently used actions invoked through Visual Studio Search, as shown in this sample mockup. (Note: icons and specific line items have not been fully updated in this mock-up.)
Visual Studio Search

.NET Productivity

  • There is now experimental intellisense completion for unimported types! You now receive intellisense suggestions for types in dependencies in your project even if you have not yet added the import statement to your file. You must turn this option on in Tools > Options > Text Editor > C# > Intellisense.
Intellisense completion for unimported types

Intellisense completion for unimported types

  • Toggle Single Line Comment/Uncomment is now available through the keyboard shortcut (Ctrl+K,/). This command will add or remove a single line comment depending on whether your selection is already commented.
  • You can now export naming styles with the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
  • You can now use a new editorconfig code style rule to require or prevent usings inside a namespace. This setting will also be exported when you use the “Generate editorconfig” button located in Tools > Options > Text Editor > C# > Code Style.
Editorconfig rule for usings outside/inside namespaces

Editorconfig rule for usings outside/inside namespaces

Tools Options setting for usings inside/outside namespace

Tools Options setting for usings inside/outside namespace

  • The Find All References “Kind” column now has more filter options and is aware of namespaces and types.
Find All References Kind column has more filter options

Find All References Kind column has more filter options

  • We have added a codefix for split/merge if statements.
Split or merge if statements

Split or merge if statements

  • We have added a codefix for wrapping binary expressions.
Wrap binary expressions

Wrap binary expressions

  • A regex completion list can now be accessed through the intellisense menu (Ctrl + space) when inside a regex string. These completions also include an in-line description of what the suggestion does.
Regex completion offered in Intellisense with (Ctrl + space)

Regex completion

  • We have added a codefix for unsealing a class.
Unseal a class codefix

Unseal a class

  • You can now use one-click code cleanup for projects and solutions. You can right-click on projects or the solution in the Solution Explorer and select ‘Run Code Cleanup’.
Right-click to run code cleanup over the entire solution

Right-click to run code cleanup over the entire solution

You will see a dialog box while cleanup is applied to each file

You will see a dialog box while cleanup is applied to each file

  • You can now use a refactoring dialog to move type to namespace or folder. Place your cursor in the class name and type (Ctrl + .) to open the quick actions and refactorings menu and select ‘Move to namespace.’ This launches a dialog where you can select the target namespace you would like to move the type to.
Place cursor in class name and type (Ctrl+.) to view refactorings

Place cursor in class name and type (Ctrl+.) to view refactorings

Select the destination namespace

Select the destination namespace

  • Toggle Block Comment/Uncomment is now available through the keyboard shortcut (Ctrl+Shift+/) or through Edit > Advanced > Toggle Block Comment. This command will add or remove block comments depending on what you have selected.
Toggle block comment with (Ctrl+Shift+/)

Toggle block comment with (Ctrl+Shift+/)

  • There is now a codefix for making readonly struct fields writable. Place your cursor in the struct name, type (Ctrl+.) to open the quick actions and refactorings menu, and select ‘Make readonly fields writable.’
  • The codefix to add a private field from a constructor and vice versa is easier to discover and will show when any portion of the field name is selected. This refactoring now also offers all possible constructors.

XAML Designer Preview for .NET Core 3.0 WPF development

  • There is an early preview of the XAML Designer for developers building .NET Core 3.0 WPF applications in Visual Studio. Many design-time features will be unavailable at this time. Since this is an early preview, if you encounter issues such as crashes, please submit Visual Studio feedback for the team to improve the experience going forwards.
  • With each update to Visual Studio 2019, we will continue implementing more of the features that were previously available in the XAML Designer for .NET Framework WPF applications.

Xamarin

  • We have updated the default Android Experience to API 28 for templates, device creation, installers, and more.
  • IntelliSense on Windows now shows recommendations for design-time attributes when writing Xamarin.Forms XAML.

Changes related to Xamarin

As we have seen, there are 2 main changes. The first one is relative to Android, now everything is updated to API 28, so we should find updated Android templates.

The second change is relative to IntelliSense, now it should give us better recommendations when we write our Xamarin.Froms XAML files.

A very annoying bug has been fixed in Xamarin.iOS: Xamarin.iOS cannot find the application manifest. Please ensure the project contains a manifest file named ‘Info.plist”.

That was quite a bad bug and the only way to resolve it was to unload and reload the iOS project. Fortunately now Microsoft has fixed it so…..Yeahhh!

Are you going to update Visual Studio? I’m doing it right now!

For a list of all changes, please visit this page: https://docs.microsoft.com/en-gb/visualstudio/releases/2019/release-notes#16.1.0

N.B. The images were taken from the page above. So the copyright belongs to them