I’ve been searching around the forum to see if there were plans to switch to [.NET 5] (https://docs.microsoft.com/en-us/dotnet/core/dotnet-five) which is due to land in November 2020. I was disappointed to find this recent thread where @dale commented that you are sticking with the full framework for v7.
I understand there is probably quite a bit of work to make the switch, but I think it would be a massive missed opportunity to stick with full framework. As a Rhino plugin developer I’d like to outline some of the key motivations for holding off Rhino 7 release so that you can adopt NET 5:
Performance: Access to latest high-performance stuff, for people writing computationally demanding plugins. e.g.
Spanfor fast memory access or SIMD double-precision vector calcs. Here is a list for perf tweaks which landed in NET core 3, and I believe the trend will continue for NET 5.
- Tooling: code analysis + dotnet build which I think is way tidier than the old MsBuild tools
- Cross-platform: no more messing about with Mono
- New C# APIs For example: native JSON support or HTTP/2
Latest language features. c# 8 is available to full framework projects, but not everything.
Some great stuff coming down the road with c# 9 which and would be a shame not to have access to, if MS decide that they are only going to support NET 5.
- Code Sharing Share code with non-rhino plugins without having to do dual build or conditional compilation. e.g. cross-platform net core WPF app or ASP Net core web project
- Consistency MS will be recommending that all new projects are .NET 5, and that is what people new to the language will be using for thier hello world demos. I also think it will quickly become frustrating when people google a solution to a problem only to find that that the code or tooling is not supported in the Rhino plugin ecosystem.
I know it’s a big ask, but please do give it some thought. Rhino 7 has been in the works for several years now, and it would be a shame to be shackled to full framework until 2024 while we wait for rhino v8. .NET is making huge leaps forward since ditching legacy full framework support, and I think Rhino needs to keep up.