【转】Dynamics 365 CRM 开发架构简介
目錄
- 概覽
- 名詞解釋
- 連接到Dynamics 365 CRM
- Web API
- Organization service
- 選擇 - Web API vs. Organization service
- 擴(kuò)展服務(wù)端
- 擴(kuò)展應(yīng)用端
?
正文
Dynamics 365 CRM提供了多種編程模型,你可以靈活地按需選用最佳模式。
本文是對Dynamics 365 CRM編程模型的綜述。
回到頂部
概覽
下圖表明了Dynamics 365 CRM的主要可編程場景。請根據(jù)整體解決方案選擇合適的模型。
從擴(kuò)展的角度來看,你可以在Dynamics 365中實(shí)現(xiàn)以下附加功能:
其中1和2屬于客戶端擴(kuò)展,3屬于服務(wù)端擴(kuò)展。
名詞解釋
上圖中部分名詞的基本概念。
1.右側(cè)名詞
Web resources:存儲(chǔ)在Dynamics 365 CRM數(shù)據(jù)庫中的虛擬文件,比如圖片,網(wǎng)頁,XML等,可以通過URL訪問。
Forms scripts:Dynamics 365 CRM中的一種常見的Javascript應(yīng)用方式,使用場景包括通過自定義代碼對表單輸入內(nèi)容校驗(yàn)、或進(jìn)行其它自動(dòng)化處理等。(參考:Form Scripts)
Ribbon commands:Ribbon的的定義見微軟文檔。
2.左側(cè)名詞
Plug-ins:一種事件處理程序,通過它可以修改或擴(kuò)充標(biāo)準(zhǔn)的業(yè)務(wù)流程。
Workflow:通過Workflow可以創(chuàng)建和管理自動(dòng)化的業(yè)務(wù)過程,它也提供了定制和擴(kuò)展標(biāo)準(zhǔn)流程的機(jī)制。Organization service:客戶端連接服務(wù)端的一種方式,適用于.Net客戶端。
3.上右名詞
Web API:客戶端連接服務(wù)端的一種方式,擁有良好的平臺(tái)兼容性,適用于各種客戶端。
4.靠下名詞
Service Contracts:Dynamics中的一種單據(jù)類型,和本文主題無關(guān)。
?
本文鏈接:https://www.cnblogs.com/hhelibeb/p/10718080.html
轉(zhuǎn)載請注明
?
回到頂部
連接到Dynamics 365 CRM
客戶端要訪問Dynamics 365 CRM中的數(shù)據(jù),有2種方案可以選擇:使用Web API或者organization service。
Web API
Web API在2016年11月的系統(tǒng)更新中被引入,它提供了跨編程語言、跨平臺(tái)和跨設(shè)備的開發(fā)體驗(yàn)。Web API實(shí)現(xiàn)了OData?(Open Data Protocol) v4。OData是一個(gè)用于構(gòu)建和消費(fèi)RESTfulAPIs的OASIS標(biāo)準(zhǔn)。
使用Web API時(shí),可以選擇由社區(qū)支持的支持OData V4標(biāo)準(zhǔn)的庫。你也可以選擇寫代碼直接使用HTTP。
相關(guān)內(nèi)容:使用Dynamics 365 CRM Web API。
?
連接Dynamics 365 CRM時(shí),可以使用Azure AD Authentication Libraries (ADAL)以啟用支持多語言/多平臺(tái)的認(rèn)證。
相關(guān)內(nèi)容:通過Web API進(jìn)行身份認(rèn)證。
Organization service
如果你是位.Net開發(fā)者,那么你既可以使用Web API,也可以使用organization service。通過organization service可以使用組件和工具生成強(qiáng)類型類,包含已經(jīng)被添加到Dynamics 365 CRM實(shí)例中的自定義實(shí)體和屬性。
?
通過SDK組件和工具, 你可以使用OrganizationServiceContext,通過這個(gè)類可以跟蹤變更、管理身份和關(guān)系。它也提供了訪問Dynamics 365 CRM中的LINQ的入口。當(dāng)你使用代碼生成工具的時(shí)候,會(huì)得到當(dāng)前已定義的實(shí)體和屬性的強(qiáng)類型類,它們被稱為早綁定類(early-bound classes)。
更多信息:在代碼中使用早綁定實(shí)體類
?
當(dāng)代碼需要處理哪些在生成代碼階段尚不知道的實(shí)體和屬性時(shí),你可以在代碼中使用,允許指定實(shí)體和屬性的實(shí)體類。這種晚綁定(late-bound)的代碼風(fēng)格提供了更大的靈活性,但是不允許完整的編譯期類型檢查,因此不會(huì)出現(xiàn)隱式轉(zhuǎn)換。在晚綁定下,只有在對象創(chuàng)建或者對類型執(zhí)行操作的時(shí)候才會(huì)檢查類型。需要顯式指定實(shí)體類的類型,以避免隱式轉(zhuǎn)換。
相關(guān)內(nèi)容:在代碼中使用晚綁定
?
如果要?jiǎng)?chuàng)建Windows客戶端或者使用Windows PoweShell,可以使用Xrm.Tooling。它提供了一套API,通過使用SDK組件來提供額外的功能和資源,用于Windows客戶端的開發(fā)。
相關(guān)內(nèi)容:使用XRM工具創(chuàng)建Windows客戶端應(yīng)用
選擇 - Web API vs. Organization service
注:organization service目前使用的是過時(shí)的2011 SOAP Endpoint,未來它的內(nèi)部實(shí)現(xiàn)會(huì)遷移到Web API。
回到頂部
擴(kuò)展服務(wù)端
可以編寫監(jiān)聽事件的代碼,并應(yīng)用自定義業(yè)務(wù)邏輯來修改或擴(kuò)充平臺(tái)的標(biāo)準(zhǔn)行為。?這種代碼僅可使用.NET托管代碼編寫,開發(fā)人員的體驗(yàn)基于SDK組件中定義的相同對象。你可以使用organization service操作Dynamics 365 CRM中的數(shù)據(jù)。
相關(guān)信息:?寫插件來擴(kuò)展業(yè)務(wù)處理
可以基于Windows Workflow Foundation編程模型創(chuàng)建自定義流程。可以創(chuàng)建多種不同的處理,多數(shù)時(shí)候通過使用workflow設(shè)計(jì)器來實(shí)現(xiàn)功能。但是設(shè)計(jì)器有一些做不到的事情,此時(shí)可以通過代碼來定義。
相關(guān)信息:寫Workflow來自動(dòng)化業(yè)務(wù)處理
回到頂部
擴(kuò)展應(yīng)用端
Dynamics 365 CRM提供的每個(gè)客戶端應(yīng)用都具備定制和部署到不同類型客戶端的能力。Web應(yīng)用、Dynamics 365 for Outlook、Dynamics 365 for 平板、and Dynamics 365 for 電話——都提供了自定義導(dǎo)航和命令的能力,也提供了Xrm對象模型和Xrm.Utility功能,可以通過使用Javascript為客戶端提供響應(yīng)式體驗(yàn)。
在客戶端中,可以通過URL訪問Web resource,比如Javascript庫、HTML頁面、圖像,或其它文件。
相關(guān)內(nèi)容:在CRM app中使用Javascript,Dynamics 365? CRM中的Web Resource
?
當(dāng)你需要訪問在Javascript上下文中不可用的Dynamics 365 CRM數(shù)據(jù)時(shí),可以調(diào)用服務(wù)器獲取數(shù)據(jù)。可以使用organization service,但使用JSON格式的Web API會(huì)比基于XML的organization service更簡單,因?yàn)镴S運(yùn)行在應(yīng)用上下文中,會(huì)自動(dòng)獲得身份認(rèn)證。
相關(guān)內(nèi)容: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
總結(jié)
以上是生活随笔為你收集整理的【转】Dynamics 365 CRM 开发架构简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 比RTX 40还要晚!AMD RX 70
- 下一篇: 信用卡注销后还能交易吗