向最初称为 .NET Core 的构建的转变给 .NET 带来了巨大的变化。 它现在不仅是开源和跨平台的,而且也不再受 Windows 的发布周期限制。 现在每年发布一次,而不是在主要版本之间隔几年发布一次,新版本每年 11 月发布。
最新版本 .NET 7 于去年年底推出,带来了许多新功能,并添加了更多方式将旧的 .NET Framework 代码引入新平台。 它专注于提高性能,并允许您直接从开发工具转到在 Kubernetes 中使用的云原生容器。 其他变化包括改进对 ARM 处理器的支持——更深入地了解它们的运行方式,从而显着提升本机代码的性能。
.NET 现在可运行于 Intel 和 AMD
随着新一代基于 ARM 的桌面和数据中心硬件开始推出,ARM 支持变得越来越重要。 随着功率和空间预算越来越受限,基于 ARM 的服务器可以帮助在更小的空间内获得更多的计算能力,从而使您能够通过提高密度来充分利用现有的本地数据中心。
.NET 不仅支持 x64 和 ARM 处理器——甚至可以在 IBM 的 Power 处理器上运行。 这允许您将现有的 .NET 企业应用程序引入您现有的 Power 资产,包括与现有业务线应用程序和数据库一起运行的 IBM iSeries 硬件。
.NET 构建更好的代码
此版本的主要交付成果之一是继续改进用于构建代码的基类库。 这里的意图是开发人员的技能是可以转移的:您只需学习一次 .NET,这些技能可用于构建从桌面应用程序到 Web、移动设备到服务器代码的所有内容。
其他 API 提供用户界面、Web 服务器、分布式应用程序等。 对底层平台的其他改进为 .NET 语言添加了新功能,以帮助构建和运行应用程序。
支持现代 devops 实践很重要,.NET 7 添加了更多工具来支持日益流行的 OpenTelemetry 标准。 这与其他云原生功能并存,因为 OpenTelemetry 是用于处理大规模分布式应用程序的关键技术之一。
跨平台.NET
最新 .NET 版本的一个更重要的跨平台功能是 MAUI,即多平台应用程序 UI。 它是 Xamarin 的继任者,提供了一种交付在 Windows、iOS、Android 和 macOS Catalyst 上运行的应用程序的方法。
作为 Xamarin Forms 的现代版本,MAUI 提供了移动和桌面用户界面工具,并支持其自身和本机控件。 虽然可以使用 MAUI 来拥有一个为所有四个平台构建的代码库,但仍然有一些特定于操作系统的功能,最好直接访问这些功能,以避免将您的代码锁定到最低公分母。
为了提高应用程序性能并添加新功能,其他关键库已更新。 底层 .NET CLI 进行了改造,让您可以从命令行执行更多操作,包括为您的代码构建 Docker 容器。
一项有用的更改是支持 dotnet new 命令中的制表符自动完成,快速设置从 Web 应用程序和 winforms 应用程序到基本测试的所有内容的结构和依赖项。 此处的 Tab 完成可以向您显示每个项目类型的可用选项,确保您构建的不仅是您想要的,而且是您的 .NET 安装当前支持的。
提高开发人员的工作效率变得越来越重要,因为组织被迫在预算有限的情况下完成数字化转型计划。 .NET 7 中的新功能应该在这方面有所帮助,为开发人员提供了使用他们自己选择的工具来构建代码而不会分心的方法。
.NET 的跨平台基础有助于交付其云原生工具,在 Linux 容器中交付代码,以便在大多数云平台上的 Kubernetes 中使用。 借助 ASP.NET Core 等工具在与平台相同的周期内获取更新,它提供了一种替代且可扩展的方式来为您的代码交付 Web 前端。
微软一直在使用其 Blazor 网络开发工具来试验基于 .NET 的 WebAssembly 代码。 虽然该技术仍处于早期阶段,但 .NET 7 改进了支持,提供了一组工具来帮助调试 WebAssembly 应用程序。 在浏览器中以接近二进制的速度运行 .NET 代码的能力很重要,因为它允许您利用 .NET UI 控件及其连接功能作为 JavaScript 的替代方案。 使用 .NET 7 获得 WebAssembly 体验非常值得您花时间,因为它在云原生世界中作为容器的替代品越来越重要。
.NET 7 的生命周期和升级
.NET 7 需要注意的一件事:因为它是一个奇数版本,所以它只是一个标准术语支持版本。 这为它提供了 18 个月的支持,因此请准备好在 2023 年晚些时候发布时将任何 .NET 7 应用程序更新到 .NET 8。您应该有六个月的时间进行任何迁移,但值得定期检查您的代码库与预览版本,以便您 为任何重大变化做好准备。
新版本包括一个升级助手,可帮助将旧的 .NET 应用程序带到最新的平台。 支持 .NET Foundation 工具的社区替代方案,有助于将遗留应用程序以及 Microsoft API 引入新平台。 受支持的一个关键工具是 CoreWCF,它是原始 Windows 通信框架的一种新实现,用于将桌面应用程序链接到业务线服务。
Microsoft 将 .Net 7 描述为“现代”,这是一个很好的描述。 对于一家以确保向后兼容性而闻名的公司而言,放弃使用了 20 年的遗留 .NET Framework 转而使用同名的全新平台是一个勇敢的举动。 新 .NET 的三个版本,我们将获得旧工具的更新社区版本以及旧 Microsoft 需要多年才能提供的新功能。
结果是一个大大改进的、面向未来的平台,让您可以保留大部分旧代码,同时为您提供交付最新移动和云应用程序所需的工具。 如果您还没有开始迁移旧的 .NET 代码,那么 .NET 7 是一个很好的起点:它稳定、快速并且具有企业应用程序所需的大部分功能。