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