There appear to be two NuGet packages to use async/await in Silverlight applications. I've used
http://nuget.org/packages/Microsoft.CompilerServices.AsyncTargetingPack
so far, but this didn't show up in the search anymore. Instead I found
http://nuget.org/packages/Microsoft.Bcl.Async/
However, both are last changed at the same date (4/18/2013) and none refers to the other in the description. I'm tempted to believe that the latter supersedes the former, but I'm not sure.
My question is specifically how these packages relate to each other and more generally if there's some documentation / principles about nuget releases that I should be aware of to make sense of this by myself (eg: is it typical to supersede on package with another, where is this documented, etc.).
Microsoft.Bcl.Async is a replacement for Microsoft.CompilerServices.AsyncTargetingPack.
It is not typical to supersede one package with another on NuGet unless you change its name. In this particular case, I believe AsyncTargetingPack was (incorrectly) listed without the "prerelease" flag, and then the team at Microsoft took a wider approach (supporting more scenarios) in Bcl.Async.
Bcl.Async in my mind superseded AsyncTargetingPack when it was first (pre)released several months ago, but there was some confusion for two reasons: 1) The team still referred to Bcl.Async as the "async targeting pack", and 2) The Bcl.Async package was (correctly) listed as prerelease, so for many devs only the AsyncTargetingPack would show up in NuGet searches.
Again, this is all speculation, but I suspect the Microsoft team decided to leave things as they were rather than break backwards compatibility for devs who were already using AsyncTargetingPack.
Now that Bcl.Async is at a final release, they can (and did) go back and correct the AsyncTargetingPack/Bcl.Async mixup so that both existing and new devs can easily find the correct package.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With