marketvision / ShipStation4Net

A .NET Standard Library using System.Net.HttpClient and NewtonSoft.Json which provides access to the ShipStation API.
Apache License 2.0
8 stars 12 forks source link

Async optimizations #1

Closed mynkow closed 6 years ago

mynkow commented 7 years ago

Hey,

I noticed that you could improve the library. Please take a look here and tell me what do you think?

https://medium.com/bynder-tech/c-why-you-should-use-configureawait-false-in-your-library-code-d7837dce3d7f

nla-brandonjames commented 7 years ago

I'll think about adding this functionality to this library in the future; I don't have the time to do this just now. I'm actually reusing the core code of this client in another client of mine. I've updated it since. Eventually I'm going to abstract ClientBase into a new HTTP client project after I get more progress on the other web service clients I'm working on. After that I'll create an issue in that HTTP client and tag you in the message so you can help oversee the change and I'll close this issue.

mynkow commented 7 years ago

Probably I will do this and send a pull request. Before doing this blindly do you have some concerts or recommendations or warnings to share upfront?

nla-brandonjames commented 7 years ago

I have some background about where the code came from. This was my first experience writing an HTTP Client from scratch. The code was inspired from RCWorst's BigCommerce4Net Client. It was based on .NET 4.5 and used RestSharp, but was easy enough for me to understand and I was able to convert it to .NET Standard by changing RestSharp to System.Net.HttpClient. I am currently working on a Zoho Books client, where I have updated the core code for this ClientBase to account for varying response keys (See my StackOverflow post).

If it makes enough sense to just go ahead and split off the ClientBase into a new project at this time, just let me know. I was intending on upgrading this client later with the changes I made to it within my ZohoBooksClient and we'll work on the core together over time and then publish it to NuGet when it's "ready".

Also, if you're able to test this library for the data manipulating requests on a fresh ShipStation account, I can create a new issue in this library and assign you to it. Just let me know.