首页 > 其他分享 >UWP 通过 .NET 9 和Native AOT 的支持实现 UWP 应用的现代化

UWP 通过 .NET 9 和Native AOT 的支持实现 UWP 应用的现代化

时间:2024-09-18 10:23:40浏览次数:3  
标签:Windows UWP WinUI 应用程序 AOT NET 迁移

微软(9 月 11 日)发布博文,微软正在预览对 .NET 9 的 UWP(通用 Windows 平台)支持,为现有 UWP 开发人员提供一条使用最新的 .NET 和本机 AOT 实现其应用程序现代化的途径。这样做是因为该公司敦促开发人员切换到 Windows App SDK 和 WinUI 3,可以让现有 UWP 开发者利用最新 .NET 和 Native AOT 来现代化改造其应用

UWP 通过 .NET 9 和Native AOT 的支持实现 UWP 应用的现代化_开发人员

“您是考虑迁移到 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 通过 .NET 9 和Native AOT 的支持实现 UWP 应用的现代化_开发人员_02

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 和Native AOT 的支持实现 UWP 应用的现代化_应用程序_03

微软表示 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#特性,并获得显著的性能提升。


标签:Windows,UWP,WinUI,应用程序,AOT,NET,迁移
From: https://blog.51cto.com/shanyou/12043889

相关文章

  • 揭秘最为知名的黑客工具之一: Netcat!适用安全测试、渗透测试、黑客攻击!
    在网络安全领域,黑客工具一直备受关注。它们既可以被用于攻击,也可以用于防御。本文将为大家揭秘一款知名的黑客工具:Netcat。1、Netcat是什么?Netcat被誉为“网络的瑞士军刀”,简称为nc,是一个功能丰富的网络工具。最早是一个简单的TCP/IP工具,用于在网络上传输数据。随着时间的推......
  • PointNet++改进策略目录
    后续我将如何使用文章中创新点加入的PointNet++中代码实现部分进行更新题目原理解析代码改进PointNet++改进策略:模块改进|LFA|RandLA-Net,通过随机采样与局部特征聚合提升大规模3D点云处理效率✔️❌PointNet++改进策略:模块改进|ResidualMLP|PointMLP,简化原本复......
  • PointNet++改进策略 :模块改进 | 双边增强模块 | 自适应融合模块 | ,将多分辨率特征在点
    论文题目:SemanticSegmentationforRealPointCloudScenesviaBilateralAugmentationandAdaptiveFusion发布期刊:CVPR作者地址:1澳大利亚国立大学,2Data61-CSIRO,澳大利亚代码地址:https://github.com/ShiQiu0419/BAAF-Net介绍这篇论文的标题是《SemanticSegmentatio......
  • 开源项目dotnet/eshop 和 dotnet/eshopsupport
    dotnet/eshop[1]和dotnet/eshopsupport[2]是两个与.NET相关的开源项目,分别用于展示电子商务应用的不同方面。dotnet/eshop:功能与架构:dotnet/eshop是一个基于.NETAspire的参考电商应用,展示了服务架构在构建现代在线购物平台中的应用。项目涵盖产品目录、购物车和订单管理......
  • 如果netstat显示某个端口正在监听,我该如何确认是哪些服务?
    当然,以下是一些具体的案例,展示了如何使用上述方法来确认监听特定端口的服务。案例一:使用lsof命令确认服务假设你运行了netstat命令并发现端口3306正在监听,但你不确定是哪个服务。使用lsof命令:sudolsof-i:3306输出可能如下:COMMANDPIDUSERFDTY......
  • 第J3-1周:DenseNet算法 实现乳腺癌识别(pytorch)
    >-**......
  • 2024-09-17-生活在Kubernetes中的Springboot
    Springboot和Kubernetes中的很多功能都是重叠的,SpringCloud重合的就更多了。不过我还是希望尽可能采用微服务及服务网格这套思路,应用层做轻,SpringCloud就不用了,重合的部分也尽可能用Kubernetes的功能。配置中心Kubernetes本身提供了对配置中心的支持,不需要再使用Apollo之类的工......
  • 【生成对抗网络GAN】最全的关于生成对抗网络Generative Adversarial Networks,GAN的介
    【生成对抗网络GAN】最全的关于生成对抗网络GenerativeAdversarialNetworks,GAN的介绍!!【生成对抗网络GAN】最全的关于生成对抗网络GenerativeAdversarialNetworks,GAN的介绍!!文章目录【生成对抗网络GAN】最全的关于生成对抗网络GenerativeAdversarialNetworks,GAN的......
  • 【Kubernetes】常见面试题汇总(二十二)
    目录68.简述Helm及其优势?特别说明:题目1-68属于【Kubernetes】的常规概念题。68.简述Helm及其优势?(1)Helm是Kubernetes的软件包管理工具。类似Ubuntu中使用的apt、Centos中使用的yum或者Python中的pip一样。(2)Helm能够将一组K8S资源打包统一管理,是查......
  • 【Kubernetes】常见面试题汇总(二十一)
    目录65.简述Kubernetes中,如何使用EFK实现日志的统一管理?66.简述Kubernetes如何进行优雅的节点关机维护?67.简述Kubernetes集群联邦?65.简述Kubernetes中,如何使用EFK实现日志的统一管理?-在Kubernetes集群环境中,通常一个完整的应用或服务涉及组件过多,建议对......