XbimEssentials icon indicating copy to clipboard operation
XbimEssentials copied to clipboard

.NET6 support in Essentials

Open martin1cerny opened this issue 3 years ago • 7 comments

martin1cerny avatar Oct 18 '22 14:10 martin1cerny

Didn't Steve already start this at https://github.com/xBimTeam/XbimEssentials/commit/6c5f7c513118331f34678dc2c6eb92846555ea80 ?

andyward avatar Oct 19 '22 12:10 andyward

What about net7, this will be released this month?

And maybe remove net45 and net46 from the TargetFrameworks as support is expired

mlankamp avatar Nov 01 '22 08:11 mlankamp

Agreed. Net 7 should be trivial now we've got to 6 in Geometry. Obviously it's not LTS. See #467

In the next major release of Toolkit (v6) we're reviewing the framework support. We'll definitely drop anything prior net472. We'll likely also drop netcore 3.1 as that is also going out of support soon.

Going forward the best support will be on the latest netcore versions and I think ultimately we'll phase out netframework as it's painful to maintain xbim across so many Frameworks, especially in Geometry.

andyward avatar Dec 07 '22 15:12 andyward

Hi, When can we expect this .Net 6 support?

alokraj2007 avatar Feb 13 '23 12:02 alokraj2007

It's already in Essentials develop branch which is in myget if you want to try out. We also have a preview branch of net6.0 Geometry engine in the netcore branch

andyward avatar Feb 13 '23 13:02 andyward

@andyward Thanks for a quick response. Can the Microsoft Extension dependency be upgraded to v7.0.0 for . Net 6?

alokraj2007 avatar Feb 13 '23 15:02 alokraj2007

Can you clarify why? what problem are issue you're facing?

You can target a .net7 runtime and dependencies in your own application if you want to - and our net6 libraries (and netstandard) will just work against the newer framework. As a library we aim for lowest supported platform versions rather than latest. net6.0 has long term support, while net7.0 is STS only.

Ultimately we technically only need target netstandard2.0 and netstandard2.1. which will cover net472 upwards on net framework and net6-7 on netcore (as well as EOL Netcore3.1/Net5.0) - as a library there's no benefit in multi-targeting to support 6 & 7 (& 8 etc). All the newer frameworks implement netstandard2.

Note Geometry engine is an edge case as we cannot target netstandard, and need to target a runtime implementation in the C++/CLI projects.

andyward avatar Feb 13 '23 15:02 andyward