客户端应用开发框架常见问题解答

介绍面向Microsoft开发人员的客户端应用开发 UI 框架选项。

当今的 Windows 应用开发布局提供了各种框架和技术可供选择。 本常见问题解答提供有关如何确定要用于 Windows 应用开发项目的框架的指导。 它涵盖以下主题:

  • Windows 应用开发环境。
  • 使用 WinUI、WPF 和 Windows 窗体 进行仅限 Windows 的本机应用开发。
  • 将 Windows 作为跨平台开发策略的一部分。
  • 使用 .NET MAUI、Blazor 和 ASP.NET Core 进行混合和 Web 应用开发。
  • 如何选择一种方法,同时了解Microsoft的投资。

Windows 应用开发环境

为什么客户端应用开发对于云服务时代的现代数字化转型仍然至关重要?

在云服务时代,客户端应用开发仍然是现代数字化转型的关键组成部分。 对于开发人员来说,构建客户端应用程序不仅对于访问至关重要,而且对于在用户设备上提供响应式有意义的交互至关重要。

下面是客户端应用仍然很重要的原因:

  • Device Reach: 全球有超过 15 亿个 Windows 设备和 50 多亿 Android 和 iOS 设备,客户端应用允许你直接将应用程序带到他们选择的设备上。
  • 智能服务的网关: 客户端应用通常是用户与服务的第一次交互。 它们提供丰富的交互式界面,使你能够展示智能功能并将产品与其他产品区分开来。
  • 云集成的可伸缩性: 集成良好的客户端应用可以毫不费力地与后端云服务同步,从而在用户群增长时实现实时数据访问和无缝可伸缩性。
  • 提高工作效率和用户忠诚: 经过深思熟虑设计的应用可以提高工作效率,并使用户随着时间的推移与产品或服务保持参与。

本机仅限 Windows 的应用开发

我正在构建一个新团队来开发仅限 Windows 的应用。 为何应选择使用本机 Windows 框架(如 WinUI、WPF 或 Windows 窗体)进行开发?

下面是为仅限 Windows 的应用选择本机 Windows 框架的一些原因:

  • 性能: 本机 Windows 框架经过优化,可以利用当今 Windows 硬件的全部功能,并提供快速响应的用户体验。
  • 集成: Windows 附带各种 API,以生成仅在 Windows 上可用的复杂体验。 本机框架提供与这些功能和 API 的深度集成。
  • 本机用户体验: 本机 Windows 框架跨 Windows 设备提供一致的用户体验,确保你的应用在所有 Windows 设备上都能正常运行。
  • 脱机支持: 本机 Windows 框架为脱机方案提供支持,即使用户未连接到 Internet,应用也能正常工作。
  • 盈利: 本机 Windows 框架受到Microsoft的积极维护和支持,确保你有权访问最新的更新和功能。

我应该使用哪个框架来利用Microsoft对 Windows 应用开发的最新投资?

如果要构建一个新的仅限 Windows 的应用,我们建议使用 WinUI。 WinUI 是用于 Windows 应用开发的最新本机 UI 框架,旨在跨各种 Windows 设备工作。 WinUI 提供了一个现代灵活的 UI 框架,使你能够创建视觉吸引力和交互式 Windows 应用。 WinUI 是Windows 应用 SDK的一部分,旨在与最新版本的 Windows 配合使用。

如果我已在 WPF 中投入了大量资金,我应该继续使用 WPF,还是应考虑迁移到 WinUI?

如果已在 WPF 中投入了大量资金,则可以继续对现有应用使用 WPF。 WPF 是一个成熟的稳定框架,开发人员广泛使用它来构建 Windows 桌面应用。

请考虑利用 .NET 升级助手 将 .NET Framework WPF 应用迁移到最新的 .NET 平台。 .NET 升级助手是一种工具,可帮助你将 .NET Framework 应用迁移到最新支持的 .NET 版本。 .NET 升级助手分析现有代码库,并提供有关如何更新代码的指导。

如果我生成新的 WPF 应用,与其他新的 Windows 应用相比,它看起来会过时吗?

使用 .NET 9 或更高版本开发 WPF 应用程序时,可以确保应用与 Windows 11 的时尚现代外观匹配。 WPF 的新 Fluent 主题为 WPF 应用程序引入了当代 Windows 11 美学,并集成了浅色/深色模式和系统主题色支持。 此更新不仅使应用的外观现代化,而且还通过提供完美而凝聚力的用户体验来增强用户参与度。

我的团队可以舒适地构建Windows 窗体应用,它符合我们的需求。 是否应考虑迁移到 WinUI 或其他框架?

如果你的团队熟悉构建Windows 窗体应用并Windows 窗体满足你的需求,则可以继续使用现有应用的Windows 窗体。 Windows 窗体是开发人员广泛使用的成熟稳定框架,可用于构建 Windows 桌面应用。

Windows 窗体团队正在跨功能进行投资,并具有活跃的参与者社区。 一些当前投资领域包括:

  • 具有常见控件的异步支持
  • 深色模式
  • 布局灵活性
  • 桌面安全功能,如剪贴板访问

是否可以利用现有 WPF 或Windows 窗体应用中Windows 应用 SDK中的 API?

是的,你可以利用现有 WPF 或Windows 窗体应用中Windows 应用 SDK中的许多 API。 Windows 应用 SDK旨在与现有的 Windows 桌面框架(如 WPF 和Windows 窗体)配合使用。 可以使用Windows 应用 SDK访问现有应用中的新功能。

有关详细信息,请参阅在现有项目中使用Windows 应用 SDK。

跨平台本机开发

生成面向 Windows 的跨平台本机应用有哪些原因?

如果面向多个 OS 平台的用户,请使用 .NET MAUI 或 React Native 构建跨平台应用可提供以下几个优势:

  • Reach: 构建跨平台应用可让你在不同平台上访问更多用户。
  • 代码重用: 构建跨平台应用允许跨不同平台重复使用代码,从而减少开发时间和成本。 为 Windows、iOS、Android、macOS 等构建单独的应用可能极其昂贵。
  • 一致的用户体验: 构建跨平台应用可让你在不同的平台上提供一致的用户体验,确保你的应用在所有设备上都能正常运行。
  • 集成: 构建跨平台应用可让你与不同的平台和服务集成,从而提供更全面的用户体验。

我能否确信 .NET MAUI 应用在 Windows 上运行良好?

生成适用于 Windows.NET MAUI 应用时,输出是 WinUI 应用。 在开发时,.NET MAUI 在所有平台(包括 Windows)中提供单个 .NET 体验,但在后台,它生成特定于平台的代码。 这可确保 .NET MAUI 应用在每个平台上运行良好,并提供本机用户体验。

.NET MAUI 如何跨每个平台提供本机设备 API?

.NET MAUI 为所有平台(包括 Windows、iOS、Android 和 macOS)提供单个 .NET 体验。 .NET MAUI 将 60 多个特定于平台的 API 抽象化为可在 .NET MAUI 应用中使用的单个跨平台 API。 这些 API 涵盖对存储、网络、特定于设备的传感器等的访问。 如果需要,还可以使用依赖项注入访问其他特定于平台的 API,以提取每个平台的代码。

我们的团队具有强大的 Web 前端开发技能。 是否应考虑使用 React Native for Desktop?

如果团队具有强大的 Web 开发技能,可能需要考虑使用 React Native for Desktop。 React Native for Desktop 包含 React Native for WindowsmacOS 框架。 React Native 的座右铭是“学习一次,随时随地编写”,这意味着你可以使用现有的 Web 开发技能来使用 React Native 生成本机 Windows 应用。 React Native for Desktop 是一个开源项目,可用于使用 React Native 生成本机 Windows 和 macOS 应用。 React Native for Desktop 提供了一组 API,可用于访问 React Native 应用中特定于桌面 OS 的特性和功能。

你的团队可以利用其 JavaScript、TypeScript 和 React 技能来构建直接呈现到本机基元的 UI 层。 这提供本机应用性能和对本机平台功能的访问权限。

在 React Native for Desktop 文档中阅读有关适用于 Windows 的 React Native 开发入门的详细信息。

React Native for Desktop 是否支持任何其他 Windows 设备?

React Native 应用可以部署到 Windows 10 及更高版本支持的所有设备,包括电脑、平板电脑、2 in-1、Xbox 和 Mixed reality 设备。

混合和 Web 开发

什么是混合应用,为什么应考虑生成混合应用?

混合应用混合了 Web 和本机应用开发的最佳方案。 应用的核心是使用 HTML、CSS 和 JavaScript 等 Web 技术构建的,然后包装在本机容器中,使应用能够利用某些本机平台功能和硬件。 还可以通过应用商店分发它们。

混合应用的主要优点是,它们允许你构建可在多个本机平台和 Web 上运行的单个应用,从而减少开发时间和成本。 混合应用开发平台的一些示例回答:

  • 桌面应用的电子
  • 移动应用的 Ionic
  • 跨平台应用的 .NET MAUI Blazor 混合

什么是 .NET MAUI Blazor 混合应用?

使用 .NET MAUI,Blazor 应用也可以在 Windows、iOS、Android 和 macOS 上本机运行。 这意味着可以创建混合客户端应用,将 Blazor 和 .NET MAUI 组件组合到单个本机客户端应用中。 这提供对任何其他 .NET MAUI 应用可用的相同本机平台功能的完全访问权限。

若要详细了解 Blazor 如何在 .NET MAUI 应用中托管,请参阅 ASP.NET Core Blazor 混合

是否需要使用 Blazor 创建 .NET MAUI 混合应用的 Web 组件?

否,不需要使用 Blazor 创建 .NET MAUI 混合应用的 Web 组件。 从 .NET 9 开始,.NET MAUI 提供了一个 HybridWebView 控件,可用于在本机应用中托管其他 JavaScript UI。

这意味着你可以采用 Angular、React、Vue 或其他 HTML 和 JavaScript Web 应用,并将其托管在 .NET MAUI 应用中。 混合控件在 C# 和 JavaScript 层之间提供互操作,以便可以从 C# 调用 JavaScript 函数,反之亦然。

任何其他本机应用类型是否可以托管 Blazor 混合组件?

是的,WPF 和Windows 窗体应用还可以托管 Blazor 混合组件。 这样,就可以将新式 Web UI 组件添加到现有 WPF 和Windows 窗体应用。 请注意,在 .NET Framework 上构建的 WPF 或Windows 窗体应用无法执行此操作。

我的整个应用是否需要混合应用,或者是否可以混合和匹配本机组件和混合组件?

可以在应用中混合和匹配本机组件和混合组件。 例如,可以使用 .NET MAUI 组件生成应用的核心,然后添加混合组件以提供其他功能。 这样,便可以充分利用这两个世界:本机组件的性能和功能以及混合组件的灵活性和成本节省。

我的构建选择是什么。基于 NET 的 Web 应用在 Windows 上的新式浏览器上看起来很棒?

Web 应用拥有最广泛的客户端应用平台。 如果要在 Windows 上创建漂亮的 .NET Web 应用,可以选择以下几个选项:

  • 使用 Razor Pages ASP.NET Core 应用
  • ASP.NET Core MVC 应用
  • ASP.NET Core Blazor 应用,包含托管模型选项,包括:
    • Blazor WebAssembly 应用
    • Blazor 服务器应用

请注意,现在可以在组件级别配置 Blazor 的托管模型。 因此,可以在 Blazor Server 应用中托管 Blazor WebAssembly 组件。

在 ASP.NET Core 文档中详细了解 ASP.NET Core 开发选项

选择一种方法并了解Microsoft的投资

生成面向 Windows 的应用有很多框架选项! 如何实现决定吗?

Windows 是一个支持许多技术的开放平台。 下面是一些条件,可帮助你确定要使用的平台:

  • 你是构建 Windows 优先还是跨平台?
  • 你是否具有 .NET 的经验? JavaScript? 其他语言?
  • 是否需要访问特定于 Windows 的 API?
  • 哪种框架的功能最符合应用的要求?
  • 有关其他决策因素,请参阅 此表

在业务应用方面,大多数团队都希望根据现有技能以及团队使用的内容进行选择。

如何实现为 Web 应用选择最佳开发方法?

为 Web 应用选择开发方法时需要考虑的一些事项包括:

  • 建议使用 Blazor 使用 .NET 生成前端 Web 应用。 通过使用 Blazor,现在可以使用 .NET 生成整个前端和后端,从而节省时间和金钱。 它特别适用于当今设备上的企业业务线应用。
  • 如果要利用团队在 JavaScript 中的现有技能或投资,或者需要与现有 JavaScript 库或框架集成,JavaScript Web 应用仍有意义。
  • 使用较旧框架的现有应用(如 Web 窗体、MVC 或 Razor Pages)仍受支持,并且可以使用这些框架继续开发和维护。

谁正在使用 WinUI 生成应用?

许多客户今天都在使用 WinUI 进行构建,包括 Adobe 和 Apple:

Microsoft还使用 WinUI 创建了多个应用,包括 Windows 11 文件资源管理器和照片应用。

谁正在生成 .NET MAUI 应用?

许多客户今天使用 .NET MAUI 构建其跨平台应用,包括Microsoft。 例如, Microsoft Azure 移动应用 是使用 .NET MAUI 生成的。

了解在 .NET 客户展示网站上使用 .NET MAUI 生成应用的其他人员。

谁正在生成 WPF 应用?

大多数Microsoft Visual Studio 的用户界面都是使用 WPF 生成的。 Visual Studio IDE 是复杂高性能 WPF 应用的一个很好的示例。

谁正在构建 Blazor 应用?

GE Digital 的 FlightPulse 航空公司系统将传感器数据和分析置于飞行员手中,以提高安全性和效率。 试点看到的一切的后端配置都是使用 Blazor 完成的。

可以在 .NET 网站上阅读更多 Blazor 客户案例

若要了解有关 Windows 开发选项的详细信息,请参阅 框架选项概述。