

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

Siga estos pasos para ejecutar el ejemplo de .NET en su instancia de Amazon EC2.

**nota**  
En este tutorial se utiliza el SDK de .NET 9. Muestra cómo puede ejecutar un programa en su Amazon VPC predeterminada para acceder a su clúster de Amazon DynamoDB Accelerator (DAX). Funciona con el [AWS SDK v4 para .NET](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obtener detalles sobre los cambios en V4 e información sobre la migración, consulte [Migración a la versión 4 del AWS SDK para .NET](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html). Si lo prefiere, puede utilizar AWS Toolkit for Visual Studio para escribir una aplicación .NET e implementarla en su VPC.  
Para obtener más información, consulte [Creación y desarrollo de las aplicaciones de Elastic Beanstalk en .NET utilizando Toolkit for Visual Studio de AWS](https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/create_deploy_NET.html) en la *Guía para desarrolladores de AWS Elastic Beanstalk*.

**Para ejecutar el ejemplo de .NET para DAX**

1. Vaya a la [página de descargas de Microsoft](https://www.microsoft.com/net/download?initial-os=linux) y descargue el SDK de .NET 9 para Linux más reciente. El archivo descargable es `dotnet-sdk-N.N.N-linux-x64.tar.gz`.

1. Extraiga los archivos del SDK.

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

   Sustituya `N.N.N` por el número de versión real del SDK de .NET (por ejemplo: `9.0.305`).

1. Verifica la instalación.

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

   Esto debería imprimir el número de versión del SDK de .NET.
**nota**  
En lugar del número de versión, podría recibir el error siguiente:  
error: libunwind.so.8: cannot open shared object file: No such file or directory  
Para resolver el error, instale el paquete `libunwind`.  

   ```
   sudo yum install -y libunwind
   ```
Después de esto, debería poder ejecutar el comando `dotnet --version` sin errores.

1. Creación de un nuevo proyecto de .NET.

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

   Esto requiere algunos minutos para llevar a cabo una configuración solo una vez. Cuando se complete, ejecute el proyecto de ejemplo.

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

   Debería recibir el siguiente mensaje: `Hello World!`

1. El archivo `myApp/myApp.csproj` contiene metadatos acerca de su proyecto. Para utilizar el cliente de DAX en su aplicación, modifique el archivo para que tenga un aspecto similar a lo siguiente.

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

1. Descargue el código fuente del programa de ejemplo (archivo `.zip`).

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

   Cuando haya terminado la descarga, extraiga los archivos de código fuente.

   ```
   unzip TryDax.zip
   ```

1. Ahora ejecute los programas de ejemplo de *dotNet*, uno cada vez. Para cada programa, copie su contenido en `myApp/Program.cs` y, a continuación, ejecute el proyecto `MyApp`.

   Ejecute los siguientes programas de .NET. El primer programa crea una tabla de DynamoDB denominada `TryDaxTable`. El segundo programa escribe datos en la tabla.

   ```
   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. A continuación, ejecute algunos programas para llevar a cabo operaciones `GetItem`, `Query` y `Scan` en su clúster de DAX. Para determinar el punto de enlace del clúster de DAX, elija una de las opciones siguientes:
   +  **En la consola de DynamoDB**: elija su clúster de DAX. El punto de enlace del clúster se muestra en la consola, como en el siguiente ejemplo.

     ```
     dax://my-cluster.l6fzcv.dax-clusters.us-east-1.amazonaws.com
     ```
   + **En la AWS CLI**: ingrese el siguiente comando.

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

     El punto de enlace del clúster se muestra en el resultado, como en el siguiente ejemplo.

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

   Ahora, ejecute los programas siguientes, especificando el punto de enlace del clúster como parámetro en la línea de comandos. (Reemplace el punto de enlace del ejemplo por el punto de enlace de clúster de 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
   ```

   Tome nota de la información de tiempo; es decir, del número de milisegundos necesarios para realizar las pruebas de `GetItem`, `Query` y `Scan`.

1. Ejecute el siguiente programa de .NET para eliminar `TryDaxTable`.

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

Para obtener más información sobre estos programas, consulte las siguientes secciones:
+ [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)