クイックスタート: .NET 用 SDK 要求を実行する (C#)

このトピックでは、.NET 用 SDK アセンブリでクラスを使用して Microsoft Dataverse ビジネス データの操作を始める方法を説明します。 環境の組織サービスに接続するための最小限のコンソール アプリケーションを作成し、ServiceClient クラスを使用して Webサービス操作を実行します。

このアプリケーションは、WhoAmIRequest クラスのインスタンスを渡し、IOrganizationService.Execute メソッド を呼び出します。 Web サービスから返される結果には、Dataverse システム ユーザー アカウントの一意識別子である WhoAmIResponse.UserId 値が設定されています。

注意

このクイック スタートの例には、簡潔にするために実行の処理は含まれません。 これは、.NET 用 SDK に接続して使用するための最小のコードです。

完全なコード サンプルは、GitHub の GetStarted から入手できます。 詳細については、プログラムの README を参照してください。

前提条件

  • Visual Studio (2022 以降)
  • インターネット接続
  • ターゲット環境の Dataverse システム ユーザー アカウントのログオン資格情報
  • 接続先の Dataverse 環境の URL アドレス
  • Visual C# 言語の基本的な理解

Visual Studio プロジェクトの作成

  1. 新しい .NET コンソール アプリ プロジェクトを作成します。 このプロジェクトでは Visual Studio 2022 を使用しており、対象は .NET 6 です。

    コンソール アプリ プロジェクトを開始する。

  2. Solution Explorer で、作成したプロジェクトを右クリックして、コンテキスト メニューで NuGet パッケージの管理... を選択します。

    NuGet パッケージを追加する。

  3. Microsoft.PowerPlatform.Dataverse.Client NuGet パッケージの最新バージョンを 参照 して、それをインストールします。

    Microsoft.PowerPlatform.Dataverse.Client NuGet パッケージをインストールします。

注意

プレビューの変更に OK するように求められますので、ライセンスの承認 ダイアログで 同意する を選択します。

アプリケーション コードを選択します

  1. ソリューション エクスプローラーで Program.cs をダブルクリックして、そのファイルを編集します。 ファイルの内容を以下に示すコードに置き換えます。

    using Microsoft.Crm.Sdk.Messages;
    using Microsoft.PowerPlatform.Dataverse.Client;
    using Microsoft.Xrm.Sdk;
    
    class Program
    {
       // TODO Enter your Dataverse environment's URL and logon info.
       static string url = "https://yourorg.crm.dynamics.com";
       static string userName = "you@yourorg.onmicrosoft.com";
       static string password = "yourPassword";
    
       // This service connection string uses the info provided above.
       // The AppId and RedirectUri are provided for sample code testing.
       static string connectionString = $@"
       AuthType = OAuth;
       Url = {url};
       UserName = {userName};
       Password = {password};
       AppId = 51f81489-12ee-4a9e-aaae-a2591f45987d;
       RedirectUri = app://58145B91-0C36-4500-8554-080854F2AC97;
       LoginPrompt=Auto;
       RequireNewInstance = True";
    
       static void Main()
       {
          //ServiceClient implements IOrganizationService interface
          IOrganizationService service = new ServiceClient(connectionString);
    
          var response = (WhoAmIResponse)service.Execute(new WhoAmIRequest());
    
          Console.WriteLine($"User ID is {response.UserId}.");
    
    
          // Pause the console so it does not close.
          Console.WriteLine("Press the <Enter> key to exit.");
          Console.ReadLine();
       }
    }
    
  2. // TODO コードのコメントに示されているように、urluserNamepassword の値を変更します。

    注意

    環境 URLは、レガシ Web アプリケーションの 設定 > カスタマイズ > 開発者リソース または Power Apps の 設定 (歯車のアイコン) >開発者リソース にあります。

    わかりやすくするために、このコード サンプルでは、ユーザー名とパスワードの情報をコードに配置していますが、他のコード サンプルでは、その情報のプロンプトを表示するか、別の App.config ファイルまたは appsettings.json ファイルに保存するという、より推奨される方法を使用します。

    AuthType でサポートされる値の一覧は、接続文字列のパラメーターにあります。

プログラムを実行する

F5 キーを押してプログラムを実行します。 出力は次のようになります。

User ID is 969effb0-98ae-478c-b547-53a2968c2e75
Press any key to exit.

IOrganizationService インターフェイス メソッドを使用する

注意: このプログラムが使用する Dataverse.Client.ServiceClient には、Execute メソッド を含む IOrganizationService インターフェイス が実装されています。

より深く IOrganizationService インターフェイスを理解するためには、次をお試しください。

  1. WhoAmIRequest クラス の参考記事に移動します。

  2. その記事からサンプル メソッドをコピーします。 次のようになります。

    /// <summary>
    /// Outputs the data returned from the WhoAmI message
    /// </summary>
    /// <param name="service">Authenticated client implementing the IOrganizationService interface</param>
    static void WhoAmIExample(IOrganizationService service) {
    
       var response = (WhoAmIResponse)service.Execute(new WhoAmIRequest());
    
       Console.WriteLine($"OrganizationId:{response.OrganizationId}");
       Console.WriteLine($"BusinessUnitId:{response.BusinessUnitId}");
       Console.WriteLine($"UserId:{response.UserId}");
    
    }
    

    注意: これは IOrganizationService サービス インスタンスをパラメーターとして受け入れます。

  3. この WhoAmIExample メソッドを、プログラムの Main メソッドの下に貼り付けます

  4. このプログラムの Main メソッドを、以下と置き換えます。

        static void Main()
     {
         //ServiceClient implements IOrganizationService interface
         IOrganizationService service = new ServiceClient(connectionString);
    
         WhoAmIExample(service: service);
    
         // Pause the console so it does not close.
         Console.WriteLine("Press the <Enter> key to exit.");
         Console.ReadLine();
     }
    
  5. このサンプルを再実行すると、次のように表示されるはずです。

    OrganizationId:883278f5-07af-45eb-a0bc-3fea67caa544
    BusinessUnitId:38e0dbe4-131b-e111-ba7e-78e7d1620f5e
    UserId:4026be43-6b69-e111-8f65-78e7d1620f5e
    Press the <Enter> key to exit.
    

次のステップ

これで、Dataverse に接続する単純なコンソール プログラムが完成しました。このプロジェクトを使用して、他のメソッドやメッセージをお試しください。 このクイック スタート コンソール アプリケーション プロジェクトを使用して、アドホック テストを実施できます。

他の IOrganizationService インターフェイス メソッドを試す

ヒント

用意されたドキュメントでは、IOrganizationService service パラメーターを受け入れる、この WhoAmIExample のようなメソッドの例が多数解説されています。

これらの IOrganizationService methods メソッドの例を試してください。

その他のメッセージを試す

Execute method を使用して呼び出せる他のメッセージは、次の名前空間で見つけることができます。

レコード データの操作方法について説明します

Dataverse テーブルが含むビジネス データの操作方法について、次の記事で説明します。

サンプル コードを探索する

.NET 用 SDK のサンプル コードは、Microsoft の GitHub リポジトリ PowerApps-Samples/dataverse/orgsvc に用意されています。

ServiceClient 拡張機能を使用する

IOrganizationService インターフェイス の実装に加えて、ServiceClient は、IOrganizationService によって定義されたコア メソッドを超える拡張メソッドと、ILogger によるログを有効化する機能を提供します。 ServiceClient の使用に関する詳細情報

注意

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

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