What’s new in Microsoft .NET Core

Latest .NET Core 3.0 beta includes support for C# 8 nullable references, switch expressions, and asynchronous streams.

What’s new in Microsoft .Net Core
Thinkstock

With the latest beta of .NET Core 3, an open source, cross-platform implementation of .NET technologies, Microsoft has included support for C# 8, a planned major release of the language. 

C# 8 includes capabilities such as nullable reference types, switch expressions, and asynchronous streams. Other features in the .NET Core 3 beta, introduced January 29, include:

  • APIs to access performance-oriented CPU instructions, such as the SIMD. These instructions can improve performance.
  • Floating-point API improvements to expose required operations and ensure compliance with the IEEE standard. Parsing and format fixes are featured as well as new math APIs such as BitIncrement/BitDecrement, which corresponds to nextUp and nextDown IEEE operations.
  • A fast in-box JSON Writer and JSON document.
  • GPIO (general purpose input/output) support for the Raspberry Pi computer.
  • Improved local dotnet tools. Local tools are associated with a location on-disk, enabling per-project and per-repository tools.
  • Assembly unloadability, which is part of the AssemblyLoaderContext. The capability enables a loader context to be unloaded, with memory released for instantiated types, static fields, and for the assembly itself. An application should be able to load and unload assemblies via this mechanism without a memory leak.
  • For Visual Studio support, the C# beta features the addition of Windows Presentation Foundation (WPF) and Windows Forms templates to the New Project Dialog, to make it easier to start an application without using the command line.
  • MSIX application package format deployment, for deploying .NET Core 3 desktop apps to Windows 10.

Next version: Previously noted features planned for .NET Core 3

New and existing Windows applications will be able to run on .NET Core Version 3, with support offered for Windows Forms, Windows Presentation Foundation, and Universal Windows Platform XAML.

Running desktop apps on .NET Core 3 will offer performance improvements, Microsoft says. Windows desktop will be supported through a set of Windows-specific “Windows Desktop Packs.”

Other capabilities of .NET Core 3 are expected to include:

  • Windows desktop developers will be able to use the .NET Core deployment model. When a new .NET Core version is released, applications can be updated one app on a PC at a time, without concern for affecting other applications. .NET Core releases are installed in new directories and are not used by other applications. When maximum isolation is required, .NET Core can be deployed with an application. Tools are being developed to bundle an application and .NET Core as a single executable.
  • Support for .NET Core command-line tools and SDK-style projects in Visual Studio.
  • .NET Core, for web and cloud applications, will continue to be released in parallel with .NET Core. A new version of .NET Standard, providing APIs for .NET implementations, will released as well.

Where to download the .NET Core 3.0 beta

You can download the beta from Microsoft’s .NET site.

Current version: What’s new in .NET Core 2.2.

Announced December 4, 2018, .NET Core 2.2  enables by default a tiered compilation capability introduced in .NET Core 2.1. In tiered compilation, the compiler uses the just-in-time (JIT) compiler more aggressively to improve performance. Other capabilities in .NET Core 2.2 include:

  • CoreCLR events can be consumed with the EventListener class. The events describe garbage collection, JIT, threadpool, and interop. Applications can consume these events or use a transport mechanism to forward them to a telemetry aggregation service.
  • Support for AccessToken in SqlConnection for authentication.
  • Injection of code prior to running an application main method via a startup hook. These hooks make it possible for a host to customize behavior of applications after deployment, without recompiling or changing the application.
  • Support for Windows ARM32.

Where to download .NET Core 2.2

You can download .NET Core 2.2 from the Microsoft .NET site.

Previous version: What’s new in .NET Core 2.1

With .NET Core 2.1, announced May 30, 2018, application-building performance is much improved over .NET Core 2.0, Microsoft says. This is particularly true for incremental builds.

Improvements in .NET Core 2.1 include:

  • The availability of the SignalR library for real-time web functionality, in ASP.NET Core 2.1. A companion to .NET Core, ASP.NET Core is a framework for building internet-connected applications. HTTPS is also on by default in ASP.NET Core 2.1.
  • To handle outgoing network requests, a rewritten HttpClient handler promising two to ten times the performance.
  • A set of types, including the Span <T> type (pronounced “span of tee”), providing a uniform representation of memory from multiple sources, including stack allocation and native code. These types are expected initially to help with performance-critical situations and then become a replacement for arrays as a mechanism for handling large blocks of data. 
  • For compatibility with .NET Framework, the Windows Compatibility Pack. It offers access to an additional 20,000 APIs compared to what has been available in .NET Core. Released in a beta version in November, the pack offers APIs such as System.Drawing, EventLog, and Windows Services.
  • Crypto APIs, including Span<T> APIs.
  • Brotli compression, providing a general-purpose, lossless algorithm to compress data.
  • A beta version of tiered compilation, enabling the runtime to more-adaptively use the just-in-time compiler to improve performance.
  • Self-contained application publishing, in which applications include the latest serviced runtime known by the new SDK.
  • Support for Alpine Linux and ARM32 CPUs.

Where to download .NET Core 2.1

You can download the .NET Core 2.1 SDK and the .NET Core 2.1 runtime from Microsoft’s .NET website.

Copyright © 2019 IDG Communications, Inc.