天天看點

Dynamics 365 CRM 開發架構簡介

Dynamics 365 CRM提供了多種程式設計模型,你可以靈活地按需選用最佳模式。

本文是對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

Dynamics 365 CRM 開發架構簡介

注: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

繼續閱讀