gpt4 book ai didi

.NET(标准、核心和框架): Developing Cross Platform Applications

转载 作者:行者123 更新时间:2023-12-04 20:33:37 24 4
gpt4 key购买 nike

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

正如定义所说:

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

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

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

    在某些情况下,我看到人们在类库中使用传统的 .NET Framework 和 .NET Standard?
  • 在这种情况下,使用 .NET 时应用程序是否仍然跨平台
    框架?
  • 我什么时候应该混合使用组合(标准、核心、NET)?
  • 在框架之间使用和混合的最佳实践是什么?
  • 如何避免任何冲突和构建失败?

  • 例如,假设我有一个包含 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": { }
    }

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

    最佳答案

    In this case, Is the application still cross platform when using .NET Framework?



    并非如此,.Net Framework 应用程序不会在 .Net Core 上运行。但它可能会在 Linux 和 Mac OS 上可用的单声道上运行。

    When Should I mix and use a combination (Standard , Core, NET)?



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

    如果您的应用程序具有特定于 .Net Framework 的依赖项,或者应用程序可以仅适用于 Windows,则您可以将 .Net Framework 用于您的应用程序。

    如果您的应用程序需要跨平台,或者您想使用最新的 API,您可以将 .Net Core 用于您的应用程序。 (.Net Core 通常比 .Net Framework 更新得更快,并且还有预览版。)

    What is the best practices in using and mixing between frameworks?



    我不明白这个问题。您不能在同一个应用程序中混合使用 .Net Framework 和 .Net Core。

    How to avoid any conflicts and build failures?



    我不认为这是一个可以回答的问题,尽管我可以提供一些明显的建议:
  • 阅读并遵循文档。
  • 不要使用不稳定的技术。 (请记住,.Net Core 工具目前仍处于预览阶段。)

  • 编辑:

    How is the dependency different from framework?


    "frameworks": { "netstandard1.5": { } }意味着该库是一个 .Net Standard 1.5 库并决定它可以从哪些框架中使用。
    "dependencies": { "NETStandard.Library": "1.6.0" }实际上引入了属于 .Net 标准库的包。这也意味着该库可以访问 .Net 标准库的所有内容,而不仅仅是其中的某些子集。

    How is the project resolving the assemblies since the Standard Library is just a specification?


    NETStandard.Library 的包取决于不仅仅是一个规范。例如,包 System.IO.Compression.ZipFile包含:
  • 用于编译的引用程序集(即规范)
  • ZipFile 的实现对于 .Net Framework 4.6,它只是转发到 System.IO.Compression.FileSystem框架总成
  • .Net Core 的实际实现 ZipFile

  • (要自己查看包内部,我推荐 NuGetPackageExplorer 。)

    关于.NET(标准、核心和框架): Developing Cross Platform Applications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40407164/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com