

La AWS SDK para .NET V3 ha entrado en modo de mantenimiento.

Le recomendamos que migre a la [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obtener información y detalles adicionales sobre cómo migrar, consulta nuestro [anuncio sobre el modo de mantenimiento](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Migración a la versión 3.5 de AWS SDK para .NET
<a name="net-dg-v35"></a>

La versión 3.5 de AWS SDK para .NET estandariza aún más la experiencia con .NET mediante la transición del soporte para todas las variaciones del SDK que no sean de Framework a [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard). En función del entorno y la base de código, para aprovechar las características de la versión 3.5, es posible que necesite realizar determinados trabajos de migración.

En este tema se describen los cambios en la versión 3.5 y el posible trabajo que debe realizar para migrar el entorno o el código desde la versión 3.

## ¿Qué ha cambiado en la versión 3.5?
<a name="net-dg-v35-changes"></a>

A continuación se describe lo que ha cambiado o no en la versión 3.5 de AWS SDK para .NET.

### .NET Framework y .NET Core
<a name="net-dg-v35-changes-dotnet"></a>

La compatibilidad para .NET Framework y .NET Core no ha cambiado.

### Xamarin
<a name="net-dg-v35-changes-xamarin"></a>

Los proyectos de Xamarin (nuevos y existentes) deben dirigirse a .NET Standard 2.0. Consulte [Compatibilidad de .NET Standard 2.0 en Xamarin.Forms](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/internals/net-standard) y [Compatibilidad con implementaciones de .NET](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support).

### Unity
<a name="net-dg-v35-changes-unity"></a>

Las aplicaciones de Unity deben dirigirse a perfiles de .NET Standard 2.0 o .NET 4.x con Unity 2018.1 o una versión posterior. Para obtener más información, consulte [Compatibilidad con perfiles de .NET](https://docs.unity3d.com/2020.1/Documentation/Manual/dotnetProfileSupport.html). Además, si utiliza **IL2CPP** para compilar, debe deshabilitar la extracción de código agregando un archivo *link.xml*, como se describe en [Referencing the AWS SDK para .NET Standard 2.0 from Unity, Xamarin, or UWP](https://aws.amazon.com/blogs/developer/referencing-the-aws-sdk-for-net-standard-2-0-from-unity-xamarin-or-uwp). Después de portar el código a una de las bases de código recomendadas, la aplicación Unity puede acceder a todos los servicios ofrecidos por el SDK.

Dado que Unity es compatible con .NET Standard 2.0, el paquete **AWSSDK.Core** del SDK versión 3.5 ya no tiene código específico de Unity, incluidas algunas funcionalidades de nivel superior. Para proporcionar una mejor transición, todo el código de Unity ***heredado*** está disponible como referencia en el repositorio de GitHub [aws/aws-sdk-unity-net](https://github.com/aws/aws-sdk-unity-net). Si ve que falta alguna funcionalidad que afecta al uso de AWS con Unity, puede presentar una solicitud de característica en [https://github.com/aws/dotnet/issues](https://github.com/aws/dotnet/issues).

Consulte también [Consideraciones especiales sobre la compatibilidad con Unity](unity-special.md).

### Plataforma universal de Windows
<a name="net-dg-v35-changes-uwp"></a>

Dirija su aplicación UWP a la [versión 16299 o posterior](https://docs.microsoft.com/en-us/windows/uwp/updates-and-versions/choose-a-uwp-version) (actualización de Fall Creators, versión 1709, publicada en octubre de 2017).

### Windows Phone y Silverlight
<a name="net-dg-v35-changes-phone-silverlight"></a>

La versión 3.5 de AWS SDK para .NET no admite estas plataformas porque Microsoft ya no las está desarrollando activamente. Para obtener más información, consulte los siguientes temas:
+ [Fin del soporte para Windows 10 Mobile](https://support.microsoft.com/en-us/help/4485197/windows-10-mobile-end-of-support-faq)
+ [Fin del soporte de Silverlight](https://support.microsoft.com/en-us/help/4511036/silverlight-end-of-support)

### Bibliotecas de clases portátiles heredadas (PCL basadas en perfiles)
<a name="net-dg-v35-changes-pcl"></a>

Considere redirigir su biblioteca a .NET Standard. Para obtener más información, consulte [Comparación con bibliotecas de clases portátiles](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#comparison-to-portable-class-libraries) de Microsoft.

### Amazon Cognito Sync Manager y Amazon Mobile Analytics Manager
<a name="net-dg-v35-changes-cog-ma"></a>

Las abstracciones generales que facilitan el uso de Amazon Cognito Sync y Amazon Mobile Analytics se han eliminado de la versión 3.5 de AWS SDK para .NET. AWS AppSync es el reemplazo de Amazon Cognito Sync que se prefiere. Amazon Pinpoint es el reemplazo de Amazon Mobile Analytics que se prefiere.

Si el código se ve afectado por la falta de código de biblioteca de nivel superior para AWS AppSync y Amazon Pinpoint, puede registrar su interés en uno (o ambos) de los siguientes problemas de GitHub: [https://github.com/aws/dotnet/issues/20](https://github.com/aws/dotnet/issues/20) y [https://github.com/aws/dotnet/issues/19](https://github.com/aws/dotnet/issues/19). Las bibliotecas de Amazon Cognito Sync Manager y Amazon Mobile Analytics Manager se pueden obtener también en los siguientes repositorios de GitHub: [aws/amazon-cognito-sync-manager-net](https://github.com/aws/amazon-cognito-sync-manager-net) y [aws/aws-mobile-analytics-manager-net](https://github.com/aws/aws-mobile-analytics-manager-net).

## Migración de código sincrónico
<a name="net-dg-v35-migrate-code"></a>

La versión 3.5 de AWS SDK para .NET es compatible con .NET Framework y .NET Standard (a través de versiones de .NET Core como .NET Core 3.1, .NET 5, etc.). Las variantes de SDK que cumplen con .NET Standard solo proporcionan métodos asincrónicos, por lo que si desea utilizar .NET Standard, debe cambiar el código sincrónico para que se ejecute de forma asincrónica.

Los siguientes fragmentos de código muestran cómo puede cambiar el código síncrono a código asíncrono. El código de estos fragmentos de código se utiliza para mostrar el número de buckets de Amazon S3.

El código original llama a [ListBuckets](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/MS3ListBuckets.html).

```
private static ListBucketsResponse MyListBuckets()
{
  var s3Client = new AmazonS3Client();
  var response = s3Client.ListBuckets();
  return response;
}

// From the calling function
ListBucketsResponse response = MyListBuckets();
Console.WriteLine($"Number of buckets: {response.Buckets.Count}");
```

Para usar la versión 3.5 del SDK, llame a [ListBucketsAsync](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/MS3ListBucketsAsyncCancellationToken.html) en su lugar.

```
private static async Task<ListBucketsResponse> MyListBuckets()
{
  var s3Client = new AmazonS3Client();
  var response = await s3Client.ListBucketsAsync();
  return response;
}


// From an **asynchronous** calling function
ListBucketsResponse response = await MyListBuckets();
Console.WriteLine($"Number of buckets: {response.Buckets.Count}");

// OR From a **synchronous** calling function
Task<ListBucketsResponse> response = MyListBuckets();
Console.WriteLine($"Number of buckets: {response.Result.Buckets.Count}");
```