Dataverse 和 Common Data Model 概述

已完成

Dataverse 可帮助您安全地存储和管理商业应用程序使用的数据。 Dataverse 将商业应用程序数据存储在一系列表(以前称为实体)中。 表是一组行(以前称为记录)和列(以前称为字段/属性)。 表中的每一列都设计用于存储某种类型的数据,例如姓名、年龄、薪金等。Dataverse 包含一组涵盖典型场景的基本标准表,但您也可以创建特定于组织的自定义表,然后通过 Power Query 使用数据进行填充。 然后,应用制作者可以使用 Power Apps,生成使用本数据的最终用户应用程序。

显示 Business Application Platform 概述的屏幕截图。

Dataverse 的优势

Dataverse 基于多个 Azure 数据存储功能(包括 Azure SQL、Cosmos DB 和 Azure 存储)生成。 Dataverse 抽象化基础技术以提供一组统一的功能,通过这些功能可以在各种应用程序中为组织的数据和业务流程创建专注于业务的定义。 因为数据和元数据都存储在云中,所以可以轻松地对应用程序进行管理。 此外,通过内置安全模型,您可以根据用户在组织中的角色来控制对表和功能的访问权限。

Microsoft 已在 Dataverse 上构建了多款第一方应用,包括 Dynamics 365 for Sales、Service、Field Service 和 Customer Insights - Journeys。 通过基于相同的 Dataverse 平台构建自己的应用,您可以在 Dataverse 中扩展其他应用或与其数据交互。

使用任何类型的数据

Dataverse 旨在用于使用最常见的数据类型,并纳入了组织需要的所有主要数据技术类别,例如关系、非关系、文件、图像、搜索和数据湖。 通常,这要求开发人员使用来自不同数据引擎的多个 API。 Dataverse 针对所有数据提供统一的 API,以确保一致地执行用于扩展默认行为的任何自定义业务逻辑。

Dataverse 包括一组可视化设计器,可用于创建、编辑数据和数据模型以及与它们进行交互。 设计器可以让您轻松快捷地定义表示业务的表、关系、业务规则、窗体、视图和工作流。 开发人员也可以使用 API 以编程方式与平台元数据交互,例如创建表和列。

Dataverse 还支持虚拟表。 虚拟表映射外部数据源中的数据,以便这些数据好像存在于 Dataverse 中一样。 在虚拟表的帮助下,Dataverse 还可针对外部数据源执行实时数据操作。 开发人员可以使用代码创建数据提供程序,方便您连接到外部数据源。 详细信息:创建和编辑包含外部数据源中的数据的虚拟表

使用任何类型的应用

当组织想要创建新应用时,可以通过将 Dataverse 与 Power Apps 配合使用来提高其工作效率。 Power Apps 理解 Dataverse 中包含的丰富元数据,并以多种方式使用这些数据,来帮助您快速构建安全且可扩展的美观应用,而且可跨桌面、Web、移动设备和 Microsoft Teams 使用这些应用。

对于想要将 Dataverse 数据集成到现有应用或者使用自定义代码编写新应用的开发人员,Dataverse 提供基于 REST 的 API 以简化集成工作。 本 REST API 提供完整的 Dataverse 功能,因此可为构建完全自定义的体验提供不受限制的可扩展性模型。

内置安全模型

作为生成应用程序的开发人员,您过去必须为应用程序设计和创建自己的安全模型。 Dataverse 包括一组预构建的构造,可使用这些构造配置应用程序安全模型。 Dataverse 使用基于角色的安全性将一组特权组合到一起,这些权限涵盖具有行级粒度的数据访问权限和可能跨越多个表的业务功能。 这些安全角色可以直接与用户关联,也可以与 Dataverse 团队和业务部门关联。

由于对访问权限的行级控制在某些业务情况下可能并不足够,因此 Dataverse 提供列级安全功能,以便在列级别进行更精细的安全控制。

Dataverse 还包括可用于层次结构的两个安全构造:管理人员层次结构和职位层次结构。 在管理人员层次结构中,管理人员与下属必须位于同一业务部门中,或位于下属业务部门的上级业务部门中,才能访问下属的数据。 职位层次结构允许跨业务部门进行数据访问。 这些层次结构可帮助构建更复杂的安全模型。

开发人员还可以使用 API 来自动执行安全任务。

何时编写代码

作为一名 Power Platform 开发人员,您需要了解可通过配置与可通过代码实现的内容之间存在的差距。 有时,现有功能可能无法提供满足某项要求所需的功能,而 Dataverse 提供各种扩展点,以供开发人员使用代码扩展常见功能。

要标识尚不存在功能的差距,所有 Power Platform 开发人员都必须熟悉 Dataverse 的功能。 如果您不熟悉如何通过使用 Dataverse 的 Power Apps 来构建应用,我们建议您完成在 Power Apps 中创建模型驱动应用学习路径,以及完成 Power Apps 制作者文档中的从头开始使用 Microsoft Dataverse 创建画布应用演练。

可扩展性的类型

通常,任何基于代码的自定义活动都称为“扩展”应用程序。 因此,如果您注意到可扩展性等术语,则通常表示 Power Apps 开发方面的代码。 在可扩展性模型中,活动划分为两个更广泛的组:扩展用户体验和扩展平台或 Dataverse 自身。

扩展 Power Apps 的用户体验

要提升 Power Apps 应用的用户体验,可以使用 Power Apps Component Framework (PCF) 来创建可跨所有 Power Apps 类型使用的代码组件。 模型驱动的 Power Apps 还公开了 JavaScript 客户端 API,通过该 API,您可以与应用程序页面交互,以在应用程序窗体上实施业务逻辑。

虽然画布应用未提供脚本功能,但它们的逻辑是使用 Microsoft Power Fx 构建的。 Power Fx 是将在整个 Microsoft Power Platform 中使用的低代码语言。 这是一种通用、强类型、声明性和功能性的编程语言。 熟练的平台开发人员能够轻松地使用该语言,必要时在源文件中编辑该语言,以及能够使用诸如 Monitor 的工具调试应用。 有关详细信息,请参阅具有 Monitor 的 Power Apps 概述

TypeScript 是许多脚本方案中推荐使用的语言。 由于 TypeScript 可转译为 JavaScript,因此这两种语言泛化为术语“客户端脚本”。使用客户端脚本,您可以采用与配置 HTML 窗体元素相同的方式配置窗体事件处理程序。 还可以从命令栏(功能区)中调用脚本功能,并且可以在 HTML Web 资源中使用客户端脚本 Web 资源。

HTML Web 资源是 PCF 代码组件的前置资源,当存在使用现成的标准窗体无法实现的更高级要求时,这些资源也可用于在模型驱动应用的窗体中显示自定义演示逻辑。 当使用在 PCF 代码组件可用之前生成的应用时,可能会遇到这些问题。

扩展 Dataverse

当需要某种程度的自动化或者现有功能不支持的行为时,需要将 Dataverse 扩展为一个平台。 这些类型的可扩展性点通过称为插件的构造作为服务器端代码运行。 Power Automate 和其他选项支持异步自动化和逻辑,但它们无法完成插件所能完成的所有同步行为。 当应用程序中存在同步操作的要求时,仍需要插件。 通过插件进行同步处理时,可以将任何 Dataverse 修改视为交易中的单个工作单元。

开发人员还可以使用自定义 API 功能在 Dataverse 中创建自己的 API。 您可以将一个或多个操作合并到可从代码、Power Apps 画布应用或从 Power Automate 调用的自定义 API 中。

插件开发是一项重要技能,也是由 Power Platform 开发人员执行的一个常见任务。

Dataverse 解决方案

对于开发和扩展 Dataverse,一个基本概念是解决方案构造。 Dataverse 解决方案是用于应用和其他组件(例如站点地图、表、流程、Web 资源、选项、流等)的容器。 解决方案用于将一个环境中的应用和组件传输到另一个环境,或者将一组自定义项应用于现有应用。 解决方案也是如何在您的环境中安装来自 Microsoft 的第一方应用以及来自独立软件供应商的应用。

解决方案是在 Power Platform 中实现应用程序生命周期管理 (ALM) 的机制。 有关解决方案概念的详细信息,请参阅 Dataverse 文档中的 Power Apps 解决方案。 Power Platform Build Tools 可与 Azure DevOps 或 GitHub 结合使用,以自动执行 Power Platform ALM 操作。 有关如何将解决方案用于应用程序生命周期管理的详细信息,请参阅 Microsoft Power Platform ALM 指南中的 Microsoft Power Platform 的 ALM 概述

Common Data Model 概述

Microsoft 发布了 Common Data Model,它由表示常见业务概念的可扩展架构集合组成。 通过在所有商业应用程序(例如联系人、潜在客户、客户或产品)中使用通用架构,数据互操作性得到极大简化。

以下信息图有效地表示了所提供的基础 Common Data Model 架构的当前状态。 Common Data Model 是一个不断发展的生态系统,随着时间的推移,将会出现许多其他架构。

Common Data Model 架构图表。

使用 Common Data Model

Common Data Model 涵盖一系列业务领域,会受到 Dynamics 365 中存在的数据架构的影响。 如果您是使用 Dynamics 365 的客户或合作伙伴,应该已经在使用 Common Data Model 了。 Dataverse 实现 Common Data Model 标准实体,例如客户和联系人。 Common Data Model 中的一些标准实体已经内置到每个 Dataverse 数据库。 其他标准实体则作为解决方案的一部分进行安装,包括第一方应用程序(例如 Dynamics 365 Field Service)或行业解决方案加速器(例如 Dynamics 365 Automotive Accelerator)。

Common Data Model 在 GitHub 中进行维护。 架构以 JSON 文件形式进行维护。 可以在 applicationCommon 概述中找到整个实体引用。 Microsoft 还提供可视化实体导航器,允许用户直观地导航 Common Data Model 实体。

当针对 Common Data Model 进行生成时,您需要了解在构建自定义应用程序的架构时所采用的分层方法。 Common Data Model 应用程序的基础是一个核心架构,其中包含常用的实体(例如客户和联系人)。 在此处,您可以对功能或特定于行业的模型进行分层,以进一步加速开发自己的自定义应用程序,然后您可以生成自己的模型。