

 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 の AWS SDK for .NET への移行
<a name="migration-v3"></a>

このトピックでは、AWS SDK for .NET のバージョン 3 での変更点、およびこのバージョンの SDK へのコードの移行方法について説明します。

## AWS SDK for .NET のバージョンについて
<a name="net-dg-migrate-v3-intro"></a>

当初、AWS SDK for .NET は 2009 年 11 月にリリースされ、.NET Framework 2.0 向けに設計されていました。このリリース以降、.NET は .NET Framework 4.0 および .NET Framework 4.5 で改善され、新しい対象プラットフォームとして WinRT と Windows Phone が追加されています。

AWS SDK for .NET バージョン 2 では、.NET プラットフォームの新機能を利用するように更新され、WinRT と Windows Phone も対象プラットフォームとして追加されました。

AWS SDK for .NET バージョン 3 ではアセンブリがモジュール化されました。

## SDK のアーキテクチャの再設計
<a name="net-dg-migrate-v3-arch"></a>

バージョン 3 の AWS SDK for .NET 全体がモジュラー式に再設計されています。1 つの大きなアセンブリとしてではなく、各サービスが個別のアセンブリとして実装されます。AWS SDK for .NET 全体をアプリケーションに追加する必要はなくなりました。アプリケーションで使用する AWS サービスのアセンブリだけを追加できます。

## 破壊的変更
<a name="net-dg-migrate-v3-breaking"></a>

以下のセクションでは、バージョン 3 の AWS SDK for .NET への変更点について説明します。

### AWSClientFactory の削除
<a name="awsclientfactory-removed"></a>

`Amazon.AWSClientFactory` クラスは削除されました。現在、サービスクライアントを作成するには、サービスクライアントのコンストラクタを使用します。たとえば、`AmazonEC2Client` を作成するには:

```
var ec2Client = new Amazon.EC2.AmazonEC2Client();
```

### Amazon.Runtime.AssumeRoleAWSCredentials の削除
<a name="assumeroleawscredentials-removed"></a>

`Amazon.Runtime.AssumeRoleAWSCredentials` クラスは、コア名前空間内にありながら AWS Security Token Service に依存していたこと、および長い間 SDK で使用されていなかったことから、削除されました。代わりに、`Amazon.SecurityToken.AssumeRoleAWSCredentials` クラスを使用してください。

### S3Link からの SetACL メソッドの削除
<a name="setacl-removed"></a>

`S3Link` クラスは `Amazon.DynamoDBv2` パッケージの一部であり、DynamoDB 項目内の参照であるオブジェクトを Amazon S3 に保存するために使用されています。これは便利な機能ですが、`Amazon.S3` パッケージに DynamoDB に対するコンパイル依存関係を作成するのは好ましくありませんでした。結果として、`Amazon.S3` クラスで公開されている `S3Link` メソッドを簡素化し、`SetACL` メソッドを `MakeS3ObjectPublic` メソッドに置き換えました。オブジェクトでアクセスコントロールリスト (ACL) を細かく制御する場合は、`Amazon.S3` パッケージを使用します。

### サポートされなくなった結果クラスの削除
<a name="result-classes-removed"></a>

AWS SDK for .NET のほとんどのサービスでは、操作は、リクエスト ID や結果オブジェクトなどの操作のメタデータを含む応答オブジェクトを返します。応答クラスと結果クラスを分けておくと、冗長であり、開発者は余分な入力が必要でした。AWS SDK for .NET のバージョン 2 では、結果クラスのすべての情報をレスポンスクラス内に移しました。また、結果クラスをサポート対象外として、その使用を非推奨にしました。AWS SDK for .NET のバージョン 3 では、これらのサポートされなくなった結果クラスを削除して SDK のサイズを減らしました。

### AWS Config セクションの変更
<a name="configs-changes"></a>

AWS SDK for .NET または `App.config` ファイルを使用して、`Web.config` の詳細設定を行うことができます。これは、SDK アセンブリ名を参照する、次のような `<aws>` config セクションを通じて行います。

```
<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK"/>
  </configSections>
  <aws region="us-west-2">
    <logging logTo="Log4Net"/>
  </aws>
</configuration>
```

AWS SDK for .NET のバージョン 3 では、`AWSSDK` アセンブリは存在しなくなりました。共通コードは `AWSSDK.Core` に格納しました。そのため、`AWSSDK` ファイルまたは `App.config` ファイルでの `Web.config` アセンブリへの参照を、次のように `AWSSDK.Core` アセンブリを参照するように変更する必要があります。

```
<configuration>
  <configSections>
    <section name="aws" type="Amazon.AWSSection, AWSSDK.Core"/>
  </configSections>
  <aws region="us-west-2">
    <logging logTo="Log4Net"/>
  </aws>
</configuration>
```

また、`Amazon.AWSConfigs` クラスで構成設定を操作できます。AWS SDK for .NET のバージョン 3 では、DynamoDB の構成設定を `Amazon.AWSConfigs` クラスから `Amazon.AWSConfigsDynamoDB` クラスに移しました。