.NET Core is a cross-platform, open source, and modular .NET platform for creating modern web apps, microservices, libraries and console applications. This release includes the .NET Core runtime, libraries and tools and the ASP.NET Core libraries
Microsoft has launched .NET Core 2.0 on 14-Aug-2017 with some new enhancements in some of the feature categories which are listed below. We will understand each feature changes here.
- Tooling
- Language support
- Platform improvements
- API changes
- Visual Studio integration
We need to install .NET Core SDK 2.0 for getting .NET Core 2.0.
Tooling
1. dotnet restore runs automatically with commands
In .NET Core 1.x application, we need to run dotnet restore
command whenever we add new dependency or create project using command line tool dotnet new
.
In .NET 2.0 this has been improved and now we don’t require dotnet restore
command. It will implicitly runs when dotnet new
command executed.
dotnet restore
will also implicitly run when dependencies will be updated. This will also executed when run
build
and publish
command executed.
If we dont want dotnet restore to be excuted implicitly then we can ignore that using --no-restore
with new
run
build
pack
publish
and test
commands.
2. Upgrading to .NET Core 2.0
If we have application which is built in .NET Core 1.x and .NET Core 2.0 is installed then we can upgrade application to .NET Core 2.0
by just changing into proj file. We need to change <TargetFrameworks>
element like below.
<PropertyGroup> <TargetFramework>netcoreapp2.0</TargetFramework> </PropertyGroup>
We also have to update package references in proj file to use latest references
<ItemGroup> <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" /> </ItemGroup>
If we have global.json
for .NET Core SDK version then we can upgrade that too with below change in global.json
file
{ "sdk": { "version": "2.0.0" } }
Language support
1. Visual Basic
.NET core framework is now supporting Visual Basic language also. We can create below projects in visual basic language
- .NET Core console apps
- .NET Core class libraries
- .NET Standard class libraries
- .NET Core unit test projects
- .NET Core xUnit test projects
2. Support for C# 7.1
.NET Core 2.0 support C#7.1 features. C#7.1 has many new features which give strong development enviornment. Some of the featues are marked below.
- Async Main Method
- Tuple types and Tuple literals
- Pattern Matching
- Return by
Ref
- Default Expression
- Throw Exception from Expression
Platform improvements
.NET Core 2.0 includes many features that make it easier to install .NET Core and to use it on supported operating systems.
1. .NET Core for Linux is a single implementation
In .NET Core 1.x, we had to distribute specific Linux build. In .NET Core 2.0, Linux is now a single Operating System. We have to build and distribute single build and it will work on all Linux distros
API changes
Support for .NET Standard 2.0
.NET Core 1.x supports the .NET Standard version 1.6; .NET Core 2.0 supports the latest version, .NET Standard 2.0. .NET Standard 2.0 includes over 20,000 more APIs than were available in the .NET Standard 1.6
Visual Studio integration
Visual Studio 2017 version 15.3 and in some cases Visual Studio for Mac offer a number of significant enhancements for .NET Core developers.
1. Better support for multiple target frameworks
If we are building a project for multiple target frameworks, we can now select the target platform from the top-level menu. In the following figure, a project named SCD1 targets 64-bit Mac OS X 10.11 (osx.10.11-x64) and 64-bit Windows 10/Windows Server 2016 (win10-x64).
2. Live Unit Testing support for .NET Core
Whenever we modify our code, Live Unit Testing automatically runs any affected unit tests in the background and displays the results and code coverage live in the Visual Studio environment.
Summary
.NET Core 2.0 is loaded with so many features and it will make framework very competitive with other frameworks.