

# .NET および DAX
<a name="DAX.client.run-application-dotnet"></a>

次のステップに従って、Amazon EC2 インスタンスで .NET サンプルを実行します。

**注記**  
このチュートリアルでは .NET 9 SDK を使用します。ここでは、デフォルト Amazon VPC のプログラムを実行して、Amazon DynamoDB Accelerator (DAX) クラスターにアクセスする方法を示しています。[AWS SDK v4 for .NET](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html) で動作します。V4 の変更と移行に関する詳細については、「[AWS SDK for .NET のバージョン 4 への移行](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html)」を参照してください。必要に応じて、AWS Toolkit for Visual Studio を使用して .NET アプリケーションを記述し、VPC 内にデプロイできます。  
詳細については、「*AWS Elastic Beanstalk デベロッパーガイド*」の「[AWS Toolkit for Visual Studio を使用した .NET での Elastic Beanstalk アプリケーションの作成とデプロイ](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html)」を参照してください。

**DAX の .NET サンプルを実行するには**

1. [Microsoft ダウンロードページ](https://www.microsoft.com/net/download?initial-os=linux) にアクセスし、最新の .NET 9 SDK for Linux をダウンロードします。ダウンロードされたファイルは、`dotnet-sdk-N.N.N-linux-x64.tar.gz` です。

1. SDK ファイルを展開します。

   ```
   mkdir dotnet
   tar zxvf dotnet-sdk-N.N.N-linux-x64.tar.gz -C dotnet
   ```

   `N.N.N` を .NET SDK の実際のバージョン番号 (例: `9.0.305`) で置き換えます。

1. インストールを確認します。

   ```
   alias dotnet=$HOME/dotnet/dotnet
   dotnet --version
   ```

   これにより、.NET SDK のバージョン番号が表示されます。
**注記**  
バージョン番号ではなく、以下のエラーが表示される場合があります。  
error: libunwind.so.8: 共有オブジェクトファイルを開けません: そのようなファイルまたはディレクトリは存在しません  
このエラーを解決するには、`libunwind` パッケージをインストールします。  

   ```
   sudo yum install -y libunwind
   ```
この操作を行うと、`dotnet --version` コマンドがエラーなしで実行されます。

1. 新しい .NET プロジェクトを作成します。

   ```
   dotnet new console -o myApp 
   ```

   この 1 回限りの設定には数分かかります。設定が完了したら、サンプルプロジェクトを実行します。

   ```
   dotnet run --project myApp
   ```

   `Hello World!` というメッセージが表示されます。

1. `myApp/myApp.csproj` ファイルにはプロジェクトに関するメタデータが含まれています。アプリケーションで DAX クライアントを使用するには、このファイルを次のように変更します。

   ```
   <Project Sdk="Microsoft.NET.Sdk">
       <PropertyGroup>
           <OutputType>Exe</OutputType>
           <TargetFramework>net9.0</TargetFramework>
       </PropertyGroup>
       <ItemGroup>
           <PackageReference Include="AWSSDK.DAX.Client" Version="*" />
       </ItemGroup>
   </Project>
   ```

1. サンプルプログラムソースコード (`.zip` ファイル) をダウンロードします。

   ```
   wget http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/samples/TryDax.zip
   ```

   ダウンロードが完了したら、ソースファイルを解凍します。

   ```
   unzip TryDax.zip
   ```

1. 次に、サンプルプログラム「*dotNet*」を一度に 1 つずつ実行します。プログラムごとにそのコンテンツを `myApp/Program.cs` 内にコピーし、`MyApp` プロジェクトを実行します。

   以下の .NET プログラムを実行します。最初のプログラムは、`TryDaxTable` という DynamoDB テーブルを作成します。2 番目のプログラムは、テーブルにデータを書き込みます。

   ```
   cp TryDax/dotNet/01-CreateTable.cs myApp/Program.cs
   dotnet run --project myApp
   
   cp TryDax/dotNet/02-Write-Data.cs myApp/Program.cs
   dotnet run --project myApp
   ```

1. 次に、いくつかのプログラムを実行し、`GetItem`、`Query`、および `Scan` の各オペレーションを DAX クラスターに対して実行します。DAX クラスターのエンドポイントを確認するには、次のいずれかを選択します。
   +  **DynamoDB コンソールの使用** — DAX クラスターを選択します。次の例のように、クラスターエンドポイントがコンソールに表示されます。

     ```
     dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
     ```
   + **AWS CLI の使用** — 次のコマンドを入力します。

     ```
     aws dax describe-clusters --query "Clusters[*].ClusterDiscoveryEndpoint"
     ```

     次の例のように、クラスターエンドポイントが出力に表示されます。

     ```
     {
         "Address": "my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com",
         "Port": 8111,
         "URL": "dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com"
     }
     ```

   次に、以下のプログラムを実行し、クラスターエンドポイントをコマンドラインパラメータとして指定します (サンプルのエンドポイントを実際の DAX クラスターエンドポイントに置き換えてください)。

   ```
   cp TryDax/dotNet/03-GetItem-Test.cs myApp/Program.cs
   dotnet run --project myApp dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
   
   cp TryDax/dotNet/04-Query-Test.cs myApp/Program.cs
   dotnet run --project myApp dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
                           
   cp TryDax/dotNet/05-Scan-Test.cs myApp/Program.cs
   dotnet run --project myApp dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
   ```

   タイミング情報を書き留めます。これは `GetItem`、`Query`、`Scan` テストに必要なミリ秒の数字です。

1. 次の .NET プログラムを実行し、`TryDaxTable` を削除します。

   ```
   cp TryDax/dotNet/06-DeleteTable.cs myApp/Program.cs
   dotnet run --project myApp
   ```

これらのプログラムの詳細については、以下のセクションを参照してください。
+ [01-CreateTable.cs](DAX.client.run-application-dotnet.01-CreateTable.md)
+ [02-Write-Data.cs](DAX.client.run-application-dotnet.02-Write-Data.md)
+ [03-GetItem-Test.cs](DAX.client.run-application-dotnet.03-GetItem-Test.md)
+ [04-Query-Test.cs](DAX.client.run-application-dotnet.04-Query-Test.md)
+ [05-Scan-Test.cs](DAX.client.run-application-dotnet.05-Scan-Test.md)
+ [06-DeleteTable.cs](DAX.client.run-application-dotnet.06-DeleteTable.md)