SQL Server 是一种广泛使用的存储企业数据的解决方案。 本文提供了最佳做法,可帮助你使用 SQL Server 生成和发布企业级画布应用。
小费
本文提供了一个示例方案和如何将 SQL Server 与画布应用配合使用的可视化表示形式。 该解决方案是一个通用的示例架构,可用于许多不同的场景和行业。 SQL Server 并 Power Apps 支持许多旧式身份验证方法。 本文仅限于最佳做法。
体系结构示意图
Workflow
虽然许多以前的 SQL Server 实现 Power Apps 都使用网关,但此示例体系结构重点介绍了 SQL Server 的虚拟专用网络(VNET)体系结构。 SQL Server 实例可以是 Azure SQL 或通过 Azure Arc 向云公开的本地 SQL 数据库。在这两种情况下,通信都是私密且安全的。
- Contoso VNET 是在租户中创建的虚拟专用网络。
- Azure 资源/Contoso 资源 是从租户中在虚拟网络中提供的资源。 这些资源包括通过 Azure Arc 提供的 Azure SQL 数据库或本地 SQL Server 数据库等服务。
- 委派子网 位于虚拟网络中,并提供一个容器 Power Platform ,用于让 SQL 连接器或 Dataverse 插件等服务与资源配合使用。
组件
本部分介绍支持在此体系结构中将 SQL Server 与画布应用集成的组件。
画布应用和 SQL 表
SQL Server 表和视图 Power Apps 显示为表格数据源。 可以使用表达式将 Items 表格数据源绑定到表或库 Power Fx 属性。 对于表格数据源, Power Fx 表达式被转换为 OData 表达式,然后将其转换为 SQL 表达式。 但是, Power Fx OData 并不完全表示 SQL 表达式的所有功能。
小费
用于 Power Fx 基本、简单的查询,并将存储过程用于更复杂的 SQL 表达式。
画布应用和 SQL 存储过程
SQL Server 存储过程显示 Power Apps 为作数据源。 通常,作数据源由于其潜在的副作用而无法绑定到表或库。 但是,您可以将 a select stored procedure 标记为 Safe for Tables and Galleries 并将其与表格或图库一起使用。 此方法检索存储过程返回的所有数据,但要小心,因为检索过多的数据可能会占用客户端的内存。 若要控制检索到的数据量,请使用这些类型的存储过程中通常存在的参数分页参数。
此外,将结果设置为变量 Power Fx ,并在属性中 Items 使用此变量来填充表或库。 请记住在创建、更新和删除(CUD)作中刷新 Power Fx 变量。 更复杂的存储过程(例如使用临时表的存储过程)可能会返回 a dynamic schema。 可以通过将预期结果设置为 a Power Fx User defined type 来使用这些存储过程的结果。
SQL Server 连接器
Power Apps 应用程序使用 SQL Server 连接器访问 SQL Server 中的数据。 虽然有许多可用的 SQL 身份验证类型, Microsoft Entra 但 ID 和可共享 SPN(服务主体名称)是两个更好的选择。
如果要使用 Microsoft Entra ID,请先配置 SQL Server 数据库以通过 ID 提供 Microsoft Entra 安全性。 可共享 SPN 是一种启用管理员的访问方法,应谨慎授予,因为所有用户都具有相同的数据库访问权限。 它通过安全的隐式连接进行保护,这些连接限制了对应用程序中使用的表和作(即 Get、Post、Put 和 Delete)的访问。
VNET(虚拟专用网络)
有几种方法可以将调用路由到 SQL Server。 虚拟网络 是一种 Azure 云解决方案,可将所有终结点设为专用。 若要实现,请在租户中预配虚拟网络,设置企业策略,并配置 Power Platform 环境以支持它。 此设置可确保不会通过网络公开公开 SQL 流量。
ALM(应用程序生命周期管理)
Power Platform 支持应用程序在开发、测试和生产环境之间通过 SQL 平滑过渡 Power Apps 。 连接引用支持在环境之间更改连接字符串,这对于基本 SQL 身份验证非常重要。环境变量通过在环境之间更改服务器和数据库来支持 Microsoft Entra ID 方案。
用例
Power Apps 为组织提供了一种灵活、直观的方式来构建自定义用户体验。
- 如果您正在构建新的应用程序和存储空间,请考虑使用 Dataverse。 其功能旨在使构建企业级应用程序变得更加容易。
- 如果 SQL Server 中有无法移动的数据,或者组织需要 SQL Server,请考虑使用 Power Apps SQL Server。
- 如果无法移动数据,请通过 SQL Server 使用 Power Apps 。 现有应用仍然依赖于这些数据,因此需要将这些应用迁移到云中以实现现代化。
注意事项
这些注意事项实现了架构良好的 Power Platform 支柱,这是一组可提高工作负荷质量的指导原则。 在架构良好的 Microsoft Power Platform 中了解详细信息。
可靠性
设计工作负载以避免不必要的复杂性: Power Apps 适用于可以委托给服务器的简单查询。 将复杂任务委托给视图和存储过程。 然后,直接将这些存储过程用于同步作。 用于 Power Automate 任何异步作,包括对长时间运行的存储过程的调用。
安全性
使用安全隐式连接:对所有共享连接使用安全隐式连接。 根据需要将任何较旧的应用程序转换为使用安全的隐式连接。 使用安全隐式连接时,连接器将保留在云服务中 Power Apps ,并且不驻留在客户端上。 应用仅连接到代理连接器,该连接器也位于云服务中 Power Apps 。 应用和代理连接器相互了解;但是,应用不知道连接器。 代理连接器具有将查询类型限制为应用中的查询的策略。
创建有意的分段和边界:为应用程序生命周期阶段使用单独 Power Platform 的环境,并确保只有正确的用户才能访问每个阶段以支持分段策略。
卓越运营
采用安全部署做法:使用自动化部署过程(如管道)标准化对应用程序的任何 Power Apps 更改的部署。 仅在测试这些更改后,才将应用程序提升到生产环境。
性能效率
设计以满足性能要求:评估解决方案性能和数据量要求,以确保 SQL Server 表、视图和存储过程设计合适。 在评估中,包括如何访问数据以及如何 Power Apps 将作委托给 SQL Server。 由于 SQL Server 提供的委派支持,在搜索和筛选数据 时请注意限制 。 查看了解委派 中记录的画布应用限制,尤其是在为应用选择正确的数据源或后端时。
优化逻辑:画布应用程序用于 Power Fx 执行工作。 每个 Power Fx 作都是独立的,不作为原子事务进行处理。 例如,如果应用程序创建了销售订单详细信息行,但未创建销售订单标题记录,则销售订单详细信息行将保留。 不要留下这些必需的程序步骤 Power Fx。 将 SQL Server 存储过程与事务支持配合使用。
体验优化
提高效率的设计:允许用户从单个 Power Apps 应用程序访问其他数据源以及 SQL Server 表的应用程序,而无需与多个单独的应用程序交互,从而提高效率并提供更好的自定义视觉体验。 避免生成应用程序来生成应用程序 - 与使用模型驱动 Power Apps 体验相比,应用程序应为用户提供一定的效率或其他体系结构优势。
相关资源
Power Apps:
连接:
应用程序生命周期管理(ALM):