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 tonextUp
andnextDown
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.”