.NET Standard vs .NET Core

后端 未结 7 437
北恋
北恋 2020-11-30 16:24

I have read about the difference between .NET Standard and .NET Core, but I really don\'t know what the difference is, or when to choose a .NET Standard library project and

相关标签:
7条回答
  • 2020-11-30 17:20

    I will try to further clarify your doubts and extend Jon Skeet answer.

    .NET Standard is a specification, so a library compiled for a specific .NET Standard version can be used in different .NET Standard implementations.

    As said in my other comment, a good analogy for the relationship between .NET Standard and other .NET Standard Implementations (.NET Core, .NET Framework, etc) is this gist by David Fowler: .NET Standard versions are Interfaces, while frameworks are implementations of those interfaces.

    This simplified diagram may help to understand this relationship:

    Anything targetting NetCore10 has access to INetStandard15 APIs and NetCore10 specific APIs (such as DotNetHostPolicy).

    Of course this library cannot be used in different INetStandard15 implementations (NetCore10 is not convertible to NetFramework462 or Mono46).

    If you, instead, need access only to INetStandard15 APIs (and target that specification instead of a concrete framework) your library may be used by any framework which implements it (NetCore10, NetFramework462, etc.)

    Note: in the original analogy David Fowler used interfaces for both .NET Standard versions and frameworks implementations. I believe that using interfaces and classes is, instead, more intuitive and better represents the relationship between specifications and concrete implementations.

    0 讨论(0)
提交回复
热议问题