アプリを Dataverse ServiceClient に移行する

.NET 用 Microsoft Dataverse SDK から移行し、認証に Microsoft Authentication Library (MSAL) を使用する新しい Web サービス クライアントを搭載しています。 この記事には、これらの変更を加える理由、与える影響、およびクライアント アプリケーションが期待通りに機能し続けるための更新方法を理解するのに必要な情報が含まれています。

注意

既存の開発者向けドキュメントとサンプル コードの中には、CoreAssemblies NuGet パッケージにある Dataverse SDK API を使用しているものもあります。 この記事では、より新しく推奨される Dataverse.Client NuGet パッケージとそれを利用するために必要な変更について説明しています。 ドキュメントとサンプル コードへの更新は、時間の経過とともに行われています。

なぜ変更したのか?

.NET 用 Dataverse SDK の変更には、かなり多くの理由があります。 そのいくつかを以下に紹介します。

クロスプラットフォームのアプリケーション サポート

新しい Dataverse ServiceClient クラスは .NET コア開発をサポートします。 Microsoft.PowerPlatform.Dataverse.Client へ移動し、フレームワーク タブを選択すると、サポートされているビルド ターゲットを確認できます。

MSAL 認証

Microsoft Azure Active Directory Authentication Library (ADAL.NET) はサポートを受けていません。 Microsoft Authentication Library (MSAL.NET) は、今後推奨される認証 API です。 新しい ServiceClient API は MSAL を使用するのに対して、古い CrmServiceClient API は ADAL を使用します。

パフォーマンスと機能上の利点

Dataverse ServiceClient クラスは、より小さなインターフェイス サーフェス、インスタンスによるインライン認証、および Microsoft.Extensions.Logging.ILogger をサポートします。 インライン認証に関しては、ServiceClient コンストラクターにカスタム認証ハンドラー関数を渡すことができます。 このようにして、プロセスごとに 1 つだけではなく、Web サービス接続ごとに 1 つの認証ハンドラーを持つことができます。

与える影響は?

以下は、特定の種類のコーディング プロジェクトに対する影響を簡単にまとめたものです。

  • プラグインまたはカスタム ワークフロー活動 - 変更なし

  • 新規または既存のオンライン アプリケーション - この記事は役立ちます

  • オンプレミス アプリケーション - この記事は将来役立ちます

何をする必要があるか?

ServiceClientCrmServiceClient のクラス メンバー署名が、クラス名自体がわずかに異なることを除いて、同じであるのは良いニュースです。 アプリケーション コードには大きな変更を加える必要はありません。

.NET Framework ベースの (オンライン) アプリケーション プロジェクト

以下の手順でアプリケーション プロジェクトを更新します。

  1. 古い CoreAssemblies (および関連する) NuGet パッケージをプロジェクトから削除します。
  2. 新しい Dataverse.Client NuGet パッケージをプロジェクトに追加します。
  3. コード内の CrmServiceClient クラスのすべての言及を ServiceClient に変更します。
  4. 現在新しい ServiceClient クラスが Microsoft.PowerPlatform.Dataverse.Client 名前空間にあるため、名前空間の不一致を修正します。

.NET コア ベースの (オンライン) プロジェクト

Dataverse.Client NuGet パッケージをプロジェクトに追加し、Dataverse SDK API を呼び出すコードを追加し、構築するだけです。

プラグインまたはカスタム ワークフロー活動

ここで特にできることは何もありません。 Microsoft.CrmSdk.CoreAssemblies (および関連する) NuGet パッケージを .NET Framework 4.6.2 で引き続き使用することができます。

オンプレミス クライアント

アプリケーション プロジェクトとコードはそのままにしておきます。 Microsoft.CrmSdk.CoreAssemblies NuGet パッケージおよび CrmServiceClient クラスを引き続き使用することができます。 ただし、近い将来、カスタム サービス クライアントをを使用しているプロジェクトを更新し、代わりに CrmServiceClient または ServiceClient を使用するよう計画してください。 2011 SOAP エンドポイントのシャットダウンの計画タイムラインは以下のとおりです。

注意

CrmServiceClient でカスタム認証を使用している場合、ServiceClient でカスタム認証コードを引き続き使用できます。

コード サンプル

こちらから入手できます: ServiceClient コード サンプル

タイムライン

次のテーブルに、覚えておくべき重要な日付を一覧表示します。

時間枠 イベント
2022 年 6 月 Microsoft.PowerPlatform.Dataverse.Client NuGet パッケージの GA リリース
2022 年 12 月 Microsoft による ADAL サポートの終了
今後の予定 サービス クライアント (CrmServiceClient または ServiceClient) を使用していないクライアント アプリケーションによるアクセスのための 2011 SOAP エンドポイントの計画的なシャットダウン

重要

CrmServiceClient クラスは、ADAL 認証がオフになった後でも、記載されているとおりに引き続き機能します。 両方のサービス クライアント クラスは、2011 SOAP エンドポイントがオフになった後も、記載されているとおりに引き続き機能します。 必要に応じて、アプリケーションが実行時に読み込む必要がある変更されたサービス クライアントを含む更新されたアセンブリをリリースすることがあります。

参照

Microsoft Authentication Library (MSAL) の概要
アプリケーションを Microsoft Authentication Library (MSAL) に移行する

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。