xzeebee
xzeebee

Reputation: 91

Dotnet Core vs DotNetStandard

I already read that dotnetstandard is a subset of functionality.

That much I understood.

dotnet framework full > dotnetstandard > dotnetcore

But how is it possible that e.g. Google API sheet supports dotnetcore with dotnetstandard v1.3?

What do I have to install to allow applications using dotnetstandard 1.3 to run under dotnetcore?

Upvotes: 9

Views: 1962

Answers (2)

JohnH
JohnH

Reputation: 2133

Refer to this Microsoft Magazine website page made in September 2017 by Immo Landwerth.

.NET Standard - Demystifying .NET Core and .NET Standard

This page includes the following image and text.

enter image description here

Here’s how .NET Core and .NET Standard fit into this:

  • .NET Core: This is the latest .NET implementation. It’s open source and available for multiple OSes. With .NET Core, you can build cross-platform console apps and ASP.NET Core Web applications and cloud services.
  • .NET Standard: This is the set of fundamental APIs (commonly referred to as base class library or BCL) that all .NET implementations must implement. By targeting .NET Standard, you can build libraries that you can share across all your .NET apps, no matter on which .NET implementation or OS they run.

Introduction to .NET Core

.NET Core is a new cross-platform and fully open source .NET implementation that was forked from .NET Framework and Silverlight. It’s optimized for mobile and server workloads by enabling self-contained XCOPY deployments.


Wrapping Up

.NET Standard is a specification of APIs that all .NET implementations must provide. It brings consistency to the .NET family and enables you to build libraries you can use from any .NET implementation. It replaces PCLs for building shared components.

.NET Core is an implementation of the .NET Standard that’s optimized for building console applications, Web apps and cloud services using ASP.NET Core. Its SDK comes with a powerful tooling that in addition to Visual Studio development supports a full command line-based development workflow.

Upvotes: 0

Shaun Luttin
Shaun Luttin

Reputation: 141442

Dotnet Core vs DotNetStandard

The two are not "vs" each other. Rather, .NET Core "contains" an implementation of the .NET Standard Library (as well as extra stuff that is not in .NET Standard). Here it is as a Venn diagram.

enter image description here

...how is it possible that e.g. google API sheet support dotnetcore with dotnetstandard v1.3?

It is possible because .NET Core 1.0 supports version 1.3 of the .NET Standard Library.

In the following table, netcoreapp is .NET Core, net is the .NET Framework, and netstandard is the .NET Standard Library. The .NET Standard Library, as you wrote, is a subset of functionality.

Important: Each platform advertises the highest version of the .NET Standard Library that it supports.

netstandard     1.0     1.1     1.2     1.3     1.4     1.5     1.6     2.0
netcoreapp      →       →       →       →       →       →       1.0     2.0
net             →       4.5     4.5.1   4.6     4.6.1   4.6.2   vNext   4.6.1

Here are some examples to check your understanding.

  • .NET Core 1.0 supports up to .NET Standard Library 1.6
  • .NET Framework 4.6.1 supports up to .NET Standard Library 1.4

.NET Standarded Library 1.3 is supported by...

  • .NET Core 1.0 and 2.0
  • .NET Framework 4.6, 4.6.1, 4.6.2, and vNext

...what do i have to install to allow applications using dotnetstandard 1.3 run under dotnetcore?

You have to install .NET Core.

Upvotes: 17

Related Questions