Microsoft today released .NET Core 3.0 as well as Visual Studio 2019 version 16.3 for Windows and version 8.3 for Mac at .NET Conf 2019. Think of this as a stop-gap release before the company’s major .NET 5 released next year.

At its Build 2019 developers conference in May, Microsoft shared its .NET roadmap. The first milestone, which the company has now hit, was .NET Core 3 shipping in September. Next, .NET 5 will ship in November 2020, with the first preview available in the first half of 2020. Microsoft then intends to ship a major version of .NET once a year, in November.

.NET Core 3.0

.NET Core 3.0 brings support for Windows Desktop apps built with WPF and Windows Forms. Developers who build Windows Desktop apps can thus leverage .NET Core platform features. Those include framework deployments (such as self-contained or side-by-side), better runtime performance for certain classes of APIs (such as I/O and networking), as well as all the new language features in C# 8. You can also more easily take advantage of Windows 10 capabilities. That means MSIX packaging technology, platform APIs via NuGet, and UI updates with XAML Islands.

ASP.NET Core in .NET Core 3.0 lets developers build full stack web applications with C# using Blazor in both Visual Studio and Visual Studio Code. Blazor builds on Razor and C# syntax. Blazor apps consist of composable UI components implemented using Razor syntax (HTML, CSS, and C#). UI component libraries are available from Telerik, DevExpress, Syncfusion, and Radzen. .NET Core 3.0 also includes support for Blazor Server apps, which handle client-side UI interactions over a real-time Azure SignalR connection. Support for Blazor WebAssembly apps is still in preview and is expected to ship in May 2020.

Speaking of Azure SignalR, it now supports OnConnected and OnDisconnected event handlers via Event Grid. SignalR clients now have withAutoReconnect() method for automatic reconnection. The team also added enhanced policy support and client-to-server streaming support.

C# 8 brings nullable reference types, support for asynchronous streams, switch expressions, recursive patterns, and range expressions. Entity Framework Core 3.0 embraces these new C# 8 language features and adds Cosmos DB support. Lastly, Entity Framework 6.3 makes it easier to move existing applications to .NET Core 3.0 and .NET Standard 2.1.

Visual Studio 2019

Visual Studio 2019 version 16.3 for Windows (release notes) and version 8.3 for Mac (release notes) add support for .NET Core 3.0 and C# 8. Mobile developers using .NET and Xamarin can now target Android Q and use XAML Hot Reload in preview.

Version 16.3 for Windows lets you create WPF and Windows Forms desktop applications with .NET Core 3.0, alongside ASP.NET Core web and Blazor applications, and gRPC services. You can also publish .NET Core 3.0 worker projects to Azure Container Registry, DockerHub, and elsewhere. Version 16.3 adds support for applications targeting .NET Framework 4.8 and applications written in F# 4.7. You can finally rename a file when renaming an interface, enum, or class (Ctrl +R,R). C++ developers now get toggleable line comments, new C++ Core checks, on-by-default IntelliCode, and improved IntelliSense member list filtering. The start window now has search in recent projects, solutions, folders, and templates. The new search experience (Ctrl + Q) also enables code search for C# and VB.NET projects. There are also improvements for Python and TypeScript/JavaScript developers.

Version 8.3 for Mac further includes solution-level NuGet package management, which lets developers manage project dependencies more efficiently in one place for the whole solution. It also includes tab pinning, selecting your target browser when running an ASP.NET Core project, nesting related files in ASP.NET Core projects, and preferred keyboard shortcuts. Mobile developers using .NET and Xamarin can now target Android Q and use XAML Hot Reload in preview. Lastly, .NET library authors can finally develop libraries that multi-target various .NET frameworks.

ML.NET

ML.NET is an open source and cross-platform framework that runs on Windows, macOS, and Linux. The company’s internal version has been used for almost a decade to power Microsoft products like Powerpoint’s Design Ideas, Windows Hello, PowerBI Key Influencers, and Azure Machine Learning. Version 1.0 was released at Build 2019, and while Microsoft did not release a new version today (we’re on version 1.4 preview), there are updates that help developers bring machine learning to their .NET applications.

ML.NET now has a database loader so you can read data while training an ML model directly from any relational database such as SQL Server, Azure SQL DB, or your RDBMS of choice (Oracle, PostgreSQL, SQLite, MySQL, and so on). The high-level API for image classification/recognition plus object detection is also now available in preview. Both features can be used with Model Builder — the graphical UI in Visual Studio currently provided by ML.NET.