Migración a la versión 3.5 de AWS SDK for .NET - AWS SDK for .NET

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 for .NET

La versión 3.5 de AWS SDK for .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. 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 continuación se describe lo que ha cambiado o no en la versión 3.5 de AWS SDK for .NET.

.NET Framework y .NET Core

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

Xamarin

Los proyectos de Xamarin (nuevos y existentes) deben dirigirse a .NET Standard 2.0. Consulte Compatibilidad de .NET Standard 2.0 en Xamarin.Forms y Compatibilidad con implementaciones de .NET.

Unity

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

Consulte también Consideraciones especiales sobre la compatibilidad con Unity.

Plataforma universal de Windows

Dirija su aplicación UWP a la versión 16299 o posterior (actualización de Fall Creators, versión 1709, publicada en octubre de 2017).

Windows Phone y Silverlight

La versión 3.5 de AWS SDK for .NET no admite estas plataformas porque Microsoft ya no las está desarrollando activamente. Para obtener más información, consulte lo siguiente:

Bibliotecas de clases portátiles heredadas (PCL basadas en perfiles)

Considere redirigir su biblioteca a .NET Standard. Para obtener más información, consulte Comparación con bibliotecas de clases portátiles de Microsoft.

Amazon Cognito Sync Manager y Amazon Mobile Analytics Manager

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 for .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 y 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 y aws/aws-mobile-analytics-manager-net.

Migración de código sincrónico

La versión 3.5 de AWS SDK for .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.

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 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}");