Microsoft's Ignite conference is the stage for many announcements from the company, and one of today's sessions focused on .NET Core. During the presentation, the company highlighted some of the major features arriving with .NET Core 2.1 which is now generally available, as well as upcoming changes with versions 2.2 and 3.0.
Starting with what's new in version 2.1, you'll see that performance has improved across the board over version 2.0. Comparing the two versions on the TechEmpower benchmarks, the new release is about 15% faster when working with plain text, 18% faster with JSON and a whopping 147% faster with Fortunes, handling up to 240,000 requests per second over the 97,000 that version 2.0 could handle.
Version 2.1 also introduces a bunch of new features, such as Global Tools and the Windows Compatibility Pack, which brings over APIs from older Windows apps to .NET Core. Support for lazy loading, value conversions, and more, is also coming to the Entity Framework (EF) Core. Additionally, ASP.NET Core now supports HTTPS connections as well as a few new features such as SignalR. Speaking of which, Azure SignalR Service is also now generally available, allowing real-time web functionalities to be built with Azure and .NET Core.
Microsoft also went over some of the improvements coming with .NET Core 2.2, which the company says focus on three main points: improved Web API development, Microservices and Azure, and performance improvements. Among the changes made, support for multi-tier JIT compilation is being added to .NET Core, and EF Core is getting support for spatial extensions for SQL Server and SQLite.
ASP.NET Core will feature updated Bootstrap and Angular templates, bringing them to versions 4 and 6, respectively. Microsoft is also improving the Web APIs, including support for API Security, and it will enable HTTP/2 for all connections in ASP.NET Core. .NET Core 2.2 is in its second public preview as of September 12, and it will be generally available later this fall.
Looking further ahead, .NET Core 3.0 will focus on desktop devices, AI and IoT devices. If you're wondering if Microsoft is planning to replace .NET Framework with IoT, the company clarifies that it has no plans to do so, with .NET Framework simply being in a slower cadence of releases to ensure that compatibility isn't broken, and .NET Core being updated more quickly since it supports side by side configurations.
This update will include new features such as XAML Islands and XAML Controls to WPF and WinForms, which were announced back at Build earlier this year, as well as some fixes to WinForms apps on devices with high DPIs. .NET Core apps will also be able to access all of the Windows 10 APIs in version 3.0. This release will also include an app bundler, which will build the app and all of its dependencies into a single executable file which can be run everywhere regardless of whether .NET Core is installed or not.
Microsoft is also working to implement Razor Components, or server-side Blazor, in version 3.0, which integrates Blazor into ASP.NET Core and allows it to run on the server with .NET Core. This can greatly help the compatibility of web apps, as the same code can run on many of different devices using WebAssembly, without any code changes required. .NET Core 3.0 doesn't have a set release date yet, but it will be available in public preview later this year.
As a reminder, Microsoft also said that machine learning framework for .NET apps - ML.NET - has recently been updated to version 0.5, introducing the new TensorFlowTransform, which allows developers to take an existing TensorFlow model and get its scores in ML.NET. You can find machine learning samples for .NET on GitHub.