Microsoft Dynamics 365 のプログラミング モデル

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Dynamics 365 には、ニーズに最適なものを決定する柔軟性を提供するように設計された、複数のプログラミング モデルが用意されています。

次の図は、Microsoft Dynamics 365 (オンラインおよび設置型) での主なプログラミング シナリオを示しています。 作成するソリューションの種類に適した Microsoft Dynamics 365 プログラミング モデルを使用します。

CRM 2016 のためのプログラミング シナリオ

このトピックの内容

Microsoft Dynamics 365 に接続中

サーバー上での展開

アプリケーションでの拡張

Microsoft Dynamics 365 に接続中

Microsoft Dynamics 365 のデータにアクセスするクライアントを作成するとき、Web API または組織サービスの 2 つのオプションを使用できます。

Web API

Web API は Microsoft Dynamics 365 で導入されて、各種のプログラミング言語、プラットフォーム、およびデバイスで使用できる開発環境を提供します。 Web API は OData (オープン データ プロトコル) v4 を実装します。 OData は、リッチなデータ ソースに対してRESTfulAPIs を作成して使用するための OASIS 標準規格です。

Web API を使用すると、OData v4 標準に対応した、コミュニティでサポートされているライブラリの一覧 から選択することができます。 また、HTTP を直接使用してコードを記述するように選択することもできます。詳細:Microsoft Dynamics 365 Web API の使用

Microsoft Dynamics 365 (オンライン) に接続しているとき、または インターネットに接続する展開 (IFD) を使用した設置型環境にあるとき、Azure AD 認証ライブラリ (ADAL) を使用して、各種のプログラミング言語およびプラットフォームからの認証を有効にすることができます。詳細:Web API を使用して Microsoft Dynamics 365 への認証

注意

組織データ サービス (または OData エンドポイント) は、Web API に基づいて、Microsoft Dynamics 365 で削除された OData v2 サービスです。 組織データ サービスは、先の図には含まれていません。 組織サービスは、それを使用したコードをサポートためにまだ利用できます。 ただし、Microsoft Dynamics 365 の新しい開発については、Web API の使用をお勧めします。詳細:Web リソースで OData エンドポイントを使用する

組織のサービス

.NET 開発者の場合は、Web API サービスか、組織サービスのいずれかを使用できます。 組織サービスの場合は、アセンブリとツールのセットを使用して、Microsoft Dynamics 365 のインスタンスに追加されたユーザー定義のエンティティおよび属性を含む、厳密に型指定されたクラスを生成することができます。

コード生成用の SDK のアセンブリおよびツールの場合は、Windows Communication Foundation (WCF) のデータ サービスの DataServiceContext と同じ概念に基づいている OrganizationServiceContext を含めることもできます。 このクラスにより、変更を追跡し、ID およびリレーションシップを管理し、Microsoft Dynamics 365.NET 統合言語クエリ (LINQ) プロバイダーにアクセスすることができます。したがって、LINQ を使用してクエリを作成できます。 コード生成用のツールを使用すると、コード生成ツールが実行されているときに定義されるエンティティおよび属性について、厳密に型指定されたクラスが得られます。 これらは 事前バインド クラスと呼ばれます。詳細:コードでの事前バインド型エンティティ クラスの使用

コード生成ツールが実行された時点で認識されなかったエンティティと属性を使用して作業する必要があるときは、コードによるエンティティとエンティティ属性の指定を可能にする Entity クラスを使用できます。 この 遅延バインド形式のコードの記述では、柔軟性が大幅に増加しますが、コンパイル時にすべての型をチェックすることができないので、暗黙的なキャストは一切発生しません。 遅延バインドでは、オブジェクトの作成時や型に対するアクションの実行時にのみ、型が確認されます。Entity クラスでは、型を明示的に指定して暗黙的なキャストを防ぐ必要があります。詳細:コードでの遅延バインドされたエンティティ クラスの使用

Windows クライアントを作成する場合、または Windows PowerShell を使用する場合、Xrm.Tooling に SDK アセンブリを使用する一組の API が用意されていて、Windows クライアントの開発専用の追加の機能とリソースが提供されます。詳細:XRM ツールを使用して Windows のクライアント アプリケーションを作成する

サーバー上での展開

イベントをリスニングし、ユーザー定義のビジネス ロジックを適用するコードを記述して、プラットフォームの標準動作を変更または拡張することができます。 このコードは .NET 管理コードでのみ記述することができ、開発者環境は SDK アセンブリでの定義と同じオブジェクトに基づきます。 組織サービスを使用して、Microsoft Dynamics 365 データに対する操作を実行できます。詳細:ビジネス プロセスを拡張するためのプラグインを記述する

また、ユーザー定義のプロセスを Windows Workflow Foundation プログラミング モデルに基づいて作成することもできます。 複数の異なる種類のプロセスも作成できます。 ほとんどの場合、ワークフロー デザイナーを使用します。 ただし、ワークフロー デザイナーでは実現できない一部の機能が存在するときは、コードを使用してプロセスを定義できます。詳細:Dynamics 365 プロセスを使用したビジネス プロセスの自動化

アプリケーションでの拡張

Microsoft Dynamics 365 に用意されているクライアント アプリケーションのそれぞれに、カスタマイズの定義および複数の種類のクライアントへの展開の機能が含まれています。 Web アプリケーション、Outlook 用 Microsoft Dynamics 365、タブレット PC 用 Dynamics 365、および 電話用 Dynamics 365 のそれぞれには、ユーザー定義のナビゲーションおよびコマンド オプションだけでなく、Xrm.Page オブジェクト モデルと、JavaScript で使用してクライアントに高い応答性の提供を可能にする Xrm.Utility 関数も用意されています。 クライアントで使用または表示できる JavaScript ライブラリ、HTML ページ、そのほかの種類のファイルは、URL でアドレス指定可能な Web リソースとして使用できます。詳細:Microsoft Dynamics 365 での JavaScript の使用 および Microsoft Dynamics 365 の Web リソース

JavaScript コードが実行されるコンテキストで利用できない Microsoft Dynamics 365 データにアクセスする必要があるときは、サーバーを呼び出して必要なデータを取得できます。 組織サービスは使用できますが、組織サービスで要求される XML よりも、JSON 形式の Web API を使用する方がはるかに簡単です。 スクリプトはアプリケーションのコンテキストで実行されるので、自動的に認証を受けることになります。詳細:Microsoft Dynamics 365 Web API に関する入門情報 (クライアント側 JavaScript)

関連項目

対応の方法...
Microsoft Dynamics 365 開発の理解に役立つチュートリアルとリソース
Microsoft Dynamics 365 での開発におけるベスト プラクティス
開発者ツール

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権