[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