-
Notifications
You must be signed in to change notification settings - Fork 83
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
Upgrade to dotnet 8.0.302 #119
Upgrade to dotnet 8.0.302 #119
Conversation
… 2.1 All 3 Projects are now targeting dotnet 8.0 with ProjNET now targeting both net8.0 and netstandard2.1. Tested on Mac M3 in JetBrains Rider: Unit- and Benchmark tests are working. Fixed some errors and warnings: - ProjectionParameterSet now has default constructor for JSon serialization. The old one is obsolete now because of security issue(s) with IFormatter/BinaryFormatter. - Warnings about missing XML comment(s) fixed
The primary question to be answered: is it acceptable to drop support for the legacy .NET Framework by removing the This library dates back to at least as early as 2011 (and probably earlier, though I cannot confirm), whereas .NET Core (which is the one that later evolved to .NET) released version 1.0 in 2016, and the WPF application I develop at work had no chance of migrating away from .NET Framework until .NET Core 3.0 was released in 2019. For that much history, I suspect that there are plenty of other .NET Framework-only applications which either cannot or will not migrate away. Looking at the download stats of the ProjNET package, over the past 6 weeks, the latest version was downloaded almost 600 times from clients whose versions are from the Visual Studio 2017 era or earlier. This is a lower-bound estimate of usage because of package caching. So if it were my decision and I had the will to devote time to maintaining this in the future, then I would strive to maintain a Scanning through this PR very quickly, it looks like there are no other changes outside the automated tests that actually use the new APIs and features present in Perhaps there's something specific that's coming later... but in my view, if you already have to restrict yourself to just the 37,118 APIs available in Especially now that Xamarin.Android and Xamarin.iOS are now out-of-support, this leaves just Mono and Unity as the two currently-supported targets which benefit from going to I fully support updating target frameworks for those that target various other versions of .NET Core / .NET 5+. |
@airbreather Thanks for your quick reply. I bumped back to netstandard2.0. But I'm trying to test this on my Windows laptop but debug branch is failing on: Is it an idea to leave the netstandard2.0 support as is but ADD multi targetframework support to net8.0? Leaves the NUnit tests which seems to be very difficult to get them running for multiple target frameworks. E.g. on my mac its not working.... still investigating. |
…he Unit Tests. This in order to get it running on my mac because netcoreapp3.1 is not supported on arm64.
I see. I only looked at this PR, whereas the latest commit on
With libraries like this one, targeting the most restrictive target framework means that it can reach the most users, but also it means that the developers of that library have the smallest toolbox. It's a tradeoff, and I think that keeping a target for If the library consumers significantly benefit from something in
That would be one of the "drawbacks" I spoke of, earlier in this comment: in order to unit test a project that compiles different versions of the code for different target frameworks, then it is important to cover all different combinations with unit tests. Therefore, the tests should be multi-targeted. Therefore, at best, you hit the same issue I raised in microsoft/vstest#1013 years ago when we actually did this for NetTopologySuite (before we ultimately dropped support for platforms that could not implement FWIW, some other drawbacks don't show themselves until much later, sometimes when it's too late to change course. There's one that applies to this case, and it was alluded to all the way back in dotnet/runtime#20322 (comment) when |
Quick clarification to this: I would probably actually use |
Thanks again for your extended reply @airbreather I will fix the twice Math.Log this evening. (Now at work). Concerning the multi target framework support the following: I know that Multi Targeting frameworks can be throublesome but I don't know how to do WKT1/2 support needly without a Parser Combinator lib like Pidgin. Maybe its is doable to backport Pidgin to netstandard2.0 but I'm afraid they will not support it. The reason for me not to go on with current WKT code is because of its license and its code setup(Can't get it in my head ;-)). To keep things short: WKT2.0 is already requested: #83 |
We already use spans via the That is, specific code and/or a specific error message? |
Mmm Interesting! Didn't realize that. I'will go on and test it better this evening... I will come back on this. Thanks! |
I have some more info about why I did, maybe to much, changes. The error when running the UnitTests with the NewtonsoftJson parser as object (De)Serializer: When I add an extra Default constructor I come in, what i think, in trouble with the ApiCompat check(s):
So I close this one. |
You are right: I managed to get the Fix PR #120 compiling against an older Pidgin version without targeting multiple frameworks. Unittests showing good. For the newest version of Pidgin: Thanks again! |
I think I see what you're going for now, after taking a few minutes to really read and digest what you're saying here. My own go-to for this is ANTLR, though I haven't yet found a way to integrate it into the build process without making me feel ill... |
Hi everyone,
Don't know if you are willing to upgrade? But if so I found some time to upgrade this ProjNET to newest dotnet versions.
The lib project now targets netstandard2.0 and net8.0.
The other 2 projects (Benchmark and UnitTests) target net6.0 and net8.0
Tested on Mac M3 in JetBrains Rider: Unit- and Benchmark tests are working.
Benchmark results:
Fixed some errors and warnings: