

O AWS SDK para .NET V3 entrou no modo de manutenção.

Recomendamos que você migre para a [AWS SDK para .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Para obter detalhes e informações adicionais sobre como migrar, consulte nosso [anúncio do modo de manutenção](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/).

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Migrar para a versão 3.5 do AWS SDK para .NET
<a name="net-dg-v35"></a>

A versão 3.5 do AWS SDK para .NET padroniza ainda mais a experiência do .NET fazendo a transição do suporte para todas as variações que não sejam do Framework do SDK para o [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard). Dependendo do ambiente e da base de código, para aproveitar os recursos da versão 3.5, talvez seja necessário executar certos trabalhos de migração.

Este tópico descreve as alterações na versão 3.5 e o possível trabalho que talvez seja necessário para migrar seu ambiente ou código da versão 3.

## O que mudou na versão 3.5
<a name="net-dg-v35-changes"></a>

Veja a seguir o que mudou ou não no AWS SDK para .NET versão 3.5.

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

O suporte ao .NET Framework e ao .NET Core não foi alterado.

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

Os projetos Xamarin (novos e existentes) devem ter como destino o .NET Standard 2.0. Consulte [Suporte do .NET Standard 2.0 no Xamarin.Forms](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/internals/net-standard) e [Suporte à implementação do .NET](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support).

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

Os aplicativos Unity devem ter como destino os perfis do .NET Standard 2.0 ou do .NET 4.x usando o Unity 2018.1 ou posterior. Para obter mais informações, consulte [Suporte a perfis do .NET](https://docs.unity3d.com/2020.1/Documentation/Manual/dotnetProfileSupport.html). Além disso, se estiver usando **IL2CPP** para criar, você deverá desativar a remoção de código adicionando um arquivo *link.xml* conforme descrito em [Fazer referência ao AWS SDK para .NET Standard 2.0 do Unity, Xamarin ou UWP](https://aws.amazon.com/blogs/developer/referencing-the-aws-sdk-for-net-standard-2-0-from-unity-xamarin-or-uwp). Depois que transferir seu código para uma das bases de código recomendadas, seu aplicativo Unity poderá acessar todos os serviços oferecidos pelo SDK.

Como o Unity oferece suporte ao .NET Standard 2.0, o pacote **AWSSDK.Core** do SDK versão 3.5 não tem mais código específico do Unity, incluindo algumas funcionalidades de nível superior. Para proporcionar uma transição melhor, todo o código ***legado*** do Unity está disponível para referência no repositório [aws/aws-sdk-unity-net](https://github.com/aws/aws-sdk-unity-net) do GitHub. Se encontrar uma funcionalidade ausente que afete seu uso da AWS com o Unity, você poderá registrar uma solicitação de atributo em [https://github.com/aws/dotnet/issues](https://github.com/aws/dotnet/issues).

Consulte também [Considerações especiais sobre o suporte ao Unity](unity-special.md).

### Plataforma Universal do Windows (UWP)
<a name="net-dg-v35-changes-uwp"></a>

Dirija seu aplicativo UWP para a [versão 16299 ou posterior](https://docs.microsoft.com/en-us/windows/uwp/updates-and-versions/choose-a-uwp-version) (Fall Creators Update, versão 1709, lançada em outubro de 2017).

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

A versão 3.5 do AWS SDK para .NET não oferece suporte a essas plataformas porque a Microsoft não está mais desenvolvendo-as ativamente. Para obter mais informações, consulte:
+ [Fim do suporte ao Windows 10 Mobile](https://support.microsoft.com/en-us/help/4485197/windows-10-mobile-end-of-support-faq)
+ [Fim do suporte ao Silverlight](https://support.microsoft.com/en-us/help/4511036/silverlight-end-of-support)

### Bibliotecas de classes portáteis legadas (PCLs baseadas em perfis)
<a name="net-dg-v35-changes-pcl"></a>

Considere redirecionar sua biblioteca para o .NET Standard. Para obter mais informações, consulte [Comparação com bibliotecas de classes portáteis](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#comparison-to-portable-class-libraries) da Microsoft.

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

As abstrações de alto nível que facilitam o uso do Amazon Cognito Sync e do Amazon Mobile Analytics foram removidas da versão 3.5 do AWS SDK para .NET. AWS AppSync é o substituto preferencial para o Amazon Cognito Sync. O Amazon Pinpoint é o substituto preferencial do Amazon Mobile Analytics.

Se o seu código for afetado pela falta de código de biblioteca de nível superior para o AWS AppSync e o Amazon Pinpoint, você poderá registrar seu interesse em um ou ambos os seguintes chamados do GitHub: [https://github.com/aws/dotnet/issues/20](https://github.com/aws/dotnet/issues/20) e [https://github.com/aws/dotnet/issues/19](https://github.com/aws/dotnet/issues/19). Também é possível obter as bibliotecas para o Gerenciador do Amazon Cognito Sync e o Gerenciador do Amazon Mobile Analytics nos seguintes repositórios do GitHub: [aws/amazon-cognito-sync-manager-net](https://github.com/aws/amazon-cognito-sync-manager-net) e [aws/aws-mobile-analytics-manager-net](https://github.com/aws/aws-mobile-analytics-manager-net).

## Migrar código síncrono
<a name="net-dg-v35-migrate-code"></a>

A versão 3.5 do AWS SDK para .NET oferece suporte tanto para o .NET Framework quanto para o .NET Standard (por meio de versões do .NET Core, como o .NET core 3.1, .NET 5 e assim por diante). As variações do SDK que estão em conformidade com o .NET Standard fornecem somente métodos assíncronos, portanto, se você quiser aproveitar o .NET Standard, deverá alterar o código síncrono para que ele seja executado de forma assíncrona.

Os trechos de código a seguir mostram como alterar o código síncrono para código assíncrono. O código nesses trechos é usado para exibir o número de buckets do Amazon S3.

O código original chama [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 a versão 3.5 do SDK, chame [ListBucketsAsync](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/MS3ListBucketsAsyncCancellationToken.html).

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