找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2021-8-31 14:17  /   查看:3152  /  回复:0
本帖最后由 Richard.Ma 于 2021-8-31 14:19 编辑

Windows UI 库 ( WinUI ) 是 Windows 的本机层。它包含设计人员和开发人员构建 Windows 应用程序所需的控件和流畅的设计系统。
WinUI 是微软当前图形用户界面 (GUI) 最新框架,例如 Microsoft 基础类 (MFC) 库框架、WinForms、Windows Presentation Foundation (WPF) 和通用 Windows 平台 (UWP)。
Microsoft 为桌面应用程序(MFC、WinForms 和 WPF)和 UWP 应用程序创建了这个包罗万象、最先进的 UI 框架,并将其设计为适用于新的 Windows 应用程序及其前身。其增强的直观功能可以帮助您的本机应用程序快速运行或从头开始构建您的应用程序。
WinUI 多年来一直在改进。有两个版本:WinUI 2 和 WinUI 3。
WinUI 2 库包含 UWP XAML 应用程序的 UI 控件和样式。它由内置于 Windows 10 操作系统中的 XAML 和可视化层以及构建于操作系统之上的控件库组成。
WinUI 3 包含整个 UWP XAML 代码库以及 WinUI 2 的所有控件和样式。它还在 Window 10 视觉层中拥有其他强大的 Windows 技术层,所有这些层都包含在一个 UI 框架中。


将 WinUI 的功能与早期框架进行比较
WinUI 和早期框架之间有几个区别:

Microsoft 基础类库 (MFC)
1992 年,Microsoft 基础类库 (MFC)诞生。它由本机 C++ 和面向对象的 UI 框架组成,用于创建 Windows 应用程序。MFC 通过提供类实例化和动态转换数据结构或对象以稍后存储、传输或重建来工作。它还提供用于基本输入和输出、管理窗口以及存储菜单和对话框集合的代码。
MFC 框架通过一组可重用的类简化了 Windows 编程,从而使编程变得容易。它为基本编程中使用的对象提供类,例如字符串、文件和标准 Windows API 和数据结构(例如窗口和控件)。今天,构建 MFC 应用程序的开发人员可以继续使用我们的传统的ActiveX 控件如 VSFlexGrid 和 True DBGrid。

WinForms
2002 年,Microsoft 发布了另一个名为 WinForms 的 GUI,以及 .NET Framework。与 MFC 一样,WinForms 引入了一些显着的生产力改进,但未能取代 MFC,因为开发人员只能在 .NET 应用程序中使用它。
WinForms 使用  .NET framework并提供 Window Forms 独有的控件和功能。WinForms 使用基于可视化设计器的 Visual Studio 来创建桌面或 Win32 应用程序。它还支持拖放功能,可简化桌面应用程序的构建。
WinForms 支持 HTML 文本格式并描述了可用的 HTML 格式标签。这一功能使您能够构建一个 UI 来过滤您的数据。
近二十年后,WinForms 的开发仍然非常流行,随着 .NET 5 以及即将推出的.NET 6,ComponentOne WinForms 控件也一直在持续更新中

Windows Presentation Foundation (WPF)
2006 年,Microsoft 发布了改进的 Windows Presentation Foundation (WPF),具有无数功能。针对 .NET 开发人员,WPF 允许 Windows 使用 Direct3D 渲染将一些图形任务分配到到 GPU。这种分配有助于减少计算机 CPU 上的工作负载。
WPF 利用现代 2D 和 3D 图形硬件、动画、样式和媒体。它允许您使用标记和代码隐藏来开发应用程序。
标记以声明方式实现应用程序的外观。例如,它使用形状和图形设计和填充对话框、页面和用户控件的外观。另一方面,代码隐藏是一种托管编程语言,可用于实现应用程序的行为。
借助 WPF,您可以使用 XAML 创建 UI。它的图形是基于矢量的,这使得它们具有可扩展性,与光栅图像相比需要更少的存储容量。
尽管 WPF 是最先进的 .NET 开发人员框架,因为它易于开发桌面应用程序,但它并没有取代 WinForms GUI 框架,因为它没有将关注点放在 UI。
除了 WinForms,ComponentOne 也支持WPF 控件更侧重于样式和现代化。

Universal Windows Platform (UWP)
在 2012 年,微软发布了带有另一个 GUI 框架的 Windows 8:Universal Windows Platform Extensible Application Markup Language(UWP XAML)。该框架可帮助开发人员生成任何类型的应用程序,有时称为 Metro 或 Store App。
微软在最新的图形引擎上构建了 UWP,开发者可以在 C++ 和 .NET 中使用它,但有局限性。一方面,UWP XAML 仅适用于 UWP 应用程序,这与 MFC、WinForms 和 WPF 等框架生成的应用程序不同。
虽然使用 MFC、WinForms 和 WPF 构建的应用程序称为桌面或 Win32 应用程序,但使用 UWP 构建的应用程序称为 UWP 应用程序。他们有不同的 API 集和不同的库生态系统。例如,使用 MFC、WinForms 或 WPF 的 Windows 开发人员如果想要使用 UWP XAML。他们必须构建一个严格的 UWP 应用程序,因为 UWP XAML 仅适用于 UWP 应用程序。结果,这让一些开发人员望而却步。
UWP 框架使用Windows Runtime  (WinRT) API 来提供强大的 UI 功能,并且它与 Windows 更新一起分发,以将您的应用程序提升到一个新的水平。UWP 通过使用虚拟注册表和系统文件来工作,不会与其他应用程序发生冲突。
它还使 Appx 包中的应用程序可以更轻松地删除和无缝更新,以向已安装的应用程序添加新功能。在 UWP 可以访问任何硬件(例如麦克风、网络摄像头或整个文件系统)之前,用户必须授予访问权限,从而使恶意应用程序难以造成损害。
基于我们流行的 WPF 控件,我们为 UWP 平台也开发了类似的控件。

WinUI
现在让我们探索 WinUI 的工作原理。WinUI 和早期 GUI 框架之间的一个关键区别因素是 WinUI 为新功能提供向后兼容性。
与仅与 Windows 10 设备兼容的 UWP 不同,WinUI 向后兼容早期版本的 Windows 10 和 11。例如,使用 WinUI 3,您可以构建和发布具有新功能的应用程序,而无需等待用户运行最新版本Windows更新。
此外,WinUI 是高度优化、经过全面测试的原生 Windows UI 平台,可供开发人员广泛使用。它还可以更轻松地构建应用程序,因为它会自动适应用户的操作系统版本。

结合 WinUI 和 UWP
从根本上说,大多数使用 WinUI 框架构建的应用程序的核心都是 UWP 应用程序。这两个框架共享相同的基本视觉对象、相同的基本 Windows API 和相同的 XAML 模型。
尽管 WinUI 和 UWP 的底层 API 逻辑都是 C++,但使用这些框架的开发人员在构建 Windows 应用程序时可以从多种编程语言中进行选择:C#、C++、F#、Visual Basic .NET (VB.NET) 和 JavaScript。(我们将在后面的部分讨论这个。)
尽管 WinUI 和 UWP 之间有这些相似之处,但它们确实存在差异。例如,UWP 与 Windows 一起分发,这使得用户必须更新到最新的 Windows 版本才能访问修复、改进和新的 UI 控件。
这种更新需求对于无法不断更新到最新版 Windows 的用户来说是一个瓶颈。微软设计了 WinUI 来解决这个问题。它与 Windows 分离,并带有从 UWP 中提取的 API,因此更新更容易。
这两个框架可以结合起来构建很棒的应用程序。开发人员可以使用 WinUI 2.x 来创建 UWP 应用程序。由于 UWP 分布在 Windows 中,因此 WinUI 和 UWP 可以协同工作,将 XAML 岛等功能添加到您现有的桌面应用程序中。

WinUI 功能
WinUI 的众多功能之一是其向后兼容的 Windows Creators Update。WinUI 还包括适用于 Windows 的 React Native。它就像 React 一样,但不同之处在于它使用原生组件而不是 Web 组件作为构建块。
作为 WinUI 的一项新功能,React Native 使您无需学习或使用新代码即可创建新应用或升级现有应用。您可以通过 Windows 应用商店打包和部署这些 JavaScript 应用程序。它的功能包括自动链接本机模块、更好的主题支持和导航菜单。
React Native 支持 Windows 10 SDK 和 macOS 10.13 SDK。开发人员可以使用 JavaScript 为 Windows 10 以及 macOS 台式机和笔记本电脑生态系统支持的设备构建本机 Windows 应用程序。

使用 WinUI 开发的好处
与其他框架相比,使用 WinUI 构建应用程序的一些好处。
  • 保持更新:与其他框架相比,使用 WinUI 的一个好处是它有助于使您的应用程序与最新版本的 Fluent Design、控件和视觉元素保持同步,而无需更新的 Windows SDK。
  • 高度灵活:开发人员推崇 WinUI,因为它可以灵活地适应任何版本的操作系统。同样,它支持本地开发。例如,您可以在 .NET 应用程序中使用它,即使它是 100% C++。
  • 向后兼容性:WinUI 提供与广泛的 Windows 10 版本的向后兼容性。例如,未使用最新版本的 Windows 10 的用户可以在新 XAML 功能发布后立即构建和交付具有新 XAML 功能的应用。
  • 无需版本检查:使用 WinUI 构建的应用程序不需要任何版本检查即可使用 UWP XAML 的关键控件或功能。
  • 可用性:与 UWP 不同,使用 WinUI,开发人员无需更新 Windows 即可使用最新的 UI 控件。

WinUI 的缺点
尽管 WinUI 是对旧框架的改进,但它确实有一些缺点。一方面,与 WPF 应用程序不同,WinUI 无法在没有 Uno 平台的情况下在 Windows 7 上运行或部署。
同样,与 WinForms 相比,WinUI 在快速 UI 开发方面的没有那么友好。例如,许多 Windows 开发人员在为 .NET 库创建简单实用程序或 UI 测试工具时仍然使用 WinForms。

结论
WinUI 是众多 GUI 框架中的最新版本。WinUI 与早期框架的核心区别在于无需更新的 SDK 即可访问流畅的设计和更新的控件。尽管与旧框架相比,它有几个缺点,但许多开发人员已转向 WinUI,因为它具有灵活性、向后兼容性和通用性。
如果您切换到 WinUI,您仍然可以使用 GrapeCity ComponentOne 的 .NET 组件套件(截至 2021 年中期可用于 WinUI)来节省开发时间。快速向 WinUI 应用程序添加紧凑灵活的数据网格、图表、报告、日历、输入、商业智能仪表板和其他 UI 元素,以使用熟悉的控件增强用户体验。

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部