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 jng)

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 jng, 13 years ago

Description: modified (diff)
Summary: Remove dependency on TF.netReplace TF.net with NTS

comment:2 by jng, 13 years ago

Resolution: fixed
Status: newclosed

Fixed r6008

Note: See TracTickets for help on using tickets.