Microsoft Dynamics 365 的编程模型

 

发布日期: 2017年1月

适用于: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online

Microsoft Dynamics 365 提供了若干个编程模型,旨在使您灵活地确定最符合您的需要的工作。

下图演示了用于 Microsoft Dynamics 365(在线或本地) 的重要可编程性方案。 使用与您创建的解决方案类型对应的 Microsoft Dynamics 365 编程模型。

CRM 2016 可编程性方案

在本主题中

连接到 Microsoft Dynamics 365

在服务器上扩展

在应用程序中扩展

连接到 Microsoft Dynamics 365

编写客户端以访问 Microsoft Dynamics 365 中的数据时:可以使用 Web API 或组织服务。

Web API

该 Web API 随 Microsoft Dynamics 365 引入,它提供可跨各种编程语言、平台和设备使用的开发体验。 Web API 实施 OData(开放数据协议)v4。 OData 是关于通过丰富的数据源构建和使用 RESTfulAPIs 的 OASIS 标准。

在使用 Web API 时,可以在支持 OData v4 标准且支持社区的库列表中选择。 也可以选择直接使用 HTTP 编写代码。详细信息:使用 Microsoft Dynamics 365 Web API

在通过 面向 Internet 的部署 (IFD) 连接到 Microsoft Dynamics 365 (online) 或内部部署环境时,可以使用 Azure AD 身份验证库 (ADAL) 从各种编程语言和平台启用身份验证。详细信息:使用 Web API 对 Microsoft Dynamics 365 进行身份验证

备注

组织数据服务(也称 OData 端点(是或服务) 是 Microsoft Dynamics 365 中已被 Web API 取代而弃用的 OData v2 服务。 上面的关系图中不包含此组织数据服务。 仍然提供此组织服务,以便为使用该服务的代码提供支持。 但是,对于 Microsoft Dynamics 365 的任何新开发,建议使用 Web API。详细信息:将 OData 终结点用于 Web 资源

组织服务

如果您是 .NET 开发人员,则可以使用 Web API 或此组织服务。 通过组织服务,可以使用一系列程序集和工具生成强类型类,其中包含已添加到 Microsoft Dynamics 365 的实例的自定义实体和属性。

通过用于生成代码的 SDK 程序集和工具,也可以加入 OrganizationServiceContext,它基于与 Windows Communication Foundation (WCF) 数据服务中的 DataServiceContext 相同的概念。 此类允许您跟踪更改,管理标识和关系,并为您提供对 Microsoft Dynamics 365.NET 语言集成查询 (LINQ) 提供程序的访问权限,以便您使用 LINQ 构建查询。 使用用于生成代码的工具时,可以为运行该代码生成工具时定义的实体和属性生成强类型类。 这些类称为早期绑定类。详细信息:在代码中使用早期绑定实体类

如果代码需要处理的是运行该代码生成工具时尚未知的实体和属性,可以使用 Entity 类,该类允许在代码中指定实体和实体属性。 代码的这种晚期绑定编写风格灵活性更高,但是不允许对所有类型进行编译时检查,所以不会发生隐式转换。 仅当创建对象或对类型执行操作时,晚期绑定才检查类型。Entity 类需要明确指定类型以防止隐式转换。详细信息:在代码中使用晚期绑定实体类

如果创建 Windows 客户端或在使用 Windows PowerShell,Xrm.Tooling 提供一组使用 SDK 程序集的 API,专门为 Windows 客户端的开发提供更多的功能和资源。详细信息:使用 XRM 工具,构建 Windows 客户端应用程序

在服务器上扩展

可以编写代码来侦听事件和应用自定义业务逻辑,以便修改或增加平台的标准行为。 此代码只能使用 .NET 托管代码编写,而开发人员的经验则基于 SDK 程序集中定义的相同对象。 可以使用组织服务和 Microsoft Dynamics 365 数据执行操作。详细信息:编写插件以扩展业务流程

您还可以基于 Windows Workflow Foundation 编程模型创建自定义过程。 您可以创建多种不同类型的过程。 大多数情况下您将会使用工作流设计器。 但是如果某项功能在该设计器中不能实现,您还可以使用代码定义过程。详细信息:使用Dynamics 365 流程自动化业务流程

在应用程序中扩展

Microsoft Dynamics 365 提供的每个客户端应用程序都具备定义自定义和部署到多种类型的客户端。 Web 应用程序 Microsoft Dynamics 365 for Outlook、适用于平板电脑的 Dynamics 365 和 适用于手机的 Dynamics 365 都具备包含导航和命令选项以及您可以与 JavaScript 配合使用的Xrm.Page 对象模型Xrm.Utility和函数的功能,用于在客户端中提供及时的体验。 可以在客户端中使用或显示的 JavaScript 库、HTML 页面、图像和其他类型的文件以 URL 可寻址 Web 资源形式提供。 “详细信息:通过 Microsoft Dynamics 365 使用 JavaScript”和“Microsoft Dynamics 365 的 Web 资源”。

当您需要访问运行您的 JavaScript 代码的上下文中不可用的 Microsoft Dynamics 365 数据时,您可以调用服务器以获取您需要的数据。 可以使用组织服务,但是使用 Web API 和 JSON 而不使用组织服务需要的 XML 容易的多。 由于您的脚本在应用程序上下文中运行,所以将自动对您进行身份验证。详细信息:Microsoft Dynamics 365 Web API(客户端 JavaScript)入门

另请参阅

如何做?
了解 Microsoft Dynamics 365 开发的教程和资源
使用 Microsoft Dynamics 365 进行开发的最佳实践
开发人员工具包

Microsoft Dynamics 365

© 2017 Microsoft。 保留所有权利。 版权