.NET Core Support and More in Visual Studio 2019 version 16.3 – Update Now!

Jacqueline Widdis

As we continue to deliver on our mission of any developer, any app, any platform, it’s always an exciting time on the Visual Studio team when we get to launch major features.  Today we’ve released Visual Studio 2019 version 16.3 which contains support for the release of .NET Core 3.0, significant C++ improvements, and great updates for Python developers as well as TypeScript 3.6 support. You can download version 16.3 on visualstudio.com or update from the Visual Studio installer.

We are also releasing the first preview of Visual Studio 2019 version 16.4 which can be downloaded from visualstudio.com. For additional information on what’s in Preview 1, check out the release notes.

So, grab your favorite fall beverage, click the update button in the Visual Studio Installer or download the latest version, and while the update commences, peruse this overview of what’s new and awesome in this release.

.NET Core 3.0

Visual Studio version 16.3 includes support for .NET Core 3.0.  Why is .NET Core 3.0 exciting?  Here’s what Scott Hanselman has to say:

“.NET Core is open source and cross-platform.  You can use .NET Core to run server applications on Windows, Mac, a dozen Linuxes, iPhone, IoT devices, and more! .NET Core is open source, cross-platform, and fast as heck. And it’s out today. Fully supported. Open source, yes, but fully supported with the full weight of Microsoft.

Together with .NET Core 3.0, C# 8.0 is out today!  It’s also open source and is the language that many of you will use to make your applications.  Visual Studio 16.3 supports both C# 8.0 and .NET Core 3.0, and provides tooling support for all new .NET Core 3.0 features.  This includes support for building desktop applications with Windows Forms and WPF, client-side web applications with Blazor and back-end microservices using gRPC.

While .NET Core 3.0 is cross-platform, you can also create platform-specific applications!  This means your apps can “light up” with operating system-specific features.  For example, if you want to talk to a light sensor on a Raspberry Pi with .NET Core, you can!

Taking this to obvious next steps, you take (if you want) a 15-year-old existing Windows Forms or WPF app and swap out it’s “engine” for all new .NET Core 3.0 and reap the benefits. It’s a brain transplant that can make your application faster, easier to deploy, and easier to maintain but it will still be a Windows app using your existing code.

You might think because .NET Core 3.0 includes support for Windows Forms and WPF that it might be heavier or take up more space.  In fact, this support exists in optional NuGet packages.  Your .NET Core apps are smaller than ever (and will get even tighter in future releases) and run amazingly well in containers/Docker and in the cloud where density is needed.”

There are so many exciting features in .NET Core 3.0. Head over to the .NET Blog to read all of the details.

NOTE if you are working with .NET Core 3.0, you will need to use Visual Studio version 16.3 or greater.

.NET Core Desktop Application Support

.NET Core 3.0 includes full support for Windows Forms and WPF applications. 

In Visual Studio 2019 version 16.3, you have the familiar tooling you expect for building and publishing WPF applications, including the WPF XAML designer, tools for creating MSIX packages for WPF applications and more. 

Also, we are happy to announce that the first preview version of the Windows Forms Designer for .NET Core projects is available today! We are in the very early days of the designer, so it’s available as a Visual Studio extension (“VSIX”). Once you install the .NET Core Designer, Visual Studio will automatically pick the correct designer based on the target framework of your application. This preview of the designer supports a subset of controls, but more will be added every month in further preview versions. That’s why we don’t recommend porting your Windows Forms applications to .NET Core yet if you need to use the designer on a regular basis.

In addition to supporting WPF and Windows Forms with .NET Core, we recently introduced support for WPF and Windows Forms in Visual Studio App Center as a public preview.  This blog post will give more details.

Please reach out with your suggestions, issues, and feature requests. We appreciate your engagement!

Download .NET Core Windows Forms Designer Preview 1 

.NET Applications in Containers

Developers building Azure Functions (v2) can now add Docker container support (Linux only) to their C# projects. This can be done by right-clicking the project name in Solution Explorer and selecting Add > Docker Support. In addition to adding a Dockerfile to your project, the debug target will be set to “Docker” which means when you debug your Function app it will happen inside the running container.

.NET Applications in Containers
.NET Applications in Containers

 

Also, be sure to check out the Visual Studio Container Tools Extensions (Preview) for a glimpse of even better tooling coming in Visual Studio 2019 version 16.4 Preview 2.

.NET Productivity

Since C# 8.0 and .NET Core 3.0 are out today, Visual Studio tooling is updated to make you more productive when using these new tools.  Here’s a taste of the dozens of refactorings and happiness features we’ve added.

You can wrap chains of fluent calls with a refactoring.  To try this out, place your cursor on a call chain and press Ctrl + . to open the Quick Actions and Refactorings menu.

Wrap Chains of Fluent Calls
Wrap Chains of Fluent Calls with Quick Actions and Refactoring

 

Now you are also able to rename a file when renaming an interface, enum or class.  To do so, just place the cursor in the class name and type Ctrl + R, R to open the Rename dialogue and check the Rename file box.

Easily rename a file when renaming interface, enum or class
You can easily rename a file when renaming an interface, enum, or class.

.NET in version 16.4 Preview 1

If you are a developer wanting to try the cutting-edge tools in .NET, check out the features in Visual Studio 2019 version 16.4 Preview 1.  It includes new .NET Core 3.0 app publishing options:  Ready to Run (Crossgen), Linking, and SingleExe (make tiny .NET Core 3.0 apps) as well as new templates. Again, the release notes contain a larger list of features.

C++

Visual Studio 2019 version 16.3 brings new productivity features to all C++ developers and enhancements to the C++ cross-platform development experience.

Beyond those two aspects (which we’ll dive into next), those of you following our C++ Standard conformance efforts will be glad to hear that in the C++ Standard Library (STL), several new preview features are available under the /std:c++latest switch, including C++ Concepts! Concepts are predicates that can be used to express a generic algorithm’s expectations on its template arguments.

C++ Productivity

There are several improvements for C++ developers to be excited about. For example, you can toggle line comments using the keyboard shortcut Ctrl + K, Ctrl + / to easily set aside code you don’t want to compile just yet.

Set Aside Code to Compile for Later
Set Aside Code to Compile for Later

 

The IntelliSense completion list is now more powerful than ever with a built-in filter that considers type qualifiers. For example, if you type after const std::vector, the list will now filter out functions that would illegally modify it, such as push_back.

Intellisense Improvement
Intellisense Build-in Filter that Considers Type Qualifiers

 

Next, a new default semantic colorization scheme allows you to better understand your code at a glance. You will notice new colors in the following areas: functions, local variables, escape characters, keyword – control (if/else/for/return), string escape characters, and macros. There is also an option to differentiate between global and member functions and variables. The screenshots below illustrate new colorization for the blue and dark themes of Visual Studio:

The Colorization for the blue and dark themes of Visual Studio

 

Lastly, we turned IntelliCode on by default for C++ developers for AI-powered IntelliSense, added a way to configure the Call Stack window to hide or show template arguments for improved readability, and added some new CppCoreCheck rules to Visual Studio Code Analysis, including a new ‘Enum Rules’ rule set and additional const, enum, and type rules.

C++ Cross-Platform

Switching gears from productivity to cross-platform development, we made several user experience improvements. First of all, for CMake projects, you can now install missing 3rd party libraries that your application depends on straight from the IDE, using Vcpkg, our cross-platform C++ library manager. You will need to have Vcpkg installed on your machine, have run ‘vcpkg integrate install’ to set it up, and have a vcpkg toolchain file in your CMake project to take advantage of this feature. When you activate this feature, Vcpkg will download your library from source, compile it for you, and make it available for use for your future builds. This quick action will also install the package’s upstream dependencies for you.

Install Missing 3rd Party Libraries

 

Next, the CMake Settings Editor has been updated with better settings descriptions and links to documentation so it is easier than ever to configure your project. Below is a screenshot of the new experience:

CMake Editor Updates
CMake Settings Editor has been Updated

 

There were a few more improvements to the cross-platform development experience. This includes environment variable support for configuring debug targets and custom tasks in launch.vs.json and tasks.vs.json. In addition, remote header copies for Linux projects now run in parallel for improved performance. Visual Studio’s native support for WSL also supports parallel builds for MSBuild-based Linux projects. Lastly, you can now specify a list of local build outputs to deploy to a remote system with Linux Makefile projects.

Python

With this release you will enjoy a revamped testing experience for your Python projects. Not only there is now support for the popular pytest framework, but the support for the unittest framework has been improved to provide you with a more seamless testing experience. Let’s walk through some of those improvements from configuring & executing tests, to debugging, and finally code coverage.

Configuring and Executing Tests

Let’s look at how you do this for Python projects, and then for the Open Folder scenario.

To enable the testing experience within Visual Studio for Python projects, right-click on the project name and select the ‘Properties’ option. This option opens the project designer, which allows you to configure tests by going to the ‘Test’ tab. From the ‘Test’ tab, simply click the ’Test Framework’ dropdown box to select the testing framework you wish to use, as you can see in this screenshot:

Test Framework Dropdown Box
Test Framework dropdown box for configuring testing.

 

Pressing CTRL+S initiates test discovery for the testing framework you have selected, whether that is pytest, or unittest.

For Open Folder scenarios, the testing experience relies on the PythonSettings.json file for configuration. This file is located within your ‘local settings’ folder as shown here:

Configuring the .json file
Configure the PythonSettings.json file for Open Folder scenarios.

Code Coverage for Tests

Below you can see how Code Coverage is supported for unittest and pytest in both project mode and open folder scenarios:

Code Coverage is supported for unittest and pytest
Code Coverage supported for unittest and pytest in both project mode and open folder scenarios.

 

To enable Code Coverage for your currently opened project/folder, you must install the Python package, coverage, into your active virtual environment. Then, you can analyze Code Coverage by going to the Test Explorer and selecting Analyze Code Coverage for All Tests.

Read our Python documentation for further details on making the most of the new testing experience.

Version 16.4:  Our Next Servicing Baseline

When version 16.4 moves to the release channel later this year, it will be the second “servicing baseline” for Visual Studio 2019. We introduced servicing baselines with Visual Studio 2019 to provide large organizations increased flexibility over when they adopt the new features in minor version updates included in the Enterprise and Professional editions. Unlike versions 16.1, 16.2, and 16.3, which received servicing fixes only until the next minor update is releases, we offer fixes for servicing baselines for an extended period. We will service version 16.4 for 12 months after the next servicing baseline is declared.

As version 16.0 is the first servicing baseline, it will continue to receive servicing fixes for one year after version 16.4 releases later this year. Full details can be found at Visual Studio Product Lifecycle and Servicing.

Update now and let us know what you think

If the above summary got you as excited as we are, head on over to visualstudio.microsoft.com/downloads to get the latest releases. As always, you can continue to use the Report a Problem tool in Visual Studio or head over to the Visual Studio Developer Community to track issues or suggest a feature. We continue to make many tweaks and improvements along the way to address your feedback, and rest assured that we will continue doing so in releases going forward.

30 comments

Discussion is closed. Login to edit/delete existing comments.

    • Jacqueline WiddisMicrosoft employee 0

      Thanks for spotting this. It’s been updated.

  • Anand C 0

    Downloaded the latest 16.3…I see WPF Designer doesn’t seem to appear even after clicking on View Designer option from the context menu of Xaml view…The regular .NET framework projects it’s working fine.

    • Basil Karamichael 0

      I have the same problem. There is a workaround, go to “Tools” > “Options” > “Environment” > “Preview Features” and check the option “Use previews of the .NET SDK”. Then restart Visual Studio.

      • Jacqueline WiddisMicrosoft employee 0

        This problem should be corrected in 16.3.1 which we just released an hour ago. Please use the Feedback system if you are still experiencing problems.

  • Hollen 9 0

    If you are using Xamarin to build app for iOS 12+
    Do not upgrade from “16.2” to “16.3”.
    It will force you use XCode 11, and you just can’t rollback the visual studio upgrade or install 16.2.
    The only option is to uninstall the entire IDE, and install “16.0”.

    If I was wrong, please let me know.

    • Chris HamonsMicrosoft employee 0

      So the questions on “what Xcode can I use with which release” are common enough we wrote up some documentation that goes into detail:

      https://docs.microsoft.com/en-us/xamarin/ios/troubleshooting/questions/old-version-xcode

      But VS 16.3 should be able to use Xcode 10.3, specially if you enable some form of linking (which you should if at all possible).

      If you run into issues consider reporting a problem:

      https://docs.microsoft.com/en-us/visualstudio/ide/how-to-report-a-problem-with-visual-studio?view=vs-2019

      though.

      • Hollen 9 0

        Thanks Hamons!
        I haven’t tried ios linking solution. I will refer to the document you attached.
        However, I moved from Xcode 10.3 to Xcode 11 yesterday, and it seems that I don’t enconter any problem with that.
        Sorry for being rude and providing misinformation on the new verison.

        • Jacqueline WiddisMicrosoft employee 0

          Glad it’s working now. Thanks for being engaged in the Visual Studio community. Usually the best way to get issues addressed quickly is through Reporting a Problem.

  • angus graham 0

    It is silly that Edit.ToggleLineComment is bound to Ctrl-K, Ctrl-/ when Ctrl-/ is bound to this old Tools.GoToCommandLine feature that was removed long ago: https://blogs.msdn.microsoft.com/saraford/2008/03/03/did-you-know-you-can-press-ctrl-to-reach-the-visual-studio-command-line-163/ (there is no longer a “Visual Studio Command Line” element on the “Standard” toolbar.)
    Why not just bind Edit.ToggleLineComment to Ctrl-/ as is done in Visual Studio Code?
    (https://developercommunity.visualstudio.com/content/problem/583285/edittogglelinecomment-doesnt-work-for-c-files.html)

    • Nick UhlenhuthMicrosoft employee 0

      Hi, thanks for the feedback. For now, you can remap ToggleLineComment to be whatever you want (just type “shortcuts” into the Ctrl+Q search box). ToggleBlockComment is currently mapped to Ctrl+Shift+/.

  • Dean Jackson 0

    It looks like the VS roadmap hasn’t been updated in a while.
    https://docs.microsoft.com/en-us/visualstudio/productinfo/vs-roadmap

    For Q3 that ends in September (6 days from now), there’s only a few things listed as “Released”.

    Or is it that you are just running very much behind??

    • Ruben RiosMicrosoft employee 0

      Hi! That’s correct. We’d like to polish the experience further before we enable it on the release channel.

  • Opika 0

    What does “Visual Studio version 16.3 includes support for .NET Core 3.0” mean? Does it mean VS 16.3 contains .NET 3.0 SDK, or something more than this?

    • Daniel RothMicrosoft employee 0

      Hi Opika,

      Visual Studio 2019 16.3 both ships with the .NET Core 3.0 SDK and contains the necessary tooling to work with new .NET Core 3.0 projects, like desktop apps (WinForms & WPF) and Blazor apps.

  • Nicholas Escalona 0

    While you are adding refactorings: a really great one would be switching between one-line and multi-line object/collection initializers. I make this change all the time and it really feels like something the IDE should help me out with. Example: expanding `new Cat { Age = 10, Name = “Fluffy” }` and `new List { 0, 1 }` to and from their 5-line forms.

    Another thing I wish VS would help me with is wrapping the selected lines in try/catch.

    • Huo Yaoyuan 0

      You can use Ctrl+K, Ctrl+S to warp selected lines in some control block. This feature is old, but works for all old syntaxes.

      • Nicholas Escalona 0

        It is a bit clumsy but it does the job (wrapping selection in try-catch or other constructs) – thanks!

  • Joao Paulo Grassi 0

    Hi Jacqueline,

    Any ideas when the Hosted VS2019 image over on Azure DevOps will get updated with this new VS version? I specifically need it due to using EntityFramework 6.3 with .NET Core and migrations don’t work due to MSBuild issues which got fixed in this release. Would be wonderful to get ASAP so we can test our stuff. Thanks!

  • Daniel Sullivan 0

    We installed Version 16.3 when it was released a couple days ago and it has caused us nothing but problems so far. A list of the issues encountered thus far:

    -Microsoft.ServiceHub.Controller processes spawn like crazy, sometimes with 25+ instances with only one (admittedly large) solution open in VS
    -Even when there are only a few Microsoft.ServiceHub.Controller processes they sometimes all take 20+% CPU, pushing my VM to 100% even when idle
    -Builds and Cleans don’t budge on certain projects in our solution, requiring me to unload those projects from the solution in order to complete a clean (this trick doesn’t appear to work for building — attempts to Build just get stuck with no output in the Output window, even with it set to Diagnostic). So even though Visual Studio itself is fully responsive, the output window will just stop outputting anything, requiring us to cancel the build
    —-> I have discovered that it appears to do this only on the projects that were updated to the new project style (older legacy projects build/clean fine)
    -Fatal errors in VS occur a few times a day
    -Fatal error received every time I go to Help->About from the menu

    Unfortunately, I think we’re going to have to uninstall and re-install the previous version as productivity has slowed to a halt. I hope these issues can all be remedied promptly.

    Thanks!
    Dan

    Disclosure: We’re still on Win7 (though not for long) and running on VMWare, with 16GB RAM and 4 Virtual Cores

    UPDATE: We had to go ahead and roll back to 16.2.4 as we’ve already lost over a day trying to resolve issues with 16.3 (and 16.3.1 which was just released did not help either)

    • Daniel Sullivan 0

      Just to follow up on this, after uninstalling VS 16.3 and installing 16.2.4 Visual Studio won’t even open on my VM. I see the splash window, it disappears, and then nothing else happens. The process still remains open in the background and using Process Explorer I can see that the Exceptions for that process are basically going up like a counter.

      I just had a new VM created for me with Windows 10 installed and will attempt to install 16.3 there. I’m hoping for better results, but it’s clear that this latest release introduced some major issues on my current W7 VMs.

      -Dan

      • Michael EngMicrosoft employee 0

        Hi Daniel – I’m sorry you’re running into issues.

        You’ve listed multiple issues and we can investigate them one at a time.

        Please use the Report a Problem to submit a developer community entry for us to investigate. When you go through Report a Problem it will collect some diagnostic information so we can investigate.

        You can get to Report a Problem by going to Help | Send Feedback | Report A Problem through the VS menu, or through the icon in the upper right corner of the Visual Studio Installer.

        Thanks!

  • Luis Mata 0

    i´m installed update 16.3, and need close and open web for css and javascript changes showing; it´s change is bad.

    • Jacqueline WiddisMicrosoft employee 0

      Hello, Luis!

      If you can, please use the Report a Problem to submit a developer community entry for our teams to get more visibility on the problem. You can get to Report a Problem by going to Help > Send Feedback > Report a problem through the VS menu, or through the icon in the upper right corner of the Visual Studio Installer.

      Thanks!

      • Luis Mata 0

        same problem, in version 16.4 preview, in razor pages, not work F5, CTRL + F5, closing and reopen for refreshing, a css: color: red .

  • Shimmy Weitzhandler 0

    Again, a slap in the face of the UWP developers out there. No .NET Core 3 or C# 8 for Microsoft’s home technology.

    • Daniel JacobsonMicrosoft employee 0

      We’ve recently been focused on adding support for WPF and Windows Forms on .NET Core, and are now looking at UWP.

  • Dean Jackson 0

    Since 16.4 will be a Servicing Baseline, you should not put any new features in it, and focus only on fixing bugs that are logged in the dev community site…focusing on quality. That would be a good thing anyway every now and then, but since it will be a “baseline”, you should definitely do it now.

Feedback usabilla icon