.NET(标准,核心和框架):开发跨平台应用程序
我搜索过,但我找到了很多答案,但没有针对我的问题:
正如定义所说:
为了开发跨平台的应用程序,我打算创建ASP.NET核心应用程序(.NET),它可能会引用其他可能使用的类库:
我假设如果我使用任何(标准或核心)我的应用程序仍然会支持其他操作系统。
在某些情况下,我看到在类库中使用.NET Standard的传统.NET Framework?
例如,假设我有一个拥有project.json的类库:
"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": { }
}
依赖与框架有什么不同? 以及由于标准库只是一个规范,项目如何解决这些组件。
在这种情况下,应用程序在使用.NET Framework时是否仍然跨平台?
实际上,.Net Framework应用程序不能在.Net Core上运行。 但它可能在单声道上运行,可在Linux和Mac OS上使用。
何时混合使用组合(标准,核心,NET)?
如果可以的话,您应该为您的库使用.Net Standard(即只要它们没有任何特定于框架的依赖关系)。
如果您的应用程序具有.Net Framework特定的依赖关系,或者应用程序可以是仅限Windows,则可以为您的应用程序使用.Net Framework。
如果您的应用程序需要跨平台,或者您想使用最新的API,则可以为您的应用程序使用.Net Core。 (.Net核心通常更快,然后.Net Framework,也有预览版本。)
框架之间使用和混合的最佳实践是什么?
我不明白这个问题。 您不能在同一个应用程序中混合使用.Net Framework和.Net Core。
如何避免任何冲突和建立失败?
我不认为这是一个可回答的问题,但我可以提供一些明显的建议:
编辑:
依赖与框架有什么不同?
"frameworks": { "netstandard1.5": { } }
表示该库是一个.Net Standard 1.5库,并决定它可以使用哪些框架。
"dependencies": { "NETStandard.Library": "1.6.0" }
实际上"dependencies": { "NETStandard.Library": "1.6.0" }
了作为.Net标准库一部分的包。 这也意味着该库可以访问.Net标准库的所有内容,而不仅仅是它的一部分。
由于标准库只是一个规范,项目如何解决这些组件?
NETStandard.Library
依赖的软件包不仅仅是一个规范。 例如,包System.IO.Compression.ZipFile
包含:
ZipFile
for .Net Framework 4.6的实现,它只是转发给System.IO.Compression.FileSystem
框架程序集 ZipFile
.Net Core的实现 (要自己查看内部包,我推荐NuGetPackageExplorer。)
链接地址: http://www.djcxy.com/p/81889.html上一篇: .NET (standard, Core and Framework): Developing Cross Platform Applications