WinUI 3.0:Windows 控件的未来

WinUI 3.0:Windows 控件的未来_第1张图片

很难选择Windows UI框架。毕竟,面临的选择太多了。 您是否使用熟悉的WinForms、更现代的展示框架窗口(Windows Presentation Framework)或Windows 10的Universal Windows Platform构建应用程序?

每个控件都有其优缺点,它们具有不同的控件集、设计工具和受支持的Windows版本。 它们支持不同的设计语言,仅通用Windows平台(UWP)控件提供对最新Fluent外观的支持。 微软一直在努力通过XAML Islands等工具将新的W​​indows 10 UWP控件移植到较旧的框架中。 它们是一个不错的选择,但仅限于在Windows 10上运行。

Windows UI的新方法

真正需要的是一种全新的方法来交付Windows UI组件和控件,该方法与底层OS分离,并且能够在Windows 10之上的版本中以及在较旧版本和Web等其他平台上交付相同的功能。 毫无疑问,作为WinUI控件库的一部分,该项目已经进行了一段时间。 Windows UI库的早期版本专注于UWP和Fluent Design。 下一个重要版本 WinUI 3.0将最终退出UWP框架, 在2020年某个时候支持整个本机Windows UI平台 。

微软最近发布了WinUI 3.0的Alpha版本 。 它绝不是完整的,缺少许多流行的控件。 但是,这是从新控件以及安装和使用新控件的方式开始的好地方。 作为Alpha代码,它尚未准备好投入生产,但仅供您尝试并向开发团队提供反馈。

使用WinUI 3.0 alpha版本

WinUI 3.0的入门非常容易,因为Microsoft在GitHub上拥有XAML Controls库的WinUI 3.0预览版的代码。 您可以克隆存储库并构建示例应用程序以查看可用的控件。 该示例确实需要最新版本的Visual Studio(我建议使用Visual Studio 2019)和Windows 10 1803或更高版本。 如果您使用的是C ++代码,则需要为.NET Desktop和UWP开发配置Visual Studio,以及等效的C ++工具。 最大的变化可能是迁移到新的命名空间:从Windows.UI到Microsoft.UI。

我能够在几分钟内启动并运行示例代码 ,使用Git bash工具克隆示例应用程序的WinUI 3.0 Alpha分支,然后在Visual Studio 2019 Community Edition中进行编译。 加载后,您将获得可用控件的列表,单击它们会显示示例代码以及控件的渲染实例。 这是查看可用控件以及如何在应用程序中使用它们的好方法。 缺少的控件显示为灰色,因此您可以查看未来版本的计划。

通过注册WinUI 3.0 alpha ,您可以访问Visual Studio扩展,该扩展添加了新的WinUI 3.0特定模板。 如果要构建新的WinUI应用程序,则非常值得安装,因为它使您开始使用运行时组件的模板以及.NET和C ++的空白应用程序。 如果找不到您要使用的所有控件,请不要担心。 这只是一个alpha版本,一些通用控件尚未为新框架重写。 随着2020年某个时候的发布,他们还有足够的时间来发布将来的alpha和beta版本。

将用户界面与Windows分开

WinUI过渡中最重要的部分也许是UI控件与其余Windows SDK的分离。 这是一项重要的更改,它使我们最终可以从底层操作系统中单独更新UI控件,甚至允许社区作为开源项目的一部分来对其进行处理。 这是一个令人惊讶的大转变,将UI从Windows转移到了NuGet。 今天,如果列表框控件中存在错误,我们必须等待下半年的Windows更新进行修复。 使用WinUI 3.0,我们将能够从NuGet下载更新的控件,重建我们的应用程序,然后发布更新。

UI与Windows SDK其余部分的分离应使更新SDK的其余部分变得更加容易。 如果WinUI可以成功过渡到NuGet,则很显然,我们可以逐步开发Windows SDK的更多元素,并在相同的过程中发送它们。 这将有助于推动.NET Core和将来的.NET 5.0在Windows应用程序开发中的采用,从而使其能够在Windows开发时间表之外发展。 Windows的新版本始终需要Windows SDK的新版本,但是没有理由不应该在半年周期之外继续发展,修复错误并添加新的API和功能。

通过WASM跨平台

微软为WinUI 3.0制定了宏伟计划。 尤为重要的是, 它与构建Uno Platform Web程序集控件的团队建立了合作关系 ,后者承诺使用WinUI 3.0控件库的浏览器托管版本。 随着Microsoft承诺将其新的基于Chromium的Edge浏览器的版本交付回Windows 7,以及在Linux和macOS上,您将能够使用这些控件以及Blazor的.NET Web程序集实现来交付WinUI 3.0所有其他平台的应用程序。

交付跨平台的、向后兼容的 (在一定程度上)WinUI是明智的一步。 我们生活在一个用户可以选择并且计算是异构的世界中。 如果开发人员希望获得最大的影响,那么我们需要像这样的工具,这些工具不仅可以通过现代.NET实现提供,还可以通过任何可用的方式提供给较旧的平台。 对于WinUI使用WebAssembly非常有意义,因为它是真正的跨平台UI环境。

即使我们只有alpha版本,这里也有很多喜欢的东西。 WinUI 3.0工具是熟悉且易于使用的,可轻松将现有的UWP代码移动到新的UI框架。 对C ++ Win32应用程序的支持将为您提供将Fluent Design引入WPF或WinForms代码的机会,而无需跳过XAML Islands圈。 有了很多希望,很难等待2020年和全面上市。

原文链接: https://www.infoworld.com/article/3453027/winui-30-the-future-of-windows-controls.html

你可能感兴趣的:(windows)