目录

  • 概览

    • 名词解释
  • 连接到Dynamics 365 CRM
    • Web API
    • Organization service
    • 选择 - Web API vs. Organization service
  • 扩展服务端
  • 扩展应用端

正文

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

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

回到顶部

概览

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

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

  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访问。

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

Ribbon commands:Ribbon的的定义见微软文档。

Workflow:通过Workflow可以创建和管理自动化的业务过程,它也提供了定制和扩展标准流程的机制。

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

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

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

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

本文链接:https://www.cnblogs.com/hhelibeb/p/10718080.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中使用Javascript,Dynamics 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

Dynamics 365 CRM 开发架构简介相关推荐

  1. 【转】Dynamics 365 CRM 开发架构简介

    目录 概览 名词解释 连接到Dynamics 365 CRM Web API Organization service 选择 - Web API vs. Organization service 扩展 ...

  2. 【转】Dynamics 365中开发和注册插件介绍

    是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面的 ...

  3. Dynamics 365 CRM证书更换

    周末更新公司crm服务器证书时出现一些问题,感谢提供支持的第三方公司 主要步骤参考如下博文https://blog.csdn.net/hyhcl/article/details/109444954,现 ...

  4. Dynamics 365 CRM Connected Field Service 自动发送command

    上期降到了怎样部署connected field service(CFS) 我们假设现在IoT 设备是温度监控器, 当温度触发我们之前预设的温度值, IoT会通过IoT Hub 发送IoT Alert ...

  5. Dynamics 365(CRM) 欢迎加入商务技术交流QQ群(MSCRM商务技术交流群149371424)

    群介绍: 本群创建于2011/4/16:  全面的微软CRM相关人士,有微软CRM客户,合作伙伴,MVPs,技术专家,方案专家,互联网专家,O2O专家等各类相关高端专业人士.本群交流涵盖CRM 4.0 ...

  6. Dynamics 365 CRM (online) 使用WebApi调用全局action(Plugin)执行批量更新操作, 前端JS批量上传记录到CRM中

    创建一个action process,如下图,分别有两个inputparameter 和一个outputparameter 2.使用visual studio 2019编写一个plugin dll, ...

  7. ASP.NET Core 企业级开发架构简介及框架汇总

    一. 垂直方向架构 1. 多层架构 分层架构通过程序包或者程序的隔离构建松耦合的应用.我们以最近流行的洋葱架构模型进行分析,如图

  8. Dynamics 365 CRM 接入统一身份认证平台(单点登录集成)

    打算将D365 CRM接入公司统一身份认证平台. 前提:D365 已IFD部署,因为要借助ADFS来完成单点登录. 登录ADFS服务器,打开ADFS,本次集成,统一身份认证为上游,ADFS是下游,因为 ...

  9. Dynamics 365 CRM 中 打开自定义页面 Xrm.Navigation.navigateTo Open Web Resource

    在CRM中经常需要打开自定义的HTML界面,而且打开这个界面的时候需要模态状体,阻止用户填写除了弹窗之外的东西,只能先填写窗体的内容: 这个时候很多人喜欢选择第三方的library去实现模态窗体,但是 ...

最新文章

  1. opencv播放器和摄像头视频播放
  2. Android人脸支付研究,智能手机上人脸支付系统的设计与实现
  3. Day14:使用斯坦福 NER 软件包实现你自己的命名实体识别器
  4. Shell(12)——awk(2)
  5. Linux与jvm内存关系分析
  6. argb可以和rgb同步吗_神光同步酷炫幻彩,安钛克光棱120 RGB风扇套装
  7. Citrix高层相继离职,XenServer或将被流产?
  8. 《锋利的jQuery》二、jQuery的选择器
  9. 计算机考研408考试科目及备考指南
  10. easybcd 无法添加linux条目,easybcd无法添加条目怎么办-easybcd无法添加条目的解决办法...
  11. git 拉取子目录 child-dir (父目录为:parent-dir)
  12. SAP汇率转换函数[BAPI_EXCHANGERATE_GETDETAIL]
  13. ios系统更新怎样用移动网络连接服务器,苹果手机用不了蜂窝数据?用这几招解决!...
  14. 浅谈区块链技术应用场景
  15. php正则匹配中文和英文字母,PHP正则匹配中文字母数字正则的表达式
  16. 阿里二面惨败,痛哭流涕狂刷 1000+ 面试题,成功面上五面上岸滴滴
  17. 994. 腐烂的橘子 (广度探索)
  18. 都是做游戏,为嘛国内外出来的产品相差这么大?
  19. IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理。
  20. 群体创新更能促进社会进步

热门文章

  1. Yarn的三种资源调度机制
  2. 由object元素引出的事件注册问题和层级显示问题
  3. 面向对象三大特性: 封装
  4. 【转】android程序连接网络出现android.os.NetworkOnMainThreadExceptionat
  5. 惊!MySQL官网巨变,下载被取消
  6. silverlight + wcf(json格式) + sqlserver存储过程分页
  7. 2.3 Factory Method(工厂方法)
  8. [Leedcode][JAVA][第394题][字符串解码][栈][类型转换]
  9. x-lite for linux,Linux Lite 4.6正式发布:现基于Ubuntu 18.04.3 LTS
  10. java的jsp要下载吗_jsp、java下载附件