[mapguide-trac] #1760: Replace TF.net with NTS (was: Remove dependency on TF.net)

MapGuide Open Source trac_mapguide at osgeo.org
Wed Jul 27 08:10:46 EDT 2011


#1760: Replace TF.net with NTS
-----------------------+----------------------------------------------------
   Reporter:  jng      |       Owner:  jng
       Type:  task     |      Status:  new
   Priority:  low      |   Milestone:     
  Component:  Maestro  |     Version:     
   Severity:  trivial  |    Keywords:     
External_id:           |  
-----------------------+----------------------------------------------------
Description changed by jng:

Old description:

> 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.

New description:

 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

--

-- 
Ticket URL: <http://trac.osgeo.org/mapguide/ticket/1760#comment:1>
MapGuide Open Source <http://mapguide.osgeo.org/>
MapGuide Open Source Internals


More information about the mapguide-trac mailing list