CacheManager icon indicating copy to clipboard operation
CacheManager copied to clipboard

Using System.Text.Json instead of Newtonsoft.Json

Open VahidN opened this issue 6 years ago • 7 comments

.NET Core 3x introduces the new built-in System.Text.Json namespace which has a higher performance than the Newtonsoft.Json dependency of CacheManager.Serialization.Json. It would be nice to add it later.

VahidN avatar Jun 27 '19 05:06 VahidN

It seems these don't have feature parity and could break if you upgraded to a new version of this library using System.Text.Json (Newtonsoft seems to handle your types better according to Microsoft) : https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-migrate-from-newtonsoft-how-to.

With this consideration would you still desire this feature as the default, or as a separate option that makes the change more obvious to the user (e.g. a SEPARATE json serializer)?

ndrwrbgs avatar Feb 28 '20 20:02 ndrwrbgs

Started to do this, but the different handling of JSON is scaring me too much [things like Newtonsoft allows comments in JSON but the new library does not by default].

I'd ship it as a completely separate serializer, which could be implemented within this library or externally to be promoted to first-class at a later date if usage warrants it. A transparent upgrade within CacheManager.Serialization.Json seems too risky especially in a distributed system where some old code and some new code would have to coexist for periods of time.

ndrwrbgs avatar Feb 28 '20 20:02 ndrwrbgs

@VahidN do you want to make a PR for a new serializer? @MichaCo I think this would be a feature-request rather than a "compatibility with netcore30" ask/issue

ndrwrbgs avatar Feb 28 '20 20:02 ndrwrbgs

any news on this?

bbqchickenrobot avatar Oct 27 '20 01:10 bbqchickenrobot

I am having similar problem. Can anyone suggest a solution?

huseyingoztok avatar Mar 10 '21 14:03 huseyingoztok

It'll definitely be it's own package and incompatible with newtonsoft json serialized Keys, so don't mix it in your deployments 😎

And sure, I'd be happy to see a pr for that, @ndrwrbgs or any one else

MichaCo avatar Mar 10 '21 15:03 MichaCo

That's how I solved the problem within the app.

Cachemanager1 Cachemanager2 Cachemanager3 Cachemanager4

huseyingoztok avatar Mar 12 '21 21:03 huseyingoztok