微软(9 月 11 日)发布博文,微软正在预览对 .NET 9 的 UWP(通用 Windows 平台)支持,为现有 UWP 开发人员提供一条使用最新的 .NET 和本机 AOT 实现其应用程序现代化的途径。这样做是因为该公司敦促开发人员切换到 Windows App SDK 和 WinUI 3,可以让现有 UWP 开发者利用最新 .NET 和 Native AOT 来现代化改造其应用。
"您是考虑迁移到 Windows 应用 SDK 和 WinUI 3 的 UWP 应用开发人员吗?"微软的高级软件工程师 Sergio Pedri 今天在 DevBlogs 的一篇博文中问道。"或者想要利用最新版本的 .NET 和本机 AOT?或者,也许您一直在努力引用您最喜欢的库的新版本,因为它们仅包含对 .NET 6 及更高版本的支持?好吧,不要再观望了!此预览版 UWP 对 .NET 9 的支持为 UWP 应用程序提供了使用最新版本的 .NET 进行现代化的途径。
预览版不是 UWP 的任何新特性或功能,而是一组更新的工具和组件,它们是 .NET、Visual Studio、Windows SDK 等的一部分。它们允许开发人员使用最新版本的 .NET 和 C# 来构建 UWP 应用程序,以便在他们考虑转向 WinUI 3 时通过 .NET 9 实现其应用程序的现代化。
UWP 于 2015 年随 Windows 10 推出,实现了 微软在所有 Windows 设备(电脑、平板电脑、Xbox、IoT、HoloLens 等)上建立统一应用平台的愿景。各种问题和因素使项目停滞不前,微软引入了称为 WinUI 2 的 Windows UI 库,WinUI 2 是 UWP 的 UI 框架,WinUI 3 是 WinUI 的演变,将现代 UI 框架与 UWP 分离,使其可用于 UWP 和传统 Win32 应用程序(通过 Windows 应用程序 SDK)。停滞 UWP 开发的部分动力似乎是 微软转向专注于原生 Windows 应用程序开发,现在可以通过一系列令人眼花缭乱的选项来实现,包括 WinUI 3、Windows Forms、WPF、Xamarin、MAUI 等:
微软表示 UWP 对 .NET 9 的支持的主要目标包括:
- **为希望迁移到 WinUI 3 的 UWP 开发人员提供更好的迁移路径。**UWP 对 .NET 9 的支持提供了通往 WinUI 3 的增量路径,而不必在单个步骤中执行整个迁移(意味着更新所有 .NET 运行时以及整个 UI 框架和应用程序模型)。 通过允许您专注于升级独立于 UI 框架的 .NET 运行时,以及 应用程序模型,并采用 .NET 中的进步来实现代码库的现代化,那么 现在可以将迁移拆分为两个 "检查点"。首先,迁移到 .NET 9,并让应用程序在Native AOT(这已经需要取决于场景)。然后,在确保 迁移的第一部分是否成功,您可以专注于 从 UWP XAML 切换到 WinUI 3 和 Win32 应用程序模型。用 这种方法使迁移更具增量性,并且风险更低。 我们目前正在努力迁移到 .NET 9。
- **使开发人员能够删除对 .NET Native 的依赖,以便他们可以从最新的 .NET 和 C# 功能中受益,无论他们的应用程序模型是什么。**如果你当前面向 UWP,因为由于某种原因无法迁移到 Windows 应用 SDK 和 WinUI 3 (可能是因为 Windows 应用 SDK 不支持某些关键 API,或者因为你还没有资源来执行完全迁移) ,我们仍然希望允许你与所有其他 Windows UI 框架保持一致。此更新减少了 UWP 开发人员在尝试使用生态系统中的旧库对旧版应用程序进行现代化改造时遇到的摩擦。
"无论您是从 UWP 迁移到 WinUI 3,还是只是想在应用程序的现有 UI 框架上提高工作效率,此预览版都可以让您现代化到最新的 .NET 和 C#,并利用最近的工具改进来简化您的迁移过程,"Pedri 说。
这篇内容广泛的帖子继续详细介绍了如何开始、创建 UWP .NET 9 项目、项目的详细信息等等。至于即将推出的内容,Visual Studio 中的 XAML 设计器正在开发中,同时 MSTest 还将添加对 .NET 9、WinUI 2 的 UWP 支持、对 Windows Community Toolkit 的支持等。
Pedri 提供的一个警告说明:"正如我们在简介中提到的,UWP 对 .NET 9 的支持以预览版提供,因此在我们努力改善开发人员体验时,预计会有一些粗糙的边缘!我们希望从长远来看,这将成为 UWP 应用程序使用 .NET 和 C# 的首选方式,并且尽可能多的开发人员将能够将其现有的 UWP 应用程序从 .NET Native 升级到最新的 .NET 和 Native AOT。
微软的这项调整让很多传统 UWP 应用开发者感到惊喜,意味着开发者无需全面迁移至复杂且耗时的 Windows App SDK,就能将现有 UWP 应用升级到.NET 9,将带来诸多底层优势。UWP 是一个已被微软接近放弃的移动应用框架,且停滞在.NET 版本 6 上,因此,将 UWP 应用迁移到基于桌面的 Windows App SDK 可能会颇具挑战。
微软希望为 UWP 初步支持.NET 9,从而引导开发者逐步升级他们的应用,首先通过现代化底层代码库,移除对.NET Native(停留在.NET Core 2.0 功能级别)的依赖,接入最新的.NET 和 C#特性,并获得显著的性能提升。