fsprojects / FSharp.Azure.Storage

F# API for using Microsoft Azure Table Storage service
MIT License
75 stars 16 forks source link

Added fromTableSegmentedAsyncSeq #44

Closed daniel-chambers closed 3 years ago

daniel-chambers commented 3 years ago

Added a new function fromTableSegmentedAsyncSeq which returns an AsyncSeq of segments when querying. This allows one to more easily query a large table without needing to implement looping/recursion yourself when using fromTableSegmentedAsync.

Unforatunately, we're stuck on v2 of FSharp.Control.AsyncSeq because we target netstandard2.0 and v3 of FSharp.Control.AsyncSeq targets netstandard2.1. If this becomes a problem for people, we may need to change our own target up to netstandard2.1, but I'm loathe to do that until someone complains because it'll leave all the .NET Framework 4.x people behind.

jackfoxy commented 3 years ago

IMO you should not be shy about a dotnet only release, so long as it gets a major release number. I am hazy on when netstandard2.1 is really required. I don't know why it was required for FSharp.Control.AsyncSeq. The release note only reads Move to only netstandard 2.1.

Congratulations on v5.0. I haven't used this project since v2.1.0. Nice to see it brought up to date.

daniel-chambers commented 3 years ago

@jackfoxy Thanks. 🙂 This project hasn't needed a lot of work to keep it up to date since it targeted netstandard2.0 in v3, but I've recently been doing some work with table storage at my job, and ran into an issue (#43) so I took the opportunity to fix it and give everything a small spring clean.

I think FSharp.Control.AsyncSeq just wanted to simplify their project, so they ditched netstandard2.0 support (https://github.com/fsprojects/FSharp.Control.AsyncSeq/issues/124). The company I work for has a lot of legacy .NET Framework code (not F# code though, our F# stuff is all .NET Core), so I have particular empathy for ensuring stuff works for .NET Framework for as long as possible because I know what is like to be left behind and not be able to "just update to .NET Core".

However, if I find there's something crucial that requires this project to leave .NET Framework behind, I will (or I'll investigate multi-targeting, depending on how hard that is).