Opened 13 years ago
Closed 13 years ago
#1760 closed task (fixed)
Replace TF.net with NTS
Reported by: | jng | Owned by: | jng |
---|---|---|---|
Priority: | low | Milestone: | |
Component: | Maestro | Version: | |
Severity: | trivial | Keywords: | |
Cc: | External ID: |
Description (last modified by )
The tf.net library used by the Maestro API is rarely maintained and should be removed.
When we look at what is actually being used from Topology.dll, which is the merged result of NTS, GeoAPI, ProjNet and other libraries
- Maestro exposes GeoAPI's geometry interfaces
- Maestro uses ProjNet's (weak, but sufficient) coordinate transformation capabilities
- The features unique to tf.net (MapGuide Geometry <-> GeoAPI geometry) can easily be replicated directly in the Maestro API itself.
It will be simpler from a maintenance perspective to use NTS directly and provide our own MapGuide Geometry <-> custom geometry conversion. This opens up future lines of integration with NTS in the future, as we can keep NTS up to date as needed. Whereas tf.net is constrained by having seriously old version of NTS.
To avoid leaking out the NTS dependency as Maestro currently does, it should define as much of the GeoAPI geometry interfaces directly in the Maestro API. The implementation specific Maestro API assemblies can then handle the required conversion logic as necessary. By not leaking out NTS dependencies, consuming applications will only need to reference the MaestroAPI assembly at compile time and not MaestroAPI + tf.net as it currently does.
This represents a breaking API change. Applications using the MaestroAPI will now have to reference the merged NTS assembly instead of Topology.dll and will need to update namespace references
Change History (2)
comment:1 by , 13 years ago
Description: | modified (diff) |
---|---|
Summary: | Remove dependency on TF.net → Replace TF.net with NTS |
comment:2 by , 13 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed r6008