The highly anticipated .NET Core 2 SDK has been officially released by Microsoft. The debut of .NET Core 1 exhibited great potential, but many developers found the supported number of .NET APIs to be lacking. That all changes in this release of .NET Core, which implements .NET Standard 2.0. Through supporting this standard, .NET Core 2 supports 32,000 APIs.
The additional APIs are not the only improvement included in .NET Core 2. Six new platforms were added including Fedora 25 & 26, Debian 9, macOS High Sierra, Ubuntu 17.04, Linux Mint 18, and SUSE Enterprise Linux 12 (SP2+).
Existing .NET Core developers upgrading from 1.X should be aware of its change involving the dotnet restore
command. Starting in .NET Core 2, this command is now implicit when the situation requires it. You may continue to use it as you have in the past, but .NET Core will now call it on your behalf when needed by commands like run
, build
, and publish
. This is intended to be a quality of life improvement as previously if restore was needed, the system would simply emit an error message and stop.
A key inclusion for this release is the ability to reference .NET Framework libraries from .NET Standard. This should help developers managing legacy code, and is intended to streamline the transition from .NET Framework to .NET Standard compliant code. For example, a library targeting anything from .NET Framework 1.0 to 4.6.1 can be referenced from .NET Standard compliant code. The benefit is that this allows developers to migrate code to .NET Standard 2 at their own pace, and still using existing code when time or budget does not allow for a full rewrite.
Visual Basic developers will find support for their language in .NET Core 2, although with this release this support is limited to class libraries and console based applications. ASP.NET Core 2 support is currently limited to F# and C#.
Visual Studio 2017 version 15.3 now implicitly supports .NET Core 2, and supports side-by-side installation of multiple .NET Core SDKs. This makes development simpler and will it make easier explore both beta SDKs and new releases in the future without jeopardizing a developer’s existing environment. Another benefit provided by the release of .NET Core 2 and the updates to VS2017 is that future changes to the .NET Core SDK will not require a coinciding update to VS2017. This means .NET Core SDK can advance without requiring a developer to upgrade their copy of Visual Studio.
A key thing to remember is that VS2017 is not required to use .NET Core 2, as the freely available Visual Studio Code, Visual Studio for Mac, and the command line are supported use-cases. Of course, non-Microsoft tools work just as well, such as JetBrains’ Rider .NET IDE. The .NET Core 2 SDK is available for download now for all major platforms (macOS, Linux, and Windows).