微软的Project Reunion再次弥合Win32和UWP鸿沟
在今天的Build 2020上,Microsoft推出了Project Reunion,这是通过减少Win32 API和Universal Windows Platform(UWP)API之间的碎片来统一Windows开发人员平台的最新尝试。微软还承诺Project Reunion可以使现有应用程序具有最新功能,无论它们是使用C ++ 、. NET(包括WPF,Windows Forms和UWP)还是React Native构建的。此外,它可以通过诸如NuGet之类的工具将API与Windows分离,并带来新的WinUI 3和WebView2版本。
微软(Microsoft)于2015年7月发布Windows 10,开始推动UWP(其开发用于在Windows 10,Xbox One和HoloLens上运行的应用程序开发的平台)。 Windows8。)当很明显开发人员没有成群结队地拥抱UWP应用程序时,该公司将重点转移到了久经考验的Win32平台上。从那时起,Microsoft一直试图弥合Win32(也称为Windows API)和UWP API之间的鸿沟。简而言之,Project Reunion是Microsoft的最新尝试,旨在“使构建出色的Windows应用程序变得更加容易”。
截至3月,Windows 10在每月10亿的活动设备(PC,Xbox One控制台和HoloLens设备)上运行。这是开发人员可以针对的庞大平台。微软本月初表示,冠状病毒大流行已经激增了人们的参与度。用户每月在Windows 10上花费的时间超过4万亿分钟,同比增长75%。因此,开发人员比以往任何时候都更有理由改善Windows 10的现有应用程序并构建新应用程序。
同样在本月早些时候,为应对这一大流行,微软将Windows 10X及其双屏PC视觉(最初定于2020年假期)推迟到2021年。相反,该变体将首先出现在笔记本电脑上。微软高管向VentureBeat证实,今天使用Project Reunion构建的任何应用程序开发人员都可以在Windows 10X设备上运行。
这次有什么不同?
微软经过多年的努力来统一Win32和UWP中的API,在两者之间添加更多通用的API和可互操作的代码。不过,每次Microsoft尝试改善这种情况时,开发人员都必须等待最新版本的Windows。
这次,Microsoft通过引入软件包从Web上借鉴了一个想法-polyfill。polyfill是一段代码,可在本身不支持它的旧版浏览器上提供现代功能。当Microsoft引入新的API时,开发人员将链接到软件包,如果您使用的是旧版本,Microsoft将尽可能多地填充该功能,以便在新版本中使用。最好的部分是,这些软件包可以在Win32或UWP应用程序中运行。软件包的集合因此成为Win32和UWP之间的通用API服务。最重要的是,Microsoft可以立即在其10亿台设备上做到这一点。微软执行副总裁Rajesh Jha在Build 2020之前的简报中解释了结果。
贾哈说:“我们将Win32和UWP的强大功能结合在一起。”“因此,开发人员不再需要选择,因为我们正在统一这些现有的API-以某种方式将它们与操作系统脱钩。因此,开发人员有信心在使用这些API的同时,将可以在所有Windows上正常工作。通过Project Reunion,开发人员不仅可以现代化其应用程序,使其可以在物理Windows计算机上本地高效地运行,而且还可以在从云流式传输(例如远程应用程序或Windows虚拟桌面)时提供出色的体验。因此,您现在不仅在Windows上运行Windows,而且还在云中运行iOS,Android,Mac和Linux。”
WinUI 3和WebView2
微软今天还发布了WinUI 3 Preview 1,使开发人员可以在Win32应用程序中使用UWP支持。Windows UI XAML库(WinUI)是流行的Windows框架之一,Microsoft首次展示UWP后便不予强调。现在,Microsoft将其描述为“针对Windows的高性能,经过Fluent优化的框架。”
有时,当您希望将Web内容集成到本机应用程序中以跨平台共享代码时,可以使用WebView。微软今天通过.NET预览扩展了WebView2,使开发人员可以在其Windows窗体,WPF或UWP应用中嵌入基于Chromium的WebView。由于WebView2与操作系统分离,因此它提供了完整的Web功能,而不会锁定在特定版本的Windows中。
微软预计这两种预览版都将在今年年底前实现全面上市。
NuGet,MSIX和.NET
说到解耦,微软今天发布了Windows SDK Build Tools NuGet软件包的预览版,该软件包可帮助开发人员采用MSIX。通过将Windows SDK工具放到他们自己的NuGet包中,开发人员可以减少依赖性并将Windows SDK构建工具集成到CI / CD管道中。
此外,随着组织转变为通过适用于Android,iOS,macOS和Windows的Windows虚拟桌面启用远程工作,MSIX受到了一定的欢迎。一项名为MSIX App Attach的新功能将组织在云中部署的OS映像与人们需要远程访问的应用分开。因此,Microsoft承诺,当在Azure上的Windows Virtual Desktop中运行应用程序时,该功能将使VM之间的漫游更快,更便宜。IT管理员还可以更有效地负载均衡其工作人员,并从VM中获得更大的密度。简而言之,它可以降低存储,性能和启动成本。
微软今天还发布了预览版的新Windows SDK .NET程序包,并启动了C#/ WinRT。前者为所有Windows WinRT API提供.NET互操作程序集。后者是为.NET创建WinRT投影的工具,它将使托管的.NET 5应用程序调用Windows WinRT API和第三方WinRT组件。