Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add .NET Standard 2.0 support #228

Closed
wants to merge 1 commit into from
Closed

Add .NET Standard 2.0 support #228

wants to merge 1 commit into from

Conversation

Salgat
Copy link

@Salgat Salgat commented Oct 28, 2022

This allows .NET Framework and older .NET Core versions (such as .NET Core 2.2) to be supported (including addressing #181).

Since much of the existing compiler directives for .NET Core 3.1 also applied to .NET Standard 2.0, I combined them (the .NET Core 3.1 test project now references the .NET Standard 2.0 version of the EventStore libraries). Unfortunately a few things had to be changed such as removing the newer range syntax. Passing all github action tests on my local branch PR.

@thefringeninja
Copy link
Contributor

We cannot accept this PR at this time. We removed support for net48 as there was an issue around streaming calls being open while we requested channel shutdown: a deadlock occurs when disposing the client.

In addition, development on Grpc.Core is in maintenance mode.

Using the netstandard2.0 target should mean that grpc-dotnet is used but there are additional issues:

Our tests spin up a new container per test fixture to ensure deterministic tests on the $all stream. It might be possible to rewrite all the tests to use a single container instance via service containers.

Lastly, there are additional restrictions around WinHttpHandler:

  • Windows Server 2022 or later.
  • No client streaming or bi directional calls.

Without these types of calls neither appending to streams nor persistent subscriptions would work. So this PR would have to both introduce unary replacements for these calls and patch ESDB to implement them.

@Salgat
Copy link
Author

Salgat commented Nov 1, 2022

Looking at the gRPC requirements, it does seem that HTTP/2 is a hard blocker for older support. Thank you for the detailed explanation João!

@Salgat Salgat closed this Nov 1, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants