Support Esent on net standard
Microsoft have release interop wrappers for Esent supporting netstandard.
If we upgrade then net core projects can use Essentials with the Esent IModel & its performance benefits
I don't believe this will work on Linux/Mac netCore builds as we're still reliant on the native Windows Esent library.
Implemented but needs testing on various platforms. Still to do:
- [ ] Establish what happens on Linux etc. when using EsentModel.
- [ ] Determine if the IModelProvider implementations can be made smarter to default in Esent into the IfcStore when supported.
Why is Esent actually used? Is it not possible to use a crossplatform database like LiteDB (which can also store files) etc? We need xBIM Geometry with UseHeuristicModelProvider, but on Windows and MacOS with NET Core 3. It is a pity that there is no compatible netstandard version.
It's really a matter of history. Neither netcore or LiteDB were around in ~2010 when xbim first needed an open persistence layer suitable for the non-relational data in IFC.
The persistence layers are now pluggable (via IModel) and there is an issue relating to implementing another storage layer #59 (where you can read more of the rationale). We'd have to retain the Esent support for backward compatibility for the foreseeable future.
There's also another ticket on netcore geometry support over at xBimTeam/XbimGeometry/issues/248