Microsoft Dynamics 365 Customer Engagement (オンプレミス) には、ニーズに最適なものを柔軟に決定できるように設計された複数のプログラミング モデルが用意されています。
次の図は、Dynamics 365 Customer Engagement (オンプレミス) の主要なプログラミング シナリオを示しています。 作成するソリューションの種類に適した Dynamics 365 Customer Engagement (オンプレミス) プログラミング モデルを使用します。
Dynamics 365 Customer Engagement (オンプレミス) への接続
Dynamics 365 Customer Engagement (オンプレミス) のデータにアクセスするためのクライアントを作成する場合は、Web API または組織サービスを使用できる 2 つのオプションがあります。
Web API
Web API は、Dynamics 365 (オンラインおよびオンプレミス) 用の 2016 年 12 月の更新プログラムで導入され、さまざまなプログラミング言語、プラットフォーム、デバイスで使用できる開発エクスペリエンスを提供します。 Web API は OData (Open Data Protocol) v4 を実装します。 OData は、豊富なデータ ソースに対して RESTful API を構築して使用するための OASIS 標準です。
Web API を使用する場合は、 OData v4 標準をサポートするコミュニティでサポートされているライブラリの一覧から選択できます。 HTTP を直接使用してコードを記述することもできます。 詳細情報: Dynamics 365 Customer Engagement Web API の使用
インターネットに接続するデプロイ (IFD) を使用して Dynamics 365 for Customer Engagement (オンプレミス) 環境に接続する場合は、 Azure AD 認証ライブラリ (ADAL) を使用して、さまざまなプログラミング言語とプラットフォームからの認証を有効にすることができます。 詳細情報: Web API を使用して Dynamics 365 Customer Engagement (オンプレミス) に対する認証を行う
注
Azure ADAL ライブラリは非推奨です。 代わりに Microsoft Authentication Library (MSAL) を使用してください。
組織データ サービス ("REST エンドポイント" または "OData エンドポイント") は、Web API を優先して Dynamics 365 (オンラインおよびオンプレミス) の 2016 年 12 月の更新プログラムで非推奨となった OData v2 サービスです。 組織データ サービスは、前の図には含まれていません。 組織サービスは、それを使用したコードをサポートするために引き続き使用できます。 ただし、Dynamics 365 Customer Engagement (オンプレミス) の新しい開発では、Web API を使用することをお勧めします。 詳細情報: Web リソースで OData エンドポイントを使用する
組織サービス
.NET 開発者の場合は、Web API または組織サービスを使用できます。 組織サービスでは、一連のアセンブリとツールを使用して、Dynamics 365 Customer Engagement (オンプレミス) のインスタンスに追加されたカスタム エンティティと属性を含む厳密に型指定されたクラスを生成できます。
コード生成用の SDK アセンブリとツールを使用すると、Windows Communication Foundation (WCF) Data Services の OrganizationServiceContext と同じ概念に基づくを含めることもできます。 このクラスを使用すると、変更の追跡、ID とリレーションシップの管理、および Dynamics 365 Customer Engagement (オンプレミス) .NET Language-Integrated Query (LINQ) プロバイダーへのアクセスが可能になるため、LINQ を使用してクエリを作成できます。 コード生成ツールを使用すると、コード生成ツールの実行時に定義されるエンティティと属性に対して厳密に型指定されたクラスが得られます。 これらは早期 バインド クラスと呼ばれます。 詳細: コードで事前バインドされたエンティティ クラスを使用する
コード生成ツールの実行時に認識されなかったエンティティと属性をコードで操作する必要がある場合は、コードでエンティティとエンティティ属性を指定できる Entity クラスを使用できます。 この 遅延バインディング 形式のコード記述では柔軟性が向上しますが、暗黙的なキャストが発生しないように、すべての型のコンパイル時のチェックは許可されません。 遅延バインディングでは、オブジェクトが作成されたとき、または型に対してアクションが実行された場合にのみ、型がチェックされます。 Entity クラスでは、暗黙的なキャストを防ぐために、型を明示的に指定する必要があります。 詳細: コードで遅延バインド エンティティ クラスを使用する
Windows クライアントを作成する場合、または Windows PowerShell を使用している場合、Xrm.Tooling には、SDK アセンブリを使用して、Windows クライアント開発専用の追加機能とリソースを提供する一連の API が用意されています。 詳細: XRM ツールを使用して Windows クライアント アプリケーションをビルドする
サーバーでの拡張
イベントをリッスンし、カスタム ビジネス ロジックを適用してプラットフォームの標準動作を変更または拡張するコードを記述できます。 このコードは.NET マネージド コードを使用してのみ記述でき、開発者エクスペリエンスは SDK アセンブリで定義されているのと同じオブジェクトに基づいています。 組織サービスと連携して、Dynamics 365 Customer Engagement (オンプレミス) データで操作を実行できます。 詳細: ビジネス プロセスを拡張するための Plug-Ins を記述する。
また、Windows Workflow Foundation プログラミング モデルに基づいてカスタム プロセスを作成することもできます。 さまざまな種類のプロセスを作成できます。 ほとんどの場合、ワークフロー デザイナーを使用します。 ただし、デザイナーで実現できない機能がある場合は、コードを使用してプロセスを定義できます。 詳細情報: ビジネス プロセスを自動化するためのワークフローの記述
アプリケーションでの拡張
Dynamics 365 Customer Engagement (オンプレミス) によって提供される各クライアント アプリケーションには、カスタマイズを定義し、複数の種類のクライアントに展開する機能が含まれています。 Web アプリケーション、Dynamics 365 for Outlook、Dynamics 365 for tablets、Dynamics 365 for phones はカスタム ナビゲーションとコマンド オプション、JavaScript で使用できる Xrm
オブジェクト モデルと Xrm.Utility
関数を含める機能を提供し、クライアントのレスポンシブなユーザーエクスペリエンスを可能にします。 クライアントで使用または表示できる JavaScript ライブラリ、HTML ページ、画像、およびその他の種類のファイルは、URL アドレス指定可能な Web リソースとして使用できます。 詳細情報: Dynamics 365 Customer Engagement (オンプレミス) の顧客のエンゲージメント アプリと Web リソースで JavaScript を使用する。
JavaScript コードが実行されているコンテキストでは使用できない Dynamics 365 Customer Engagement (オンプレミス) データにアクセスする必要がある場合は、サーバーを呼び出して必要なデータを取得できます。 組織サービスは使用できますが、組織サービスに必要な XML ではなく、JSON で Web API を使用する方がはるかに簡単です。 スクリプトはアプリケーションのコンテキストで実行されるため、自動的に認証されます。 詳細情報: Dynamics 365 Customer Engagement Web API の概要 (クライアント側 JavaScript)
こちらも参照ください
Dynamics 365 Customer Engagement の開発者ガイド (オンプレミス)
作業の開始
チュートリアルとリソース
ベスト プラクティス
開発者ツール