

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

遵循下列步驟，在 Amazon EC2 執行個體上執行 .NET 範例。

**注意**  
本教學課程使用 .NET 9 開發套件。本教學課程示範如何在預設的 Amazon VPC 中執行程式來存取 Amazon DynamoDB Accelerator (DAX) 叢集。它適用於[AWS 適用於 .NET 的 SDK v4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html)。如需 V4 變更的詳細資訊，以及遷移的相關資訊，請參閱[遷移至適用於 .NET 的 AWS SDK 第 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)並下載適用於 Linux 的最新 .NET 9 開發套件。下載的檔案為 `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 的版本號碼。
**注意**  
您可能會收到以下錯誤 (而不是版本號碼)：  
錯誤：libunwind.so.8：無法開啟共享物件檔案：找不到檔案或目錄  
若要解決錯誤，請安裝 `libunwind` 套件。  

   ```
   sudo yum install -y libunwind
   ```
在執行此作業後，您應該能夠執行 `dotnet --version` 命令，而不會發生任何錯誤。

1. 建立新的 .NET 專案。

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

   需要花費幾分鐘來執行一次性設定。完成時，請執行範例專案。

   ```
   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* 的範例程式，一次一個。針對每一個程式，將其內容複製到 `myApp/Program.cs`，然後執行 `MyApp` 專案。

   執行以下 .NET 程式。第一個程式會建立名為 `TryDaxTable` 的 DynamoDB 資料表。第二個程式會將資料寫入資料表。

   ```
   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. 接下來，請執行一些程式，以在您的 DAX 叢集上執行 `GetItem`、`Query` 和 `Scan` 操作。若要判斷您 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)