次の方法で共有


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

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

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

注意

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

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

前提条件

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

アプリケーション コードでの接続文字列またはユーザー名/パスワード認証の使用については、次の重要な情報をお読みください。

重要

Microsoft では、利用可能な最も安全な認証フローを使用することをお勧めします。 この記事で説明する認証フローは、アプリケーションに対する非常に高い信頼を必要とし、他のフローには存在しないリスクを伴います。 このフローは、マネージド ID など、他のより安全なフローが実行できない場合にのみ使用してください。

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 00aa00aa-bb11-cc22-dd33-44ee44ee44ee
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:00aa00aa-bb11-cc22-dd33-44ee44ee44ee
    BusinessUnitId:11bb11bb-cc22-dd33-ee44-55ff55ff55ff
    UserId:22cc22cc-dd33-ee44-ff55-66aa66aa66aa
    Press the <Enter> key to exit.
    

次のステップ

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

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

チップ

ドキュメントには、この WhoAmIExample のように IOrganizationService service のパラメーターを受け付けるメソッドのサンプルが多くあります。

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

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

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

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

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

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

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

ServiceClient 拡張機能を使用する

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