.NET Core是.NET标准的"实现"吗?

Ban*_*San 15 .net .net-core asp.net-core .net-standard

我仍然对.NET Core和.NET Standard如何相互关联感到困惑.

据我所知,.NET Standard是一个接口定义(与Katana是OWIN的实现方式不同)..NET Framework将实现.NET Standard的版本.

到目前为止这是正确的吗?

.NET Core将其依赖项捆绑在其中.这些依赖项将使用.NET Standard接口的实现.这可能是.NET Framework,Mono或其他东西.

ASP Core是.NET Core,引用了"Web"内容.几乎只是一个Visual Studio模板,它可以通过.NET Core控制台应用程序构建.

我还在接近正轨吗?

最后,如果我可以创建一个新的绿色字段应用程序,那么.NET Core应该是受欢迎的技术(假设我不需要任何仅.NET Framework程序集).

最后一个问题,我可以从.NET Core项目中引用GAC中的.NET Framework程序集吗?

干杯

Luk*_*wej 10

我的理解是.NET Core正在实施.NET Standard.

因此.NET Standard更像是规范,.NET Core是实现该规范的实际框架.

.NET Standard也由其他框架实现,如as .NET FrameworkXamarin(并ASP.NET Core建立在顶部.NET Core).


这是有效的解释:

.NET Standard与.NET Core有何不同?

.NET Standard是一个规范,涵盖了.NET平台必须实现的API.

.NET Core是一个具体的.NET平台,它实现了.NET标准.


.NET标准:

.NET标准是.NET API的正式规范,旨在提供给所有.NET运行时.

各种.NET运行时实现.NET Standard的特定版本.


介绍.NET标准:

.NET Standard是一组所有.NET平台必须实现的API.这统一了.NET平台并防止了未来的碎片.

.NET Standard 2.0将由.NET Framework,.NET Core和Xamarin实现.对于.NET Core,这将添加许多已请求的现有API.


介绍.NET Core:

.NET Core本质上是.NET Framework的一个分支

另一种看待它的方法:.NET Framework基本上有两个分叉.一个分叉由Microsoft提供,仅适用于Windows.另一个分支是Mono,你可以在Linux和Mac上使用它.


有关详细信息,请阅读:


Mar*_*ich 6

  1. 是的,.NET Core是一个实现.NET Standard版本的平台/运行时.

如果您构建一个面向.NET Standard版本的库,则可以在任何实现此版本或更高版本.NET Standard的运行时上使用它.这适用于.NET Core以及mono(=> Xamarin),UWP(.NET Native)和.NET Framework.

  1. 分发的细节并不重要..技术上,.NET Core <2.0依赖于NETStandard.Library构建的方式,但是2.0的变化.

  2. ASP.NET Core是"一定"的一组库和工具,它们在.NET标准版本(2.0之前的版本也是.NET Framework)上运行.这意味着您可以为.NET Core和.NET Framework构建ASP.NET Core应用程序 - 如果它们支持所需的.NET Standard级别,甚至可能是其他运行时.

  3. 对于新项目,评估您的需求是有意义的..NET Core具有与.NET Framework不同的服务策略,.NET Framework仍然具有不会包含在.NET Core中的组件和API - 例如WinForms和WPF.

    对于新的库项目,尽可能以.NET Standard而不是.NET Framework为目标是有意义的,以确保在更多类型的项目中可重用.