Quark Soup
Quark Soup

Reputation: 4741

Is there any advantage to a .NET Core library over .NET Standard library?

I'm porting my applications from VS2015 to VS2017 and trying to figure out the right migration path. I'm also moving my web services to .NET Core to take advantage of deploying to Linux or Windows servers. I see that I have the option of creating base libraries in .NET Standard or .NET Core. Is there any advantage to a .NET Core library or should I create the base libraries in .NET Standard by default?

Upvotes: 1

Views: 481

Answers (3)

bartonjs
bartonjs

Reputation: 33266

Practically speaking, .NET Standard 2.0 is the intersection of .NET Framework 4.6.2(-ish) and .NET Core 2.0.

If you build a library targeting .NET Standard 2.0 then your library can be consumed by .NET Framework libraries and applications, as well as .NET Core libraries and applications. That's the advantage of Standard.

But there are several types/members that have been added to .NET Core which aren't part of .NET Standard. If you want to use something like the new CertificateRequest class you'd need to explicitly target .NET Core.

.NET Core allows new things to get to users faster than .NET Framework does, so the general tradeoff will always be ".NET Standard => more places; .NET Core => newer things".

Upvotes: 5

Juergen Gutsch
Juergen Gutsch

Reputation: 1764

I wouldn't choose a .NET Core library. The differences are in the referenced libraries:

  • the .NET Standard library references the netstandardX.X NuGet meta-package
  • the .NET Core library references the netcoreappX.X NuGet meta-package

The netcoreapp package also includes some .NET Standard packages, but also a bunch of .NET Core App specific packages (including libuv. Don't know why a library needs libuv.)

So the .NET Standard library is for cross platform and the .NET Core library just for .NET Core

Upvotes: -2

J. Doe
J. Doe

Reputation: 2747

.Net Standard is just package with interfaces with can be used to provide compatibility across .Net Framework, .Net Core and others

Upvotes: -2

Related Questions