I am a strong proponent of the Net Topology Suite (NTS) and applaud that you use it internally within MapSuite. We use NTS objects in our custom data sources. When your renders request a feature collection, we are currently using our geometry object to export WKB, and instantiating your Feature with that WKB. So we end up with each of us holding a Geometry object for which one is just a copy of the other.
Is there any way that you can consider letting us create your Features, using our existing geometry objects, rather than copying them? I can appreciate any hesitancy to introduce a dependency upon objects with you do not control, but in our case where we are rendering 50,000 cells, it sure doesn't feel very good to create an exact copy of those 50,000 objects. They create fast but you sure hope the garbage collector is working well when we are done with them :)
By the same token, if we do map queries, and operate upon a layer, would we be able to get the underlying NTS object associated with a feature?
I saw something in your developer blog on building an RTree for an in-memory featuresource that indicated the NTS and GeoAPI dll's had to be referenced. I should go back and look at that, as that must have indicated there was some way to get to the NTS objects in your features.
Any chance you would ever move to an IFeature interface that we could implement directly onto a DataSet row, and not have to copy ANY of our data?
There is a new build of NTS that has a lot of improvements that we funded. I hope your testing proves out for you to be able to include it soon.
Thanks.