Dynamics 365 CRM 开发架构简介

Dynamics 365 CRM提供了多种编程模型,你能够灵活地按需选用最佳模式。javascript

本文是对Dynamics 365 CRM编程模型的综述。html

概览

下图代表了Dynamics 365 CRM的主要可编程场景。请根据总体解决方案选择合适的模型。java

从扩展的角度来看,你能够在Dynamics 365中实现如下附加功能:web

  1. 应用于PC或移动设备的控制台应用程序或者WPF(Windows Presentation Foundation),即图中上方.Net下的绿框。
  2. 处理Dynamics的Web表单的扩展,即图中右侧web application部分。
  3. 处理Dynamics服务端的扩展,即图中左侧.NET plug-ins和workflows下方的绿色方框。

其中1和2属于客户端扩展,3属于服务端扩展。数据库

名词解释

上图中部分名词的基本概念。编程

Web resources:存储在Dynamics 365 CRM数据库中的虚拟文件,好比图片,网页,XML等,能够经过URL访问。windows

Forms scripts:Dynamics 365 CRM中的一种常见的Javascript应用方式,使用场景包括经过自定义代码对表单输入内容校验、或进行其它自动化处理等。(参考:Form Scriptsapi

Ribbon commands:Ribbon的的定义见微软文档服务器

Workflow:经过Workflow能够建立和管理自动化的业务过程,它也提供了定制和扩展标准流程的机制。架构

Plug-ins:一种事件处理程序,经过它能够修改或扩充标准的业务流程。

Organization service:客户端链接服务端的一种方式,适用于.Net客户端。

Web API:客户端链接服务端的一种方式,拥有良好的平台兼容性,适用于各类客户端。

Service Contracts:Dynamics中的一种单据类型,和本文主题无关。

 

本文连接:http://www.javashuo.com/article/p-coxwavtk-bz.html

转载请注明

 

链接到Dynamics 365 CRM

客户端要访问Dynamics 365 CRM中的数据,有2种方案能够选择:使用Web API或者organization service。

Web API

Web API在2016年11月的系统更新中被引入,它提供了跨编程语言、跨平台和跨设备的开发体验。Web API实现了OData (Open Data Protocol) v4。OData是一个用于构建和消费RESTfulAPIs的OASIS标准。

使用Web API时,能够选择由社区支持的支持OData V4标准的库。你也能够选择写代码直接使用HTTP。

相关内容:使用Dynamics 365 CRM Web API

 

链接Dynamics 365 CRM时,可使用Azure AD Authentication Libraries (ADAL)以启用支持多语言/多平台的认证。

相关内容:经过Web API进行身份认证

Organization service

若是你是位.Net开发者,那么你既可使用Web API,也可使用organization service。经过organization service可使用组件和工具生成强类型类,包含已经被添加到Dynamics 365 CRM实例中的自定义实体和属性。

 

经过SDK组件和工具, 你可使用OrganizationServiceContext,经过这个类能够跟踪变动、管理身份和关系。它也提供了访问Dynamics 365 CRM中的LINQ的入口。当你使用代码生成工具的时候,会获得当前已定义的实体和属性的强类型类,它们被称为早绑定类(early-bound classes)。

更多信息:在代码中使用早绑定实体类

 

当代码须要处理生成代码时尚不知道的实体和属性时,你能够在代码中使用容许指定实体和属性的实体类。这种晚绑定(late-bound)的代码风格提供了更大的灵活性,可是不容许完整的编译期类型检查,所以不会出现隐式转换。在晚绑定下,只有在对象建立或者对类型执行操做的时候才会检查类型。须要显式指定实体类的类型,以免隐式转换。

相关内容:在代码中使用晚绑定

 

若是要建立Windows客户端或者使用Windows PoweShell,可使用Xrm.Tolling。它提供了一套API,经过使用SDK组件来提供额外的功能和资源,用于Windows客户端的开发。

相关内容:使用XRM工具建立Windows客户端应用

选择 - Web API vs. Organization service

注:organization service目前使用的是过期的2011 SOAP Endpoint,将来它的内部实现会迁移到Web API。

扩展服务端

能够编写监听事件的代码,并应用自定义业务逻辑来修改或扩充平台的标准行为。 这种代码仅可以使用.NET托管代码编写,开发人员的体验基于SDK组件中定义的相同对象。你可使用organization service操做Dynamics 365 CRM中的数据。

相关信息: 写插件来扩展业务处理

能够基于Windows Workflow Foundation编程模型建立自定义流程。能够建立多种不一样的处理,多数时候经过使用workflow设计器来实现功能。可是设计器有一些作不到的事情,此时能够经过代码来定义。

相关信息:写Workflow来自动化业务处理

扩展应用端

Dynamics 365 CRM提供的每一个客户端应用都具有定制和部署到不一样类型客户端的能力。Web应用、Dynamics 365 for Outlook、Dynamics 365 for 平板、and Dynamics 365 for 电话——都提供了自定义导航和命令的能力,也提供了Xrm对象模型和Xrm.Utility功能,能够经过使用Javascript为客户端提供响应式体验。

在客户端中,能够经过URL访问Web resource,好比Javascript库、HTML页面、图像,或其它文件。

相关内容:在CRM app中使用JavascriptDynamics 365  CRM中的Web Resource

 

当你须要访问在Javascript上下文中不可用的Dynamics 365 CRM数据时,能够调用服务器获取数据。可使用organization service,但使用JSON格式的Web API会比基于XML的organization service更简单,由于JS运行在应用上下文中,会自动得到身份认证。

相关内容:Dynamics 365 CRM Web API入门 (客户端JavaScript)

 

参考:Programming models for Dynamics 365 for Customer Engagement apps

           Microsoft Dynamics 365: Custom Extensions and Data Import

           JavaScript and HTML Resources

相关文章
相关标签/搜索