在这篇博文中,我们将重点介绍.NET团队专注于交付的主要主题:
统一:一个BCL、新的TFM、对ARM64的本机支持、Linux上增强的.NET支持
现代:持续的性能改进、开发人员生产力增强,例如容器优先的工作流程、从相同的代码库构建跨平台的移动和桌面应用程序
.NET适用于云原生应用:易于构建和部署分布式云原生应用
简单:使用C#11简化和编写更少的代码、针对云原生应用程序的HTTP/3和最小API改进
性能:多项性能改进
下面,我们将更详细地介绍这些主题,并分享更多关于这项工作为何如此重要的背景信息。
场景
.NET7用途广泛,您可以在任何平台上构建任何应用程序。
让我们重点介绍从今天开始可以使用.NET实现的一些场景:
从在浏览器中运行的React代码调用现有.NET库,通过包含经过优化以在WebAssembly上运行的流线型.NET运行时。使用强类型C#访问存储在SQLServer数据库中的JSON文档的内容。只需编写几行代码,即可快速构建和部署使用OpenAPI自动记录的安全REST端点。使用AheadofTime(AOT)编译从C#源代码生成简化的本机应用程序,并直接发布到容器映像。运行一个.NETCore应用程序,该应用程序使用内置API将内容压缩并存档到Linux友好的文件gz中。使用为每个目标平台创建本机代码和组件的单一代码库和设计,实现您对Android、iOS和Windows上的移动应用程序的愿景。通过使用升级助手自动迁移旧版应用程序并在CoreWCF的帮助下现代化您的WindowsCommunicationFoundation(WCF)Web服务,获得.NET7的性能优势。使用反映您的架构和设计选择的样板模板,让开发人员比以往任何时候都更容易启动新应用程序。使用ReadKey在Unix/Linux中更好地处理组合键和修饰键。
统一
▌一个基类库(BCL)
.NET7版本是我们.NET统一之旅中的第三个主要版本(自年.NET5以来)。
使用.NET7,您只需学习一次,就可以通过一个SDK、一个运行时、一组基础库重复使用您的技能来构建多种类型的应用程序(云、Web、桌面、移动、游戏、IoT和AI)。
▌面向.NET7
当您以应用程序或库中的框架为目标时,您正在指定要提供的API集。要以.NET7为目标,只需更改项目中的目标框架即可。
TargetFrameworknet7.0/TargetFramework
针对net7.0TargetFrameworkMoniker(TFM)的应用程序将在所有受支持的操作系统和CPU架构上运行。它们使您可以访问.NET7中的所有API以及一堆特定于操作系统的API,例如:
net7.0-android
net7.0-ios
net7.0-maccatalyst
net7.0-macos
net7.0-tvos
net7.0-windows
通过net7.0TFM公开的API旨在随时随地工作。如果您怀疑.NET7是否支持API,您可以随时查看。这是一个新添加的接口IJsonTypeInfoResolver的示例,您可以看到它现在已内置到.NET7中:
随时查看