xBimTeam / XbimGeometry

XbimGeometry contains the CLR interop libraries and the c++ engine used to compute the 3D geometry of models.
https://xbimteam.github.io/
Other
261 stars 132 forks source link

net6.0 support #461

Open zhouguoqiang opened 10 months ago

zhouguoqiang commented 10 months ago

is there a plan to support net6.0

andyward commented 10 months ago

Yes, coming soon. See the netcore branch

GVladislavG commented 10 months ago

Will this version be crossplatform? Will it be able to work under Linux?

andyward commented 10 months ago

Not initially in GE v6. The problem is that we're using C++/CLI to wrap/interface with OpenCascade native C++ library - C++/CLI creates efficient .NET shims between native and managed code. This approach is pretty widespread across the geometry engine. C++/CLI is only compatible with Windows currently due to limitations of the Visual Studio C++ compiler.

So unless the Microsoft C++ team come out with an improved C++ cross-compiler, in order to provide full cross-platform support (for Linux/MacOS) we'd need to move to P/Invoke, which is both a lot of work and would likely have negative performance implications.

What the v6 branch does is move us along a bit by:

  1. Supporting Geometry under NetCore (.NET6+)
  2. Provide new interfaces to support phased migration of code that uses OpenCascade (and re-writes a lot of the implementation to be more testable)
  3. Extract OpenCascade to dependency via Nuget, so it can be updated more easily

One thing that should be possible in v6 is to natively support ARM64 under Windows. But full cross-platform is going to be something we have to leave for a future major release, and will need significant time investment - and frankly will need to have a compelling commercial driver behind it.

hyazinthh commented 6 months ago

Are there any plans to publish public v6 packages in the near future?

nicekiller00 commented 4 months ago

I also want to know if xbim works on linux