Namespaces clarification

Topics: SharpMap v2.0
Oct 3, 2007 at 1:11 AM
From what I have seen so far, SharpMap, Proj.Net, NTS, and GeoAPI are four projects with much synergy. I can't see doing a lot of useful stuff for dynamic map display and interaction without using all three. SharpMap.CoordinateSystem (or something close to that) is the namespace of the Proj.Net stuff. Ok.... And the Net Topology Suite is hidden behind GisSharpBlog as the primary namespace.

Personally, I don't like the GisSharpBlob prefix to NetTopologySuite. And I struggle with SharpMap.CoordinateSystems being a differen assembly than the other ten SharpMap.* namespaces that are all in one assembly (maybe that is changing in V2?).

Ok... so I've stated my preferences. What I'm really after is knowing if these are cast in stone, or if there is the possibility that they will be changing.

Thanks! I'm really enjoying our experience with the code and we are learning a lot from it.
Coordinator
Oct 3, 2007 at 4:06 AM
Magnum -

You seem to have caught us in the midst of a progression to a more seamlessly coordinated effort to have these projects all benefit from closer alignment. Actually, the reason that Proj.Net has the same namespace as SharpMap is that it used to be part of SharpMap, and was split off since it can provide more benefit than just being part of SharpMap. You will be seeing a few more assemblies in the SharpMap project, since we don't want to make someone using the WPF rendering link to System.Windows.Forms.dll or System.Web, for example, so these are split off.

I'm not sure if we will be changing namespaces of the various projects, but it is a possibility. I'm not sure how important it is to the NTS project, for example, to keep the namespace. Ultimately, however, there will probably inevitably be different namespaces to use to get the full stack. SharpMap uses NPack for many of the internal computations, and since this is a general purpose linear algebra library, it makes sense to have it exist under a project-specific namespace.

If it really bothered me, I'd create a build task to change all the namespaces in the projects before the compilation. If CodePlex ever gets build capability, this could be done for the constellation of .Net GIS projects that go into SharpMap. The same sort of thing can be done by using ILMerge to combine multiple assemblies into one.
Oct 3, 2007 at 6:41 AM
I think splitting out the big projects like was done for coordinate systems is a good thing. And I don't care enough on namespaces want to change them just for our own work :) I was just trying to get a sense of any direction that stuff might be moving, and if it was moving, to offer my two cents.

Thanks!