AWS Developer Tools Blog

AWS SDK for .NET v3.5 Now Generally Available

Today, we have released version 3.5 of the AWS SDK for .NET! The primary objective of this version is to transition support for all non-Framework versions of the SDK to .NET Standard 2.0. We are doing this to accelerate feature development and offer newer functionality to a greater set of customers going forward. This is a semi-major release, so let’s run down the changes:

Platform Support

.NET Framework, .NET Core

No changes. You should experience no breakages, and no action is required.

Xamarin

If you are starting a new project, target .NET Standard 2.0. If you have an existing project, port your existing solution to .NET

Standard 2.0.

Migration guide
Platform support

Unity

Target the .NET Standard 2.0 or .NET 4.x profiles using Unity 2018.1 or later. As noted in a tutorial blog post, if you are using IL2CPP to build, you must disable code stripping by adding a link.xml file.

Universal Windows Platform (UWP)

Target your UWP application to version 16299 or later (Fall Creators update, version 1709, released October 2017).

Windows Phone, Silverlight

These platform targets are discouraged by Microsoft, and are not undergoing active development. Therefore, these platforms have been dropped, and there is no migration path.

Windows Phone EOL
Silverlight EOL

Legacy Portable Class Libraries (Profile-Based PCLs)

Consider re-targeting your library to .NET Standard, as per guidance from Microsoft.

Asynchronous Programming

The .NET Standard version of the AWS SDK for .NET only supports asynchronous calls to AWS services. This is preferred pattern for making web calls for performance and scalability. If your application is currently using synchronous calls, the code will need to be changed to use the asynchronous versions.

Unity has access to all services

Unity has historically only had access to 13 services offered by AWS. With the transition to .NET Standard and use of version 3.5 of the AWS SDK for .NET binaries, Unity customers have access to all services offered by AWS at the same time and at the same support level as all other supported platforms.

Archival of Unity core

Unity (since 2018.1) is supported via .NET Standard 2.0. As a result, all-unity specific code in AWSSDK.Core has been removed. This includes some higher-level functionality that was included in that codebase. To provide a better transition, all the Unity code has been extracted into a GitHub aws-archive repository for reference. If there is missing functionality impacting your use of AWS with Unity, please file a feature request.

Unity Archive: https://github.com/aws/aws-sdk-unity-net

Extraction of Cognito Sync Manager, Mobile Analytics Manager

These higher level abstractions allowing easier use of Amazon Cognito Sync and Amazon Mobile Analytics have been removed from the SDK. These libraries will be made available in separate repositories and distributed via new NuGet packages. Amazon Pinpoint is the preferred replacement for Amazon Mobile Analytics. AWS AppSync is the preferred replacement for Amazon Cognito Sync. We are aware that there are gaps in support for these new services in the SDK. If you are affected by the lack of higher-level library code for these services, please file a feature request so we can gauge demand.

Cognito Sync Manager: https://github.com/aws/amazon-cognito-sync-manager-net
Mobile Analytics Manager: https://github.com/aws/aws-mobile-analytics-manager-net

Try it out!

Please let us know what you know about the changes!

If you need to use DLLs (for example, for Unity), you can download the .NET Standard 2.0 binaries.

If you encounter any issues, please file a issue in the aws-sdk-net repository on GitHub.