選取受管理程式碼的開發樣式
發行︰ 2016年11月
適用於: Dynamics CRM 2015
Microsoft Dynamics CRM SDK 提供多種方法與技術,供使用時撰寫程式碼存取 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 Web 服務或擴充應用程式。 本指南標註了一些您可以用來完成多種編寫程式碼工作的工具和方法,並提供一些使用時機的導引。
本主題內容
使用程式碼驗證
建立與部署外掛程式或自訂工作流程活動
建立和部署 XAML 工作流程
實體程式設計 (早期繫結、晚期繫結、開發人員擴充功能)
查詢 (Fetch 與 QueryExpressions 與 LINQ 與開發人員擴充功能)
使用程式碼驗證
下表列出您於撰寫程式碼驗證電子 Microsoft Dynamics 365 安裝來電者內部部署、選取,網際網路對向部署 (IFD) 或線上部署。
類別 |
描述與使用方式 |
其他資訊 |
---|---|---|
Helper 程式碼 |
在範例程式碼的類別示範如何連線至 Web 服務和驗證使用者。 您可以使用 Helper 程式碼為的自訂驗證代碼的基礎。 此代碼容易使用,且支援並支援所有 Microsoft Dynamics 365 部署類型。 它也支援將使用者的密碼儲存在 Windows 認證管理員 中,供往後使用。 提供完整來源程式碼,所以您可以針對自己的需求來複製並自訂。 以下建議的慣例尋用於將您的程式在未來的版本中從多個變更中單獨出來並置入 helper 程式碼。 |
範例:Microsoft Dynamics CRM 快速入門 Helper 程式碼:ServerConnection 類別 這段程式碼可以在 SDK 的 SampleCode\CS\HelperCode\CrmServiceHelpers.cs 和 SampleCode\VB\HelperCode\CrmServiceHelpers.vb 檔案中找到。 下載 Microsoft Dynamics CRM SDK 套件。 |
開發人員擴充功能 |
提供這些組件簡化以及加速與 Microsoft Dynamics 365互動應用程式開發。 延伸功能可延伸核心 Microsoft Dynamics CRM SDK 的功能,尤其是針對 OrganizationServiceContext 類別的使用。 若需要簡單方法來為你完成較困難的工作部分的程式碼執行的簡單方式,請使用 CrmConnection 類別。 此代碼容易使用,且支援並支援所有 Microsoft Dynamics 365 部署類型。 |
|
Xrm 用戶端 |
如需自訂 Windows Communication Foundation (WCF) 服務通道管理和驗證程序的進階開發人員,請使用 Microsoft.Xrm.Sdk.Client 命名空間中的 IServiceManagement<TService> 和 OrganizationServiceProxy 類別。 使用這些類別可以直接提供更優質的連線與驗證效能,以及更多彈性。 不過,則需要 WCF 服務管道與伺服器驗證的更進階的知識。 此外,您必須撰寫更多程式碼來處理 Microsoft Dynamics 365 所有部署類型。 |
|
XRM 工具 |
這些組件將運用 Dynamics 365 API 提供容易驗證的支援的代碼的部署和 Windows PowerShell Cmdlet。 在這些類別中的函數為在多執行序環境中於 Dynamics 365 執行的動作提供執行序安全。 它用提供一般的整合式驗證邏輯登入控制項以及安全儲存並重新使用驗證資訊,以提供 Windows 用戶端應用程式一致而且無接縫的登入 Dynamics 365 體驗。 這些類別也提供固定診斷追蹤以協助疑難排解與來自 Windows 用戶端應用程式的動作呼叫效能回報。 這些類別支援所有 Microsoft Dynamics 365 部署類型和驗證類型,但並不含 OAuth。 |
建立與部署外掛程式或自訂工作流程活動
下表列出您會寫入和部署的外掛程式及自訂工作流程活動的選擇。
工具 |
描述與使用方式 |
其他資訊 |
---|---|---|
外掛程式及自訂工作流程活動類別 外掛程式註冊工具 |
外掛程式及自訂工作流程活動類別可建立事件處理常式執行您可以整合 Microsoft Dynamics 365 修改或增添平台標準行為的自訂商務規則。 透過使用直接這些類別,開發人員工具套件 將不會為您的程式碼中提供 Helper 程式碼。 如果您從頭開始撰寫外掛程式以及自訂工作流程活動,您就必須使用外掛程式登錄工具來登錄。 此工具可以提供圖形使用者介面和支援登錄外掛程式與自訂工作流程活動和 Microsoft Dynamics 365。 您可以在此狀況下使用方法: 了解如何使用外掛程式和自訂活動類別。 不希望額外的程式庫代碼自動產生並加入您的編碼檔案中。 不介意使用外部工具和 Web 應用程式註冊並包裝自訂程式碼組件。 |
建立和部署 XAML 工作流程
下表列出您會寫入和部署的 XAML 自訂工作流程的選擇。
工具 |
描述與使用方式 |
其他資訊 |
---|---|---|
Microsoft Visual Studio 工作流程設計工具 |
Microsoft Dynamics 365 內部部署與 IFD 支援能夠建立自訂 XAML 工作流程。 使用 Microsoft Visual Studio 工作流程設計工具,您可以建立自訂 XAML 工作流程,也稱為宣告式工作流程,可以從拖曳工具套件的工作流程活動集合設計介面上,建立變數和設定這些活動屬性實作工作流程功能。 您可以使用工作流程特定的 Microsoft Dynamics 365的內建 Windows Workflow Foundation 活動或程序活動。 要建立自訂 XAML 工作流程時,請使用這種方法。 |
實體程式設計 (早期繫結、晚期繫結、開發人員擴充功能)
下表列出您會寫入使用 Microsoft Dynamics 365 實體的程式碼。
類別 |
描述與使用方式 |
其他資訊 |
---|---|---|
早期繫結 <optional namespace>.Account、<optional namespace>.Contact,以及等等 |
程式碼產生工具 (CrmSvcUtil) 可以建立早期繫結類型,源自於 Entity 類型,你可以用它來存取 Microsoft Dynamics 365 中的商務資料。 這些類別中包括每個安裝中實體的類別,包括自訂實體。 在您要編譯器在編譯期間檢查類型參照時,請使用這種方法。 此外,屬性以及關係包含在產生的類別中,所以他們有 IntelliSense 實體、屬性以及關係名稱的支援。 強類型一般來說是比較偏好的方法,而且可以用在此 SDK 說明文件的大多數範例中。 用這個方法有一些不利的狀況: 類別必須在每次實體自訂時產生,這樣才能利用模式變更的好處。 序列化成本在網路傳輸中,會在實體轉換為晚期繫結類型時增加。 |
|
晚期繫結 Microsoft.Xrm.Entity |
Entity 類別包含實體的邏輯名稱和實體屬性的屬性包陣列。 如此即可使用晚期繫結,以便與例如自訂實體和並不存在的自訂屬性類型合用 (當應用程式依此運行時)。 另外一個這麼做的好處是,在實體資料透過網路傳輸時,少一點序列化意味著可以得到更高的效能。 用這個方法有一些不利的狀況: 類型必須明確指定,避免隱式轉換。 要把變更的影響隔離至結構內並不容易,因為例如實體和屬性這類的資源名稱是寫死的。 在編寫程式時很容易發生的拼字錯誤,因為屬性名稱是寫死的字串。 |
|
開發人員擴充功能 Microsoft.Xrm.Client.CrmEntity |
CrmEntity 類別源自於 Entity 類別。 除了提供 Entity 類別的完全相同的功能之外,CrmEntity 新增取得並設定擴充方法來簡化一般的程式編寫工作,以及兩個屬性變更事件。 |
|
早期繫結使用程式碼產生工具擴充功能 <optional namespace>.Account、<optional namespace>.Account,以及等等 |
透過使用開發人員擴充版本的 CrmSvcUtil 工具,可以產生衍生自 CrmEntity 的早期繫結類別。 當你想利用開發人員擴充功能的其他功能時,請使用此項目。 |
查詢 (Fetch 與 QueryExpressions 與 LINQ 與開發人員擴充功能)
下表列出您用來建立查詢與使用來自 Microsoft Dynamics 365 資料庫擷取記錄的選擇。
查詢樣式 |
描述與使用方式 |
其他資訊 |
---|---|---|
FetchXML |
這是自訂 XML 類型的查詢語言,支援 QueryExpression 所有功能以及彙總和群組。 擷取查詢可能傳回多個實體的紀錄。 此外,查詢可以序列化並存在資料庫中。 這會用於儲存為一個 UserQuery 實體的使用者擁有的儲存檢視表,以及 SavedQuery 實體的組織擁有的儲存檢視表。 在你需要支援彙整和群組,或是需要儲存查詢時,使用這個查詢語言。 |
|
查詢運算式用於搜尋單一實體類型的紀錄。 查詢會建置為物件模型。 此類別支援除了彙總和群組以外的所有 FetchXML 功能。 它也支援使用早期與晚期繫結實體程式設計樣式。 |
||
LINQ |
使用標準語言建立查詢,但內部 .NET Language-Integrated Query (LINQ) 使用 QueryExpression,因此受限於 QueryExpression 的功能。LINQ 支援使用早期與晚期繫結實體程式設計樣式。 |
另請參閱
開發人員概觀
了解 Microsoft Dynamics CRM 2015 開發的教學課程
撰寫應用程式和伺服器擴充功能
Microsoft Dynamics CRM 2015 程式設計模型
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權