アプリを Dataverse ServiceClient に移行する

Microsoftは、Microsoft Dataverse SDK for .NETから、認証に Microsoft Authentication Library (MSAL) を使用する新しい Web サービス クライアントに移行しています。 この記事では、Microsoftがこれらの変更を行う理由、影響を受ける内容、およびクライアント アプリケーションが引き続き期待どおりに機能するようにクライアント アプリケーションを更新する方法について説明します。

ヒント

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

なぜ変更したのか?

Dataverse SDK for .NETの変更は、いくつかの理由で正当化されます。 次のセクションでは、いくつかの理由について説明します。

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

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

MSAL 認証

Microsoft Azure Active Directory 認証ライブラリ (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 を呼び出すコードを追加してビルドします。

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

(サンドボックス内の) Event Framework で .NET Framework 4.8 ビルド コードがサポートされたので、既存のプラグインとカスタム ワークフロー アクティビティを再構築して、そのフレームワークをターゲットにします。 ただし、Dataverse は引き続き .NET Framework のレガシ バージョン (4.6.2、4.7、4.7.x) をサポートしているため、現時点ではカスタム コード ビルド ターゲットをこれらのレガシ バージョンに設定したままにすることもできます。

Microsoft.CrmSdk.CoreAssemblies(および関連する)NuGet パッケージを引き続き使用してください。

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

アプリケーション プロジェクトとコードはそのままにしておきます。 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は、アプリケーションが実行時に読み込む必要がある変更されたサービス クライアントを含む更新されたアセンブリを解放する可能性があります。

参照

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