

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

Siga estas etapas para executar o exemplo .NET na sua instância do Amazon EC2.

**nota**  
Este tutorial usa o SDK do .NET 9. Ele mostra como você pode executar um programa na sua Amazon VPC padrão para acessar seu cluster do Amazon DynamoDB Accelerator (DAX). Ele funciona com o [AWS SDK v4 para .NET](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para acessar detalhes sobre as mudanças na V4 e informações sobre a migração, consulte [Migrar para a versão 4 do AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html). Se você preferir, pode usar o AWS Toolkit for Visual Studio para escrever um aplicativo .NET e implantá-lo em sua VPC.  
Para obter mais informações, consulte [Criação e implantação de aplicações do Elastic Beanstalk no .NET usando o AWS Toolkit for Visual Studio](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html) no *Guia do desenvolvedor do AWS Elastic Beanstalk*.

**Como executar o exemplo do .NET para o DAX**

1. Acesse a [página Downloads da Microsoft](https://www.microsoft.com/net/download?initial-os=linux) e baixe o SDK do .NET 9 para Linux mais recente. O arquivo obtido por download é o `dotnet-sdk-N.N.N-linux-x64.tar.gz`.

1. Extraia os arquivos do SDK.

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

   Substitua `N.N.N` pelo número de versão real do SDK do .NET (por exemplo: `9.0.305`).

1. Verifique a instalação.

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

   Isso deve imprimir o número da versão do SDK .NET.
**nota**  
Em vez de obter o número da versão, é possível que você receba o seguinte erro:  
erro: libunwind.so.8: não é possível abrir o arquivo do objeto compartilhado: o arquivo ou diretório não existe  
Para resolver o erro, instale o pacote `libunwind`.  

   ```
   sudo yum install -y libunwind
   ```
Depois disso, você deve conseguir executar o comando `dotnet --version` sem nenhum erro.

1. Crie um novo projeto .NET.

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

   Ele levará alguns minutos executando uma configuração isolada. Ao concluir, execute o projeto de exemplo.

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

   Você deverá receber a seguinte mensagem: `Hello World!`

1. O arquivo `myApp/myApp.csproj` contém os metadados do projeto. Para usar o cliente do DAX em sua aplicação, modifique o arquivo para que seja semelhante ao seguinte.

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

1. Baixe o código-fonte do programa de exemplo (arquivo `.zip`).

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

   Quando o download for concluído, extraia os arquivos de origem.

   ```
   unzip TryDax.zip
   ```

1. Agora, execute os programas de exemplo de *dotNet*, um por vez. Para cada programa, você copiará seu conteúdo em `myApp/Program.cs` e, seguida, executará o projeto `MyApp`.

   Execute os seguintes programas .NET. O primeiro programa cria uma tabela do DynamoDB chamada `TryDaxTable`. O segundo programa grava dados na tabela.

   ```
   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. Depois, execute alguns programas para executar as operações `GetItem`, `Query` e `Scan` no cluster do DAX. Para determinar o endpoint do cluster do DAX, escolha uma das seguintes opções:
   +  **Usando o console do DynamoDB**: escolha seu cluster do DAX. O endpoint do cluster é mostrado no console, como no exemplo a seguir.

     ```
     dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
     ```
   + **Usando a AWS CLI**: insira o comando a seguir.

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

     O endpoint do cluster é mostrado na saída, como no exemplo a seguir.

     ```
     {
         "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"
     }
     ```

   Agora execute os seguintes programas, especificando o endpoint do cluster como um parâmetro de linha de comando. (Substitua o endpoint de exemplo pelo endpoint do seu cluster do DAX real.)

   ```
   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
   ```

   Anote as informações de tempo: o número de milissegundos necessários para os testes `GetItem`, `Query` e `Scan`.

1. Execute o seguinte programa .NET para excluir a `TryDaxTable`.

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

Para obter mais informações sobre esses programas, consulte as seguintes seções:
+ [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)