Upcoming Modularization of the AWS SDK for .NET
Today, I would like to announce our plans to modularize the AWS SDK for .NET into individual assemblies and NuGet packages. This work will take us a few months to complete, but we recognize this will be a pretty big change to how developers see the SDK and want to give as much of a heads-up as we can. It is our intention to have as few breaking changes as possible, but a few will be unavoidable. For those changes, we plan on marking obsolete in the current version SDK as soon as possible. The most notable breaking change will be the removal of
Amazon.AWSClientFactory because that class requires a reference to every service.
Why are we doing this?
When we first released the AWS SDK for .NET, there were 10 services and the total size of the SDK was about 600 KB. Today, the SDK has grown to support over 40 services and has grown to over 6 MB. We’ve heard from many of our users that they want a smaller SDK containing just the services they need. This is especially important for developers who are using our SDK for Windows Phone and Windows Store Apps.
Another reason we are doing this is the frequency of releases from AWS. If you take a look at our Nuget package, you can see we release the SDK nearly weekly, sometimes even more frequently. Our hope is that this change will allow developers to update their SDK only when the services they use are updated.
What happens next?
It will take a us a few months to update our build and release process. We’ll keep you updated as more information becomes available. Watch for methods being marked as obsolete, and move away from them as soon as possible. As we are doing all this refactoring, this is a perfect time for feedback from users of the SDK. If there are problems the SDK is not solving for you or things are hard to discover, let us know. You can give feedback either here, in our forums, or on GitHub.