のバージョン 3.5 への移行 AWS SDK for .NET - AWS SDK for .NET (V3)

のバージョン 4 (V4) AWS SDK for .NET がリリースされました。

SDK の新しいバージョンの使用を開始するには、 AWS SDK for .NET (V4) デベロッパーガイド、特にバージョン 4 への移行に関するトピックを参照してください。

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

のバージョン 3.5 への移行 AWS SDK for .NET

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

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

バージョン 3.5 の変更点

AWS SDK for .NET バージョン 3.5 で変更されているものと変更されていないものを以下に示します。

.NET Framework と .NET Core

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

Xamarin

Xamarin プロジェクト (新規および既存) は、.NET Standard 2.0 を対象とする必要があります。「Xamarin.Forms での .NET Standard 2.0 のサポート」および「.NET 実装サポート」を参照してください。

Unity

Unity アプリは、Unity 2018.1 以降を使用する .NET Standard 2.0 または .NET 4.x プロファイルを対象とする必要があります。詳細については、「.NET profile suppot」を参照してください。さらに、IL2CPP を使用してビルドする場合は、「Unity、Xamarin、または UWP から AWS SDK for .NET 標準 2.0 を参照する」で説明されているように、link.xml ファイルを追加してコードストリッピングを無効にする必要があります。推奨されているコードベースのいずれかにコードを移植すると、SDK が提供するすべてのサービスに Unity アプリからアクセスできます。

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

また、「Unity のサポートに関する特別な考慮事項」も参照してください。

ユニバーサル Windows プラットフォーム (UWP)

UWP アプリケーションの対象はバージョン 16299 以降 (2017 年 10 月リリースの Fall Creators Update、バージョン 1709) とします。

Windows Phone と Silverlight

のバージョン 3.5 AWS SDK for .NET では、Microsoft がこれらのプラットフォームを積極的に開発していないため、これらのプラットフォームはサポートされていません。詳細については次を参照してください:

レガシーポータブルクラスライブラリ (プロファイルベースの PCL)

ライブラリを .NET Standard に再ターゲットすることを検討します。詳細については、「ポータブルクラスライブラリとの比較」を参照してください。

Amazon Cognito Sync マネージャーと Amazon Mobile Analytics マネージャー

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

コードが AWS AppSync と Amazon Pinpoint の上位ライブラリコードの不足の影響を受けている場合は、 と https://github.com/aws/dotnet/issues/20 の GitHub の問題の 1 つまたは両方に関心を記録できますhttps://github.com/aws/dotnet/issues/19。また、Amazon Cognito Sync マネージャーと Amazon Mobile Analytics マネージャーのライブラリは、GitHub リポジトリ (aws/amazon-cognito-sync-manager-netaws/aws-mobile-analytics-manager-net) から入手できます。

同期コードの移行

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

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

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

バージョン 3.5 の SDK を使用するには、代わりに ListBucketsAsync を呼び出します。

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