优化画布应用

已完成

两种主要开发方式分别为命令性和声明性。 命令性开发专注于如何实现目标,声明性开发则专注于获取结果。 命令性开发更加灵活,因为您可以控制过程中的每个步骤,但需要更多代码和,复杂度更高。 声明性开发更加简单直接,但可能缺乏全面控制的能力。

画布应用声明“内容”并优化“方式”。您可能无法准确表达“内容”,因而 Power Apps 通过支持使用命令性开发来提供帮助。 开发者经常在声明性开发更加简单并且执行效果更好时误用命令性开发。

可以提升画布应用外观的吸引力,尽管应用外观具有吸引力非常重要,但性能良好的应用更容易被用户采用。

有关命令性和声明性开发的详细信息,请参阅对 Power Apps 画布应用使用命令性开发技术

以下部分讨论优化画布应用性能的技术。

卸载应用承担的工作

随着应用中的公式变得愈发庞大和复杂,应考虑能否在其他位置完成工作。 可将工作卸载到 Dataverse 中的 Microsoft Power Automate 云端流、业务规则、插件和其他服务器端逻辑。

注意

常用方法是将逻辑卸载到使用 Power Apps 触发器的 Power Automate 云端流。 可通过将数据传递到流的 Power Apps 表达式调用流并从流中接收结果。

您还可以创建自定义连接器连接 Microsoft Azure Functions 或其他自定义逻辑。 如果您发现在应用中使用命令性开发,请考虑将本逻辑卸载到更合适的功能。

性能

应用性能方面的常见问题包括:

  • 数据访问 - 最初应用将大数据集传入数据集合,然后通过联接、排序、添加列和分组等大量客户端操作在多个屏幕中使用数据。
  • OnStart 中的公式 - 应用在屏幕中触发许多不必要的数据调用,这些数据调用返回大量数据记录。
  • 在数据源中反复检索数据 - 使用Set函数在本地缓存查找表中的数据。

您应借助 OnStart 鼓励开发者使用ClearCollect函数在本地缓存数据并使用Concurrent函数缩短加载缓存数据的时间。 第一个图片展示在未使用Concurrent函数的情况下加载四个数据集,第二个图片展示使用Concurrent函数时的过程。

展示按顺序加载数据集的图表。

展示并发加载数据集的图表。

面对诸多选项,需要经常考虑性能问题。 分析和改进优化是一项长期工作。 您应参考性能缓慢的原因常见性能问题性能提示验证最佳做法。

解决方案架构师应实施画布应用性能调整策略。

展示调整流程策略的图表。

调整策略应:

  • 避免超出能力范围的工作。
  • 推迟需要可能性较低的工作。
  • 尽量并行开展工作。
  • 监视应用的运行情况,工作可能并不总显而易见。

应对负责长期工作的用户使用进度指示器。

Test Studio、Azure Monitor 和 Application Insights

应正确测试画布应用。 Microsoft 提供 Test Studio 对可包含在自动生成流程中的画布应用进行递归测试。

Test Studio 包括以下功能:

  • 套件 - 测试套件用于组织或组合测试用例。
  • 测试 - 测试用例由一系列测试步骤组成。 运行测试用例验证应用或应用中的特定功能是否按预期工作。
  • 测试步骤 - 说明或操作。 测试步骤使用 Power Apps 表达式语言编写。
  • 测试断言 - 预期测试结果。

展示 Test Studio 套件组件的图表。

Microsoft Azure Monitor 工具支持开发者查看用户会话中的事件流来诊断和解决问题。 画布应用开发者可 Power Apps Studio 中构建新应用时使用 Monitor 查看事件,也可在运行时使用本工具监视已发布的应用。 模型驱动应用开发者可以监视页面导航、命令实施、问题相关窗体和其他主要操作,从而了解应用行为并进行改进。

事件 Monitor 工具屏幕截图。

您可以连接画布应用与 Azure Monitor 的一项功能 Application Insights。 Application Insights 包括强大的分析工具,可帮助您诊断问题并了解用户在应用中的实际操作。

应用连接 Application Insights 后,您可以收集有关用户对应用实际使用情况的遥测数据,帮助您提高应用的质量。 您可以通过设置本功能获得的遥测数据包括:

  • 正在使用应用的活动用户数。
  • 应用的使用位置。
  • 最常使用的屏幕。
  • 用户从一个屏幕进入另一个屏幕。

用于见解的 Monitor 屏幕截图。

解决方案架构师应确定是否在创建的应用中包括 Application Insights。

有关详细信息,请参阅 Application Insights