User guide

The version 2 runtime for .NET 3.5 is similar to the existing version 1 runtime, which is based on the
System.Net.HttpWebRequest class and uses the Begin and End pattern for asynchronous methods.
The version 2 runtime for .NET 4.5 is based on the new System.Net.Http.HttpClient class and uses
Tasks for asynchronous methods, which enables users to use the new async and await keywords
in C# 5.0.
The WinRT and Windows Phone 8 versions of the SDK reuse the runtime for .NET 4.5, with the exception
that they support asynchronous methods only. Windows Phone 8 doesn't natively support
System.Net.Http.HttpClient, so the SDK depends on Microsoft's portable class implementation of
HttpClient, which is hosted on NuGet at the following URL:
http://nuget.org/packages/Microsoft.Net.Http/2.1.10
Removal of the "With" Methods
The "With" methods have been removed from version 2 of the SDK for the following reasons:
In .NET 3.0, constructor initializers were added, making the "With" methods redundant.
The "With" methods added significant overhead to the API design and worked poorly in cases of
inheritance.
For example, in version 1 of the SDK, you would use "With" methods to set up a
TransferUtilityUploadRequest:
TransferUtilityUploadRequest uploadRequest = new TransferUtilityUploadRequest()
.WithBucketName("my-bucket")
.WithKey("test")
.WithFilePath("c:\test.txt")
.WithServerSideEncryptionMethod(ServerSideEncryptionMethod.AES256);
In the current version of the SDK, use constructor initializers instead:
TransferUtilityUploadRequest uploadRequest = new TransferUtilityUploadRequest()
{
BucketName = "my-bucket", Key = "test", FilePath = "c:\test.txt",
ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
};
Removal of SecureString
The use of System.Security.SecureString was removed in version 2 of the SDK because it is not
available on the WinRT and Windows Phone 8 platforms.
Breaking Changes
Many classes and properties were changed to either meet .NET naming conventions or more closely
follow service documentation. Amazon Simple Storage Service (Amazon S3) and Amazon Elastic Compute
Cloud (Amazon EC2) were the most affected by this because they are the oldest services in the SDK
and were moved to the new common runtime. Below are the most visible changes.
Version v2.0.0
25
AWS SDK for .NET Developer Guide
What's Different