maxmind/GeoIP2-dotnet

async/await version

trevera2 opened this issue · 10 comments

Hi,

Please add a non-blocking async/await version, so we can call it this way:

var client = new WebServiceClient(42, "abcdef12345");
var omni = await client.OmniAsync("128.101.101.101");

It's very important for programs that using .NET 4.5 or a later version.

Hello,

We discussed this internally and we decided that async support will not be part of the initial release. We are targeting .NET 3.5+ and adding async/await while maintaining support for 3.5 would be difficult. We may reconsider support in the future and we are open to reasonable patches as long as they maintain support for 3.5.

Thanks for your suggestion,

Greg

You can support .NET 4.0 with this: https://www.nuget.org/packages/Microsoft.Bcl.Async/1.0.12-beta
Having no async/await for an IO intensive library like this is not wise.

Thank you

AsyncBridge is working with .NET 3.5
Have a look into it if you want to have async and still support .NET 3.5

Please support .net 4.0 or above. It would be really nice to support pcl which would get you ready to support vnext.

👍

For the love of god please revert your async changes relating to the bcl. the second you bring in the bcl async libraries you just created a virus for anyone who wants to use your library... It requires every project in your solution to reference it and becomes a PITA.

It's better to just not target any framework that doesn't support async await than to bring in the dependency on the bcl async stuff.

Thanks for your input. If there is enough demand, we may modify our NuGet package to target multiple frameworks with the BCL/Microsoft.Net.Http dependency only required for .NET 4.0.

I'd highly consider this... We tried going down this path with our oss projects about a year ago and got lots of feedback and went through a lot of struggling. We ended up giving up on async completely in https://github.com/exceptionless/Exceptionless.Net as it just isn't viable in portable environments due to the bcl async packages. We're converting https://github.com/exceptionless/Foundatio to be 100% async now and we are only supporting 4.5 (one of the main reasons is the bcl). I figured I should let you guys know.. cause we went through these issues.. The biggest one is a forced dependency on all your consumers to have the bcl async dependencies in all projects in a solution that references the bcl async (via this package).