

 AWS SDK untuk .NET V3 telah memasuki mode pemeliharaan.

Kami menyarankan Anda bermigrasi ke [AWS SDK untuk .NET V4](https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/welcome.html). Untuk detail dan informasi tambahan tentang cara bermigrasi, silakan lihat [pengumuman mode pemeliharaan](https://aws.amazon.com/blogs/developer/aws-sdk-for-net-v3-maintenance-mode-announcement/) kami.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Migrasikan proyek Anda untuk AWS SDK untuk .NET
<a name="net-dg-migrating"></a>

Bagian ini memberikan informasi tentang tugas migrasi yang mungkin berlaku untuk Anda, dan petunjuk tentang cara melakukan tugas tersebut.

**Topics**
+ [Migrasi ke Versi 3](migration-v3.md)
+ [Migrasi ke versi 3.5](net-dg-v35.md)
+ [Migrasi ke versi 3.7](net-dg-v37.md)
+ [Migrasi dari .NET Standard 1.3](migration-from-net-standard-1-3.md)

# Migrasi ke Versi 3 AWS SDK untuk .NET
<a name="migration-v3"></a>

Topik ini menjelaskan perubahan versi 3 AWS SDK untuk .NET dan cara memigrasikan kode Anda ke versi SDK ini.

## Tentang AWS SDK untuk .NET Versi
<a name="net-dg-migrate-v3-intro"></a>

Awalnya dirilis pada bulan November 2009, dirancang untuk .NET Framework 2.0. AWS SDK untuk .NET Sejak rilis itu, .NET telah meningkat dengan .NET Framework 4.0 dan .NET Framework 4.5, dan menambahkan platform target baru: WinRT dan Windows Phone.

AWS SDK untuk .NET versi 2 diperbarui untuk mengambil keuntungan dari fitur-fitur baru dari platform.NET dan untuk menargetkan WinRT dan Windows Phone.

AWS SDK untuk .NET versi 3 telah diperbarui untuk membuat rakitan modular.

## Desain Ulang Arsitektur untuk SDK
<a name="net-dg-migrate-v3-arch"></a>

Seluruh versi 3 AWS SDK untuk .NET didesain ulang menjadi modular. Setiap layanan sekarang diimplementasikan dalam perakitannya sendiri, bukan dalam satu perakitan global. Anda tidak lagi harus menambahkan keseluruhan AWS SDK untuk .NET ke aplikasi Anda. Anda sekarang dapat menambahkan rakitan hanya untuk AWS layanan yang digunakan aplikasi Anda.

## Perubahan Breaking
<a name="net-dg-migrate-v3-breaking"></a>

Bagian berikut menjelaskan perubahan pada versi 3 dari AWS SDK untuk .NET.

### AWSClientPabrik Dihapus
<a name="awsclientfactory-removed"></a>

`Amazon.AWSClientFactory`Kelas telah dihapus. Sekarang, untuk membuat klien layanan, gunakan konstruktor klien layanan. Misalnya, untuk membuat`AmazonEC2Client`:

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

### Amazon.Runtime. AssumeRoleAWSCredentials Dihapus
<a name="assumeroleawscredentials-removed"></a>

`Amazon.Runtime.AssumeRoleAWSCredentials`Kelas telah dihapus karena berada di namespace inti tetapi memiliki ketergantungan pada AWS Security Token Service, dan karena telah usang di SDK selama beberapa waktu. Gunakan `Amazon.SecurityToken.AssumeRoleAWSCredentials` kelas sebagai gantinya.

### Metode SetaCl Dihapus dari S3Link
<a name="setacl-removed"></a>

`S3Link`Kelas adalah bagian dari `Amazon.DynamoDBv2` paket dan digunakan untuk menyimpan objek di Amazon S3 yang merupakan referensi dalam item DynamoDB. Ini adalah fitur yang berguna, tetapi kami tidak ingin membuat ketergantungan kompilasi pada `Amazon.S3` paket untuk DynamoDB. Akibatnya, kami menyederhanakan `Amazon.S3` metode terbuka dari `S3Link` kelas, mengganti `SetACL` metode dengan `MakeS3ObjectPublic` metode. Untuk kontrol lebih lanjut atas daftar kontrol akses (ACL) pada objek, gunakan `Amazon.S3` paket secara langsung.

### Penghapusan Kelas Hasil Usang
<a name="result-classes-removed"></a>

Untuk sebagian besar layanan di AWS SDK untuk .NET, operasi mengembalikan objek respons yang berisi metadata untuk operasi, seperti ID permintaan dan objek hasil. Memiliki respons terpisah dan kelas hasil berlebihan dan membuat pengetikan tambahan untuk pengembang. Dalam versi 2 dari AWS SDK untuk .NET, kita menempatkan semua informasi di kelas hasil ke dalam kelas respon. Kami juga menandai kelas hasil usang untuk mencegah penggunaannya. Di versi 3 AWS SDK untuk .NET, kami menghapus kelas hasil usang ini untuk membantu mengurangi ukuran SDK.

### AWS Perubahan Bagian Config
<a name="configs-changes"></a>

Hal ini dimungkinkan untuk melakukan konfigurasi lanjutan dari AWS SDK untuk .NET melalui `Web.config` file `App.config` atau. Anda melakukan ini melalui bagian `<aws>` konfigurasi seperti berikut, yang mereferensikan nama perakitan SDK.

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

Dalam versi 3 AWS SDK untuk .NET, `AWSSDK` perakitan tidak ada lagi. Kami memasukkan kode umum ke dalam `AWSSDK.Core` perakitan. Akibatnya, Anda perlu mengubah referensi ke `AWSSDK` rakitan di `Web.config` file Anda `App.config` atau ke `AWSSDK.Core` perakitan, sebagai berikut.

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

Anda juga dapat memanipulasi pengaturan konfigurasi dengan kelas. `Amazon.AWSConfigs` Di versi 3 AWS SDK untuk .NET, kami memindahkan pengaturan konfigurasi untuk DynamoDB dari kelas `Amazon.AWSConfigs` ke kelas. `Amazon.AWSConfigsDynamoDB`

# Bermigrasi ke versi 3.5 dari AWS SDK untuk .NET
<a name="net-dg-v35"></a>

[Versi 3.5 AWS SDK untuk .NET selanjutnya menstandarisasi pengalaman .NET dengan mentransisikan dukungan untuk semua variasi Non-Framework SDK ke .NET Standard 2.0.](https://docs.microsoft.com/en-us/dotnet/standard/net-standard) Bergantung pada lingkungan dan basis kode Anda, untuk memanfaatkan fitur versi 3.5, Anda mungkin perlu melakukan pekerjaan migrasi tertentu.

Topik ini menjelaskan perubahan dalam versi 3.5 dan kemungkinan pekerjaan yang mungkin perlu Anda lakukan untuk memigrasikan lingkungan atau kode Anda dari versi 3.

## Apa yang berubah untuk versi 3.5
<a name="net-dg-v35-changes"></a>

Berikut ini menjelaskan apa yang telah atau belum berubah di AWS SDK untuk .NET versi 3.5.

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

Support untuk .NET Framework dan .NET Core tidak berubah.

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

Proyek Xamarin (baru dan yang sudah ada) harus menargetkan .NET Standard 2.0. [Lihat [Dukungan .NET Standard 2.0 di Xamarin.Forms dan dukungan implementasi.NET](https://docs.microsoft.com/en-us/xamarin/xamarin-forms/internals/net-standard).](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#net-implementation-support)

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

Aplikasi Unity harus menargetkan profil.NET Standard 2.0 atau .NET 4.x menggunakan Unity 2018.1 atau yang lebih baru. Untuk informasi selengkapnya, lihat [dukungan profil.NET](https://docs.unity3d.com/2020.1/Documentation/Manual/dotnetProfileSupport.html). Selain itu, jika Anda menggunakan **IL2CPP** untuk membangun, Anda harus menonaktifkan pengupasan kode dengan menambahkan file *link.xml*, seperti yang dijelaskan dalam [Merujuk AWS SDK untuk .NET Standar 2.0 dari Unity, Xamarin,](https://aws.amazon.com/blogs/developer/referencing-the-aws-sdk-for-net-standard-2-0-from-unity-xamarin-or-uwp) atau UWP. Setelah Anda mem-port kode ke salah satu basis kode yang direkomendasikan, aplikasi Unity Anda dapat mengakses semua layanan yang ditawarkan oleh SDK.

Karena Unity mendukung .NET Standard 2.0, **AWSSDKpaket.Core** dari SDK versi 3.5 tidak lagi memiliki kode khusus Unity, termasuk beberapa fungsionalitas tingkat yang lebih tinggi. Untuk memberikan transisi yang lebih baik, semua kode Unity ***lama*** tersedia untuk referensi di [aws-sdk-unity-net GitHub aws/](https://github.com/aws/aws-sdk-unity-net) repositori. Jika Anda menemukan fungsionalitas yang hilang yang memengaruhi penggunaan AWS Unity, Anda dapat mengajukan permintaan fitur di [https://github.com/aws/dotnet/issues](https://github.com/aws/dotnet/issues).

Lihat juga [Pertimbangan khusus untuk dukungan Unity](unity-special.md).

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

Targetkan aplikasi UWP Anda ke [versi 16299 atau yang lebih baru](https://docs.microsoft.com/en-us/windows/uwp/updates-and-versions/choose-a-uwp-version) (pembaruan Fall Creators, versi 1709, dirilis Oktober 2017).

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

Versi 3.5 AWS SDK untuk .NET tidak mendukung platform ini karena Microsoft tidak lagi aktif mengembangkannya. Untuk informasi selengkapnya, lihat berikut ini:
+ [Dukungan akhir Windows 10 Mobile](https://support.microsoft.com/en-us/help/4485197/windows-10-mobile-end-of-support-faq)
+ [Akhir dukungan Silverlight](https://support.microsoft.com/en-us/help/4511036/silverlight-end-of-support)

### Pustaka kelas portabel lama (berbasis profil) PCLs
<a name="net-dg-v35-changes-pcl"></a>

Pertimbangkan untuk menargetkan ulang pustaka Anda ke .NET Standard. Untuk informasi selengkapnya, lihat [Perbandingan dengan Pustaka Kelas Portabel](https://docs.microsoft.com/en-us/dotnet/standard/net-standard#comparison-to-portable-class-libraries) dari Microsoft.

### Manajer Sinkronisasi Amazon Cognito dan Manajer Amazon Mobile Analytics
<a name="net-dg-v35-changes-cog-ma"></a>

Abstraksi tingkat tinggi yang memudahkan penggunaan Amazon Cognito Sync dan Amazon Mobile Analytics dihapus dari versi 3.5. AWS SDK untuk .NET AWS AppSync adalah pengganti yang disukai untuk Amazon Cognito Sync. Amazon Pinpoint adalah pengganti yang lebih disukai untuk Amazon Mobile Analytics.

[Jika kode Anda dipengaruhi oleh kurangnya kode pustaka tingkat tinggi untuk AWS AppSync dan Amazon Pinpoint, Anda dapat mencatat minat Anda pada salah satu atau kedua masalah GitHub berikut [https://github.com/aws/:](https://github.com/aws/dotnet/issues/20) dotnet/issues/20 dan dotnet/issues/19. https://github.com/aws/](https://github.com/aws/dotnet/issues/19) [Anda juga dapat memperoleh pustaka untuk Amazon Cognito Sync Manager dan Amazon Mobile Analytics Manager dari repositori GitHub berikut[: amazon-cognito-sync-manager aws/ -net dan aws/](https://github.com/aws/amazon-cognito-sync-manager-net) -net. aws-mobile-analytics-manager](https://github.com/aws/aws-mobile-analytics-manager-net)

## Memigrasi kode sinkron
<a name="net-dg-v35-migrate-code"></a>

Versi 3.5 AWS SDK untuk .NET mendukung baik .NET Framework dan .NET Standard (melalui versi .NET Core seperti.NET core 3.1, .NET 5, dan sebagainya). Variasi SDK yang sesuai dengan.NET Standard hanya menyediakan metode asinkron, jadi jika Anda ingin memanfaatkan .NET Standard, Anda harus mengubah kode sinkron sehingga berjalan secara asinkron.

Cuplikan kode berikut menunjukkan bagaimana Anda dapat mengubah kode sinkron menjadi kode asinkron. Kode dalam cuplikan ini digunakan untuk menampilkan jumlah bucket Amazon S3.

Kode asli memanggil [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}");
```

Untuk menggunakan SDK versi 3.5, panggil [ListBucketsAsync](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/MS3ListBucketsAsyncCancellationToken.html)saja.

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

# Bermigrasi ke versi 3.7 AWS SDK untuk .NET
<a name="net-dg-v37"></a>

Pada versi 3.7, AWS SDK untuk .NET tidak lagi mendukung .NET Standard 1.3.

Untuk informasi tentang migrasi dari.NET Standard 1.3, lihat[Migrasi dari .NET Standard 1.3](migration-from-net-standard-1-3.md).

# Migrasi dari .NET Standard 1.3
<a name="migration-from-net-standard-1-3"></a>

Pada 27 Juni 2019 Microsoft [mengakhiri dukungan](https://devblogs.microsoft.com/dotnet/net-core-1-0-and-1-1-will-reach-end-of-life-on-june-27-2019/) untuk versi .NET Core 1.0 dan .NET Core 1.1. Setelah pengumuman ini, AWS mengakhiri dukungan untuk .NET Standard 1.3 AWS SDK untuk .NET pada tanggal 31 Desember 2020.

AWS terus memberikan pembaruan layanan dan perbaikan keamanan pada AWS SDK untuk .NET penargetan .NET Standard 1.3 hingga 1 Oktober 2020. Setelah tanggal tersebut, target.NET Standard 1.3 masuk ke mode Pemeliharaan, yang berarti tidak ada pembaruan baru yang dirilis; AWS menerapkan perbaikan bug kritis dan patch keamanan saja.

Pada tanggal 31 Desember 2020, dukungan untuk .NET Standard 1.3 AWS SDK untuk .NET sampai pada akhir masa pakainya. Setelah tanggal tersebut tidak ada perbaikan bug atau patch keamanan yang diterapkan. Artefak yang dibangun dengan target itu tetap tersedia untuk diunduh NuGet.

**Apa yang perlu Anda lakukan**
+ Jika Anda menjalankan aplikasi menggunakan .NET Framework, Anda tidak terpengaruh.
+ Jika Anda menjalankan aplikasi menggunakan .NET Core 2.0 atau lebih tinggi, Anda tidak terpengaruh.
+ Jika Anda menjalankan aplikasi menggunakan .NET Core 1.0 atau .NET Core 1.1, migrasi aplikasi Anda ke versi yang lebih baru .NET Core dengan mengikuti petunjuk [migrasi Microsoft](https://docs.microsoft.com/en-us/dotnet/core/migration/). Kami merekomendasikan minimal .NET Core 3.1.
+ Jika Anda menjalankan aplikasi penting bisnis yang tidak dapat ditingkatkan saat ini, Anda dapat terus menggunakan versi Anda saat ini. AWS SDK untuk .NET

Jika Anda memiliki pertanyaan atau masalah, [hubungi AWS Support](https://console.aws.amazon.com/support).