

 AWS SDK for .NET V3 がメンテナンスモードになりました。

[AWS SDK for .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html) に移行することをお勧めします。移行方法の詳細と情報については、[メンテナンスモードのお知らせ](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/)を参照してください。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# バージョン 3.5 の AWS SDK for .NET への移行
<a name="net-dg-v35"></a>

バージョン 3.5 の AWS SDK for .NET は、SDK のすべての非 Framework バリエーションに対するサポートを [.NET Standard 2.0](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) に移行することで、.NET エクスペリエンスの標準化を進めます。環境とコードベースによっては、バージョン 3.5 の機能を利用するために、特定の移行作業が必要になる場合があります。

このトピックでは、バージョン 3.5 の変更点と、環境やコードをバージョン 3 から移行するために必要な作業について説明します。

## バージョン 3.5 の変更点
<a name="net-dg-v35-changes"></a>

AWS SDK for .NET バージョン 3.5 で変更された点と変更されていない点について以下に説明します。

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

.NET Framework と .NET Core に対するサポートは変更されていません。

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

Xamarin プロジェクト (新規および既存) は、.NET Standard 2.0 を対象とする必要があります。「[Xamarin.Forms での .NET Standard 2.0 のサポート](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/internals/net-standard)」および「[.NET 実装サポート](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support)」を参照してください。

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

Unity アプリは、Unity 2018.1 以降を使用する .NET Standard 2.0 または .NET 4.x プロファイルを対象とする必要があります。詳細については、「[.NET profile suppot](https://docs.unity3d.com/2020.1/Documentation/Manual/dotnetProfileSupport.html)」を参照してください。さらに、**IL2CPP** を使用してビルドする場合は、*link.xml* ファイルを追加してコードストリッピングを無効にする必要があります。詳細については、「[Referencing the AWS SDK for .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)」を参照してください。推奨されているコードベースのいずれかにコードを移植すると、SDK が提供するすべてのサービスに Unity アプリからアクセスできます。

Unity は .NET Standard 2.0 をサポートするため、SDK バージョン 3.5 の **AWSSDK.Core** パッケージから Unity 固有のコードが除外されました。一部の上位レベルの機能も除外されました。すべての ****レガシー** Unity コードは [aws/aws-sdk-unity-net](https://github.com/aws/aws-sdk-unity-net) GitHub リポジトリで参照可能であり、移行に役立てることができます。Unity での AWS の使用に関連する機能が不足している場合は、[https://github.com/aws/dotnet/issues](https://github.com/aws/dotnet/issues) で機能のリクエストを申請できます。

また、「[Unity のサポートに関する特別な考慮事項](unity-special.md)」も参照してください。

### ユニバーサル Windows プラットフォーム (UWP)
<a name="net-dg-v35-changes-uwp"></a>

UWP アプリケーションの対象は[バージョン 16299 以降](https://docs.microsoft.com/en-us/windows/uwp/updates-and-versions/choose-a-uwp-version) (2017 年 10 月リリースの Fall Creators Update、バージョン 1709) とします。

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

これらのプラットフォームは、Microsoft で現在開発されていないため、バージョン 3.5 の AWS SDK for .NET ではサポートされません。詳細については次を参照してください:
+ [Windows 10 Mobile のサポート終了](https://support.microsoft.com/en-us/help/4485197/windows-10-mobile-end-of-support-faq)
+ [Silverlight のサポート終了](https://support.microsoft.com/en-us/help/4511036/silverlight-end-of-support)

### レガシーポータブルクラスライブラリ (プロファイルベースの PCL)
<a name="net-dg-v35-changes-pcl"></a>

ライブラリを .NET Standard に再ターゲットすることを検討します。詳細については、「[ポータブルクラスライブラリとの比較](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#comparison-to-portable-class-libraries)」を参照してください。

### Amazon Cognito Sync マネージャーと Amazon Mobile Analytics マネージャー
<a name="net-dg-v35-changes-cog-ma"></a>

 Amazon Cognito Sync と Amazon Mobile Analytics の使用を容易にする高レベルの抽象化は、バージョン 3.5 の AWS SDK for .NET から削除されています。Amazon Cognito Sync の代わりに AWS AppSync の使用が推奨されます。Amazon Mobile Analytics の 代わりに Amazon Pinpoint の使用が推奨されています。

AWS AppSync および Amazon Pinpoint の上位レベルのライブラリコードの欠如によってコードが影響を受ける場合は、GitHub 問題 ([https://github.com/aws/dotnet/issues/20](https://github.com/aws/dotnet/issues/20) と [https://github.com/aws/dotnet/issues/19](https://github.com/aws/dotnet/issues/19)) のいずれかまたは両方で報告できます。また、Amazon Cognito Sync マネージャーと Amazon Mobile Analytics マネージャーのライブラリは、GitHub リポジトリ ([aws/amazon-cognito-sync-manager-net](https://github.com/aws/amazon-cognito-sync-manager-net) と [aws/aws-mobile-analytics-manager-net](https://github.com/aws/aws-mobile-analytics-manager-net)) から入手できます。

## 同期コードの移行
<a name="net-dg-v35-migrate-code"></a>

AWS SDK for .NET のバージョン 3.5 は、.NET フレームワークと.Net Standard (.NET Core 3.1、.NET 5 などの.NET Core バージョンによる) の両方をサポートしています。.Net Standard に準拠する SDK のバリエーションでは、非同期メソッドしか提供されないため、.NET Standard を利用するには、同期コードを変更して非同期で実行する必要があります。

次のコードスニペットは、同期コードを非同期コードに変更する方法を示しています。これらのスニペットのコードでは、Amazon S3 バケットの数を表示します。

元のコードは [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}");
```

バージョン 3.5 の SDK を使用するには、代わりに [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}");
```