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

Support netstandard2.0 (and higher) #686

Closed
lukebakken opened this issue Jan 15, 2020 · 14 comments
Closed

Support netstandard2.0 (and higher) #686

lukebakken opened this issue Jan 15, 2020 · 14 comments
Assignees
Milestone

Comments

@lukebakken
Copy link
Contributor

lukebakken commented Jan 15, 2020

https://docs.microsoft.com/en-us/dotnet/standard/net-standard

@bording approved 😄

@lukebakken lukebakken added this to the 6.0.0 milestone Jan 15, 2020
@lukebakken lukebakken self-assigned this Jan 15, 2020
@stebet
Copy link
Contributor

stebet commented Jan 15, 2020

Does this mean you'll drop support for anything lower than netstandard2.0? If so, I'm all for it, so the codebase can move forward.

@michaelklishin michaelklishin changed the title Support .NET standard 2.0 and higher Support only .NET standard 2.0 and higher Jan 15, 2020
@michaelklishin
Copy link
Member

Yes, that's exactly what it means @stebet.

@stebet
Copy link
Contributor

stebet commented Jan 15, 2020

That's great. In that case, I have a PR well on it's way that modernizes quite a bit, will probably submit it tomorrow :)

@lukebakken
Copy link
Contributor Author

@stebet - great! Thanks.

@bording
Copy link
Collaborator

bording commented Jan 16, 2020

To make sure my comment on the other issue is clear, I'm currently thinking this should be the new TargetFrameworks value for the project:

<TargetFrameworks>net452;netstandard2.0</TargetFrameworks>

@lukebakken lukebakken changed the title Support only .NET standard 2.0 and higher Support frameworks 4.5.2 and netstandard2.0 (and higher) Jan 16, 2020
@lukebakken
Copy link
Contributor Author

Some useful links to include in this project:

@stebet
Copy link
Contributor

stebet commented Jan 16, 2020

To make sure my comment on the other issue is clear, I'm currently thinking this should be the new TargetFrameworks value for the project:

<TargetFrameworks>net452;netstandard2.0</TargetFrameworks>

Why 4.5.2? If you are aiming for a major revision, I'd highly recommend moving the minimum target up to 4.6 at least, maybe even netstandard2.0 as a minimum. System.IO.Pipelines for example has 4.6 as the minimum requirement: https://www.nuget.org/packages/System.IO.Pipelines/

For added reference, the peeps at StackExchange will probably make netstandard2.1 a minimum for major revisions starting in 2020: https://twitter.com/marcgravell/status/1214226671550775297

NetFX support is dropping fast, and target anything lower than 4.6 will limit the possibilities of getting new and improved APIs pretty rapidly as NetFX will not be receiving any new features, since .NET 5.0 is being worked on.

@lukebakken
Copy link
Contributor Author

@stebet - we would consider requiring a more recent .NET Framework if concrete benefits to users of this library can be demonstrated (faster performance, better memory use, etc).

@stebet
Copy link
Contributor

stebet commented Jan 16, 2020

As for benefits, a lot of them are well documented. I'd almost say that enabling the use of System.IO.Pipelines and System.Threading.Channels (both have 4.6 as minimum) alone would be reason enough. Also a lot of *Async functionality isn't available except in higher versions. More knowledgeable people like @benaadams, @davidfowl and @mgravell can probably point at several as well. I think 4.6.1 is a good middle ground between maintaining backwards compat (if that's a hard requirement) and enabling new/improved constructs and functionality.

https://docs.microsoft.com/en-us/dotnet/framework/whats-new/

@lukebakken
Copy link
Contributor Author

OK thanks. I'm assuming that would require code changes. I am happy to run performance tests on proposed changes that are 4.6.1+ specific if you'd like to include them in your current PR or a new one. Thanks.

@michaelklishin
Copy link
Member

michaelklishin commented Jan 16, 2020 via email

@stebet
Copy link
Contributor

stebet commented Jan 16, 2020

OK thanks. I'm assuming that would require code changes. I am happy to run performance tests on proposed changes that are 4.6.1+ specific if you'd like to include them in your current PR or a new one. Thanks.

No real code changes necessary as is I think.

@bording
Copy link
Collaborator

bording commented Jan 16, 2020

@bording would that work for your team?

We currently ship with net452;netstandard2.0, though we are likely to reevaluate that when it's time for us to release a new major version of our core package.

For our rabbit transport, we'll have to release a new major version to support 6.0 anyway, so it would be okay to have to bump it up to 4.6.1 as part of that.

@lukebakken lukebakken changed the title Support frameworks 4.5.2 and netstandard2.0 (and higher) Support netstandard2.0 (and higher) Jan 16, 2020
@stebet stebet mentioned this issue Jan 17, 2020
11 tasks
@lukebakken
Copy link
Contributor Author

Addressed by #690

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants