次の方法で共有


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

 

公開日: 2016年11月

対象: Dynamics CRM 2015

Microsoft Dynamics 365 は、ニーズに最適なものを決定できる柔軟性を提供するように設計された複数のプログラミング パラダイムを提供します。 事前バインド型エンティティ データ モデルが追加されたことにより、スタックと統合され、エンティティ値を .NET Framework オブジェクトとして公開する "オブジェクト サービス" 層が使用可能になりました。 また、遅延バインドのシナリオも使用できます。

プログラミング シナリオ

次の図は、Microsoft Dynamics CRM 2015 および Microsoft Dynamics CRM Online 2015 更新プログラム での主なプログラミング シナリオを示しています。

プログラミング シナリオ

これらの Microsoft Dynamics 365 プログラミング パラダイムは、次の方法で使用できます。

  • 事前バインド - Microsoft Dynamics 365 は、エンティティ データ モデルと Windows Communication Foundation (WCF) データ サービス テクノロジを使用して、Microsoft Dynamics 365 とやり取りするインターネット対応アプリケーションの開発を容易にする新しいツール セットを提供します。 これにより、追加のプログラミング パラダイムも使用できます。オブジェクトへの変更を追跡する組織サービス コンテキストや、Microsoft Dynamics 365 からデータを取得する .NET 統合言語クエリ (LINQ) クエリのサポートなどです。 詳細については、「コードでの事前バインド型エンティティ クラスの使用」を参照してください。

  • 遅延バインド – このプログラミング パラダイムを使用すると、まだ定義されていないエンティティにアクセスするコードを作成できます。 たとえば、カスタマイズされているかどうかに関係なく、すべての Microsoft Dynamics 365 システムで機能するカスタム検索ユーティリティを作成できます。 詳細については、「コードでの遅延バインドされたエンティティ クラスの使用」を参照してください。 このパラダイムは、必要なエンティティを特定の種類に限定しない汎用的な方法でコードを作成することも可能にします。

  • REST – AJAX および Microsoft Silverlight クライアントの REST エンドポイントは、Microsoft Dynamics 365 データを操作するために使用できる代替インターフェイスを提供します。SOAP ベース Web サービスを直接呼び出すのではなく、URI に基づくサービスを使用して要求を実行できます。 詳細については、「Web リソースで OData エンドポイントを使用する」を参照してください。

  • WSDL – 非 .NET クライアントでコードを開発できるプログラミング パラダイムであり、Microsoft Dynamics 365 アセンブリの使用には依存しません。 たとえば、このプログラミング モデルを使用して、Microsoft Dynamics 365 向けのコードを Java で書くことができます。 詳細については、「Java および他の非 .NET クライアント アプリケーションを作成する」を参照してください。

事前バインドと遅延バインドによるプログラム

Microsoft Dynamics 365 では、ニーズに最適なモデルを見つけるために、複数のプログラミング シナリオから選択することができます。

Microsoft .NET Framework の Microsoft Dynamics 365 のメイン開発シナリオでは、事前バインド型と遅延バインド型の両方で Microsoft Dynamics 365 システムを接続できる 2 つのアセンブリを参照します。 このシナリオは、遅延バインドまたは "厳密に型指定されない" と表現できます。 遅延バインドの種類を使用する場合は、Entity クラスを使用します。 このクラスは、属性値の取得と設定に使用できる属性のコレクションを定義します。 このモデルを使用する場合は、正確な論理名を確認し、文字列として指定する必要があります。

または、メタデータから直接生成される事前バインド クラスを使用できます。このクラスにはすべてのカスタマイズが含まれます。 生成されるクラスは、カスタム コードの作成を容易にする事前バインドと IntelliSense を提供します。 詳細については、「コード生成ツール (CrmSvcUtil.exe) を使用して事前バインド型エンティティ クラスを作成する」を参照してください。

エンティティ クラス構造は、以下のようになります。

CRM 2011 のエンティティ クラス階層

DynamicEntity クラスは、基本クラス Entity に置き換えられました。 つまり、すべての型はビルド時と実行時に発見可能であり、すべての厳密に型指定されたエンティティを、厳密に型指定されないエンティティにすることができます。 次の例に示すように、両方のプログラミング シナリオを同じコードで使用できます。

Account entity = new Account();
entity["name"] = "My Account"; //loosely typed, late binding
entity.AccountNumber = "1234"; //strongly typed, early binding

Microsoft Dynamics CRM SDK ドキュメントには、両方のプログラミング シナリオを使用するサンプルが含まれています。 事前バインドのサンプルでは、Microsoft Dynamics 365 のカスタマイズされていない新しいインストール構成に付属するコード生成ユーティリティによって生成される、厳密に型指定されたクラスのファイルを使用します。 このサンプルを実行するには、厳密に型指定されたクラスのファイルをローカル システムで生成する必要があります。 生成されたコード ファイルからプロキシ アセンブリを作成する方法と、このサンプルで採用したように、このコード ファイルをプロジェクトに直接追加する方法のどちらかを選択できます。 開発スタイルの選択の詳細については、「マネージド コードの開発スタイルを選択する」を参照してください。

関連項目

開発者向けの概要
サポートされる Microsoft Dynamics CRM 2015 の拡張機能
Microsoft Dynamics CRM 2015 SDK に含まれるアセンブリ
エンティティおよび属性の命名規則
Microsoft Dynamics CRM 2015 のエンティティの概要
Microsoft Dynamics CRM 2015 のエンティティ属性の概要

© 2017 Microsoft. All rights reserved. 著作権