Dynamics 365 CRM提供了多種編程模型,你能夠靈活地按需選用最佳模式。javascript
本文是對Dynamics 365 CRM編程模型的綜述。html
下圖代表了Dynamics 365 CRM的主要可編程場景。請根據總體解決方案選擇合適的模型。java
從擴展的角度來看,你能夠在Dynamics 365中實現如下附加功能:web
其中1和2屬於客戶端擴展,3屬於服務端擴展。數據庫
上圖中部分名詞的基本概念。編程
Web resources:存儲在Dynamics 365 CRM數據庫中的虛擬文件,好比圖片,網頁,XML等,能夠經過URL訪問。windows
Forms scripts:Dynamics 365 CRM中的一種常見的Javascript應用方式,使用場景包括經過自定義代碼對錶單輸入內容校驗、或進行其它自動化處理等。(參考:Form Scripts)api
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中的數據,有2種方案能夠選擇:使用Web API或者organization service。
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進行身份認證。
若是你是位.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客戶端的開發。
注: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