User guide

Updated names for classes and properties to follow .NET conventions
What's Different
Architecture
The AWS SDK for .NET uses a common runtime library to make AWS service requests. In version 1 of
the SDK, this "common" runtime was added after the initial release, and several of the older AWS services
did not use it. As a result, there was a higher degree of variability among services in the functionality
provided by the AWS SDK for .NET version 1.
In version 2 of the SDK, all services now use the common runtime, so future changes to the core runtime
will propagate to all services, increasing their uniformity and easing demands on developers who want
to target multiple services.
However, separate runtimes are provided for .NET 3.5 and .NET 4.5:
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:
Version v2.0.0
34
AWS SDK for .NET Developer Guide
What's Different