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

Migrate to more recent .NET version #75

Open
nikeee opened this issue Dec 3, 2021 · 10 comments
Open

Migrate to more recent .NET version #75

nikeee opened this issue Dec 3, 2021 · 10 comments

Comments

@nikeee
Copy link
Owner

nikeee commented Dec 3, 2021

What benefits could we have when migrating to a more recent .NET version (most likely .NET 6)?

@nikeee
Copy link
Owner Author

nikeee commented Dec 3, 2021

  • We could enable #nullable to make the library more null-safe
  • System.ValueTuple and maybe Microsoft.CSharp could be removed from the dependencies
  • What about System.Runtime.Serialization.Formatters?
  • DTOs could be converted to records, auto-implementing equality

@MaximilianAst
Copy link
Contributor

  • All of the syntactic sugar :)

@ceeno2k
Copy link
Contributor

ceeno2k commented Dec 3, 2021

@nikeee
Copy link
Owner Author

nikeee commented Dec 9, 2021

That response parser that uses reflection could be re-written to use a source generator.

@nikeee
Copy link
Owner Author

nikeee commented Dec 9, 2021

With TS5 around the corner, it is questionable if some of the work is worth investing. I doubt that TS5 will use the same crappy protocol. At least I hope that they will migrate to something more sane, like JSON-RPC.

@Splamy
Copy link
Contributor

Splamy commented Dec 9, 2021

TS5 is only a client rework, the server is the same.

@nikeee
Copy link
Owner Author

nikeee commented Dec 9, 2021

That's what I heard as well, but is that assured?

It would actually be pretty pointless, if they'd just copy some UI stuff from discord. So I am assuming that some server functionality will be added as well.

@Splamy
Copy link
Contributor

Splamy commented Dec 10, 2021

They keep a lot vague, but I was in the TS5 beta and the client connects just fine to TS3 servers.
I guess this will be the targeted path of them. It's less work and they won't split their already shrinking userbase in half with this change.
They most likely will just add supplementary commands like they did in the past with notifychannelpermhints and notifyclientpermhints to improve the TS5 UI but keep it on the old protocol.

EDIT:
also some .net advice, as long as you still distribute your library as a nuget package you can upgrade your project to net6, enjoy (almost) all of the benefits and still target netstandard2.0. This change will only require contributors to have the .net6 sdk, not your endusers.
You can also polyfill a lot of features into netstandard2.0 since a lot of stuff is just in the compiler, not runtime

@nikeee
Copy link
Owner Author

nikeee commented Dec 11, 2021

Could we still target .NET Standard 1.3? I know it's old, but there are a lot of users using .NET FW.

I'll evaluate if we can target Standard 2.0 and use more recent .NET features.

@nikeee nikeee mentioned this issue Dec 11, 2021
@Splamy
Copy link
Contributor

Splamy commented Dec 11, 2021

Yeah, should also work, you're basically just limiting your access to the 'nice' newer apis, but other than that probably no problems.

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

No branches or pull requests

4 participants