.NET 6 攻略大全(二)

点击上方蓝字
关注我们
(本文阅读时间:15分钟)
接上篇内容 , 本篇文章将介绍:Arm64、容器、支持 OpenTelemetry 指标、Windows Forms 的相关攻略 。
Arm64
这些天来 , 对于笔记本电脑、云硬件和其他设备来说 , Arm64 令人兴奋不已 。 我们对 .NET 团队感到同样兴奋 , 并正在尽最大努力跟上这一行业趋势 。 我们直接与 Arm Holdings、Apple 和 Microsoft 的工程师合作 , 以确保我们的实施是正确和优化的 , 并且我们的计划保持一致 。 这些密切的合作伙伴关系对我们帮助很大 。

  • 特别感谢 Apple 在 M1 芯片发布之前向我们的团队发送了一蒲式耳 Arm64 开发套件供我们使用 , 并提供了重要的技术支持 。
  • 特别感谢 Arm Holdings , 他们的工程师对我们的 Arm64 更改进行了代码审查 , 并进行了性能改进 。
在此之前 , 我们通过 .NET Core 3.0 和 Arm32 添加了对 Arm64 的初始支持 。 该团队在最近的几个版本中都对 Arm64 进行了重大投资 , 并且在可预见的未来这将继续下去 。 在 .NET 6 中 , 我们主要关注在 macOS 和 Windows Arm64 操作系统上支持新的 Apple Silicon 芯片和x64 仿真场景 。
您可以在 macOS 11+ 和 Windows 11+ Arm64 操作系统上安装 Arm64 和 x64 版本的 .NET 。 我们必须做出多种设计选择和产品更改以确保其奏效 。
我们的策略是“亲原生架构” 。 我们建议您始终使用与原生架构相匹配的 SDK , 即 macOS 和 Windows Arm64 上的 Arm64 SDK 。 SDK 是大量的软件 。 在 Arm64 芯片上本地运行的性能将比仿真高得多 。 我们更新了 CLI 以简化操作 。 我们永远不会专注于优化模拟 x64 。
默认情况下 , 如果您dotnet run是带有 Arm64 SDK 的 .NET 6 应用程序 , 它将作为 Arm64 运行 。 您可以使用参数轻松切换到以 x64 运行 , 例如-adotnet run -a x64. 相同的论点适用于其他 CLI 动词 。 有关更多信息 , 请参阅适用于 macOS 和 Windows Arm64 的 .NET 6 RC2 更新 。
我想确保涵盖其中的一个微妙之处 。 当您使用-a x64时 , SDK 仍以 Arm64 方式原生运行 。 .NET SDK 体系结构中存在进程边界的固定点 。 在大多数情况下 , 一个进程必须全是 Arm64 或全是 x64 。 我正在简化一点 , 但 .NET CLI 会等待 SDK 架构中的最后一个进程创建 , 然后将其作为您请求的芯片架构(如 x64)启动 。 这就是您的代码运行的过程 。 这样 , 作为开发人员 , 您可以获得 Arm64 的好处 , 但您的代码可以在它需要的过程中运行 。 这仅在您需要将某些代码作为 x64 运行时才相关 。 如果你不这样做 , 那么你可以一直以 Arm64 的方式运行所有东西 , 这很棒 。
▌Arm64 支持
对于 macOS 和 Windows Arm64 , 以下是您需要了解的要点:
  • 支持并推荐 .NET 6 Arm64 和 x64 SDK 。
  • 支持所有支持的 Arm64 和 x64 运行时 。
  • .NET Core 3.1 和 .NET 5 SDK 可以工作 , 但提供的功能较少 , 并且在某些情况下不受完全支持 。
  • dotnet test 尚未与 x64 仿真一起正常工作 。 我们正在努力 。 dotnet test 将作为 6.0.200 版本的一部分进行改进 , 并且可能更早 。
有关更多完整信息 , 请参阅.NET 对 macOS 和 Windows Arm64的支持 。
此讨论中缺少 Linux 。 它不像 macOS 和 Windows 那样支持 x64 仿真 。 因此 , 这些新的 CLI 特性和支持方法并不直接适用于 Linux , Linux 也不需要它们 。
▌视窗 Arm64
我们有一个简单的工具来演示.NET 运行的环境 。
C:Usersrich>dotnet tool install -g dotnet-runtimeinfo You can invoke the tool using the following command: dotnet-runtimeinfo Tool 'dotnet-runtimeinfo' (version '1.0.5') was successfully installed. C:Usersrich>dotnet runtimeinfo4242 ,d ,d42 42 42,adPPYb,42 ,adPPYba, MM42MMM 8b,dPPYba, ,adPPYba, MM42MMMa8" `Y42 a8" "8a 42 42P' `"8a a8P_____42 428b 42 8b d8 42 42 42 8PP""""""" 42"8a, ,d42 "8a, ,a8" 42, 42 42 "8b, ,aa 42,`"8bbdP"Y8 `"YbbdP"' "Y428 42 42 `"Ybbd8"' "Y428

特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。