首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET (标准、核心和框架):开发跨平台应用程序

.NET (标准、核心和框架):开发跨平台应用程序
EN

Stack Overflow用户
提问于 2016-11-03 16:53:51
回答 1查看 541关注 0票数 5

我已经搜索过了,但我找到了很多答案,但不是针对我的问题:

正如定义所述:

  • .NET Framework4.6是一个与.NET相关的完整框架,但缺乏库&针对多平台(Windows和Mac)和云部署优化的运行时。
  • 另一方面,.NET核心是.NET Framework4.6的一个子集,它主要针对多平台和云部署进行优化
  • NET标准:一组“标准”的API,而不是一个平台。所以基本上你不关心平台,只是标准版本( 1.3,1.6 .)您的代码将在所有支持它的平台上工作。

为了开发跨平台应用程序,我打算创建ASP.NET核心应用程序(.NET),它可能引用其他类库,这些类库可能使用:

  • .NET标准
  • .NET芯

我假设,如果我使用任何(标准或核心),我的应用程序仍将支持其他操作系统。

在某些情况下,我看到人们在类库中使用传统的.NET框架和.NET标准?

  • 在这种情况下,应用程序在使用.NET框架时是否仍然跨平台?
  • 什么时候我应该混合和使用组合(标准,核心,网络)?
  • 在框架之间使用和混合的最佳实践是什么?
  • 如何避免冲突和构建失败?

例如,假设我有一个类库,其中包含project.json:

代码语言:javascript
复制
 "dependencies": {
    "Microsoft.Extensions.Caching.Abstractions": "1.0.0",
    "Microsoft.Extensions.Options": "1.0.0",
    "StackExchange.Redis.StrongName": "1.1.608",
    "NETStandard.Library": "1.6.0"
  },
  "frameworks": {
    "netstandard1.5": { }
  }

依赖与框架有何不同?以及项目如何解析程序集,因为标准库只是一个规范。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-03 18:49:18

在这种情况下,应用程序在使用.NET框架时是否仍然跨平台?

实际上,.Net框架应用程序不会在.Net核心上运行。但是它可能运行在mono上,这在Linux和Mac上都是可用的。

什么时候我应该混合和使用组合(标准,核心,网络)?

如果可以的话,您应该对库使用.Net标准(即,只要它们没有任何特定于框架的依赖项)。

如果应用程序具有特定于.Net框架的依赖关系,或者应用程序只能使用.Net框架,则可以对其使用.Net框架。

如果您的应用程序需要跨平台,或者您想使用最新的API,您可以使用.Net核心。(.Net核心通常比.Net框架更新得更快,而且还有预览版本。)

在框架之间使用和混合的最佳实践是什么?

我不明白这个问题。不能将.Net框架和.Net核心混合在同一个应用程序中。

如何避免冲突和构建失败?

我不认为这是一个可以回答的问题,尽管我可以提供一些显而易见的建议:

  • 阅读并跟踪文档。
  • 不要使用不稳定的技术。(请记住,.Net核心工具目前仍处于预览阶段。)

编辑:

依赖与框架有何不同?

"frameworks": { "netstandard1.5": { } }意味着库是一个.Net标准1.5库,并决定可以从哪个框架中使用它。

"dependencies": { "NETStandard.Library": "1.6.0" }实际上引入了作为.Net标准库一部分的包。这也意味着库可以访问所有的.Net标准库,而不仅仅是其中的一些子集。

由于标准库只是一个规范,项目如何解析程序集?

NETStandard.Library所依赖的包不仅仅是一个规范。例如,包System.IO.Compression.ZipFile包含:

  • 用于编译的参考组件(即规范)
  • ZipFile for .Net Framework4.6的实现,它只是转发给System.IO.Compression.FileSystem框架程序集
  • .Net内核的实现--它实际上实现了ZipFile

(要自己查看包中的内容,我推荐NuGetPackageExplorer。)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40407164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档