.net7新功能

.NET 7 为C# 11/F# 7、.NET MAUI、ASP.NET Core/Blazor、Web API、WinForms、WPF 等应用程序带来了更高的性能和新功能。使用 .NET 7,您还可以轻松地将 .NET 7 项目容器化,在 GitHub 操作中设置 CI/CD 工作流,并实现云原生可观察性。

.NET 7 中的新功能

在这篇博文中,我们将重点介绍 .NET 团队专注于交付的主要主题:

  • 统一:一个 BCL、新的 TFM、对 ARM64 的本机支持、Linux 上增强的 .NET 支持

  • 现代:持续的性能改进、开发人员生产力增强,例如容器优先的工作流程、从相同的代码库构建跨平台的移动和桌面应用程序

  • .NET 适用于云原生应用:易于构建和部署分布式云原生应用

  • 简单:使用 C# 11 简化和编写更少的代码、针对云原生应用程序的 HTTP/3 和最小 API 改进

  • 性能:多项性能改进

下面,我们将更详细地介绍这些主题,并分享更多关于这项工作为何如此重要的背景信息。

场景

.NET 7 用途广泛,您可以在任何平台上构建任何应用程序。

让我们重点介绍从今天开始可以使用 .NET 实现的一些场景:

  • 从在浏览器中运行的 React 代码调用现有.NET库,通过包含经过优化以在 WebAssembly 上运行的流线型 .NET运行时。

  • 使用强类型 C#访问存储在 SQL Server 数据库中的 JSON 文档的内容。

  • 只需编写几行代码,即可快速构建和部署使用 OpenAPI 自动记录的安全 REST 端点。

  • 使用 Ahead of Time (AOT) 编译从 C# 源代码生成简化的本机应用程序,并直接发布到容器映像。

  • 运行一个 .NET Core 应用程序,该应用程序使用内置 API 将内容压缩并存档到 Linux 友好的文件gz中。

  • 使用为每个目标平台创建本机代码和组件的单一代码库和设计,实现您对 Android、iOS 和 Windows 上的移动应用程序的愿景。

  • 通过使用升级助手自动迁移旧版应用程序并在 CoreWCF 的帮助下现代化您的 Windows Communication Foundation (WCF) Web 服务,获得.NET 7 的性能优势。

  • 使用反映您的架构和设计选择的样板模板,让开发人员比以往任何时候都更容易启动新应用程序。

  • 使用ReadKey 在 Unix/Linux 中更好地处理组合键和修饰键。

统一

一个基类库 (BCL)

.NET 7 版本是我们 .NET 统一之旅中的第三个主要版本(自 2016 年 .NET 5 以来)。

使用 .NET 7,您只需学习一次,就可以通过一个 SDK、一个运行时、一组基础库重复使用您的技能来构建多种类型的应用程序(云、Web、桌面、移动、游戏、IoT 和 AI)。

面向 .NET 7

当您以应用程序或库中的框架为目标时,您正在指定要提供的 API 集。要以 .NET 7 为目标,只需更改项目中的目标框架即可。

<TargetFramework>net7.0</TargetFramework>

针对 net7.0 Target Framework Moniker (TFM) 的应用程序将在所有受支持的操作系统和 CPU 架构上运行。它们使您可以访问 .NET 7 中的所有 API 以及一堆特定于操作系统的 API,例如:

  • net7.0-android

  • net7.0-ios

  • net7.0-maccatalyst

  • net7.0-macos

  • net7.0-tvos

  • net7.0-windows

通过 net7.0 TFM 公开的 API 旨在随时随地工作。如果您怀疑 .NET 7 是否支持 API,您可以随时查看。这是一个新添加的接口 IJsonTypeInfoResolver 的示例,您可以看到它现在已内置到 .NET 7 中:

ARM64

随着行业向 ARM 发展,.NET 也是如此。ARM CPU 的最大优势之一是电源效率。这以最低的功耗带来最高的性能。换句话说,您可以事半功倍。在 .NET 5 中,我们描述了我们针对 ARM64 所做的性能计划。现在,在两个版本之后,我们想与您分享我们已经走了多远。我们的持续目标是将 x64 的性能与 ARM64 相匹配,以帮助我们的客户将他们的 .NET 应用程序迁移到 ARM。

运行时改进

我们在调查 x64 和 ARM64 时遇到的一个挑战是发现无法从 ARM64 机器正确读取 L3 缓存大小。当无法从操作系统或机器的 BIOS 中获取 L3 缓存大小,我们通过更改启发式方法以返回近似大小。现在我们可以更好地估计每个 L3 缓存大小的内核数。

Core count

L3 cache size

1~4

4MB

5~16

8MB

17~64

16MB

65+

32MB

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值