Changes between Version 7 and Version 8 of MapGuideRfc117


Ignore:
Timestamp:
Aug 19, 2011, 12:19:12 AM (13 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc117

    v7 v8  
    1010||RFC Template Version||(1.0)||
    1111||Submission Date||20 June 2011||
    12 ||Last Modified||20 June 2011||
     12||Last Modified||19 August 2011||
    1313||Author||Jackie Ng||
    1414||RFC Status||ready for review||
    1515||Implementation Status||pending||
    16 ||Proposed Milestone||2.3||
     16||Proposed Milestone||2.4||
    1717||Assigned PSC guide(s)||(when determined)||
    1818||'''Voting History'''||(vote date)||
     
    4141The MapGuide Platform API itself is already modular and abstract enough to have an implementation in MapGuide/AIMS and another implementation in AutoCAD Map3D. What would be really nice is to take the concepts from that presentation to its logical conclusion, into a separate '''desktop-based''' implementation of the MapGuide Platform API
    4242
     43Having a desktop-based MapGuide API opens up a whole new class of mapping applications that can use the same data access, rendering and stylization available in MapGuide, but without needing connectivity to a local or remove MapGuide Server as all the functionality is now self contained. This makes for a suitable foundation for mobile and remote field mapping applications.
     44
    4345== Proposed Solution ==
    4446
     
    6567MgFeatureService for the desktop is a thin wrapper around FDO. Each service API maps to its corresponding FDO command.
    6668
    67 MgResourceService for the desktop wraps a pre-defined directory on the native filesystem. Package loading is also implemented allowing for spatial data portability between a MapGuide Server and an application using the Desktop Platform API.
     69MgResourceService for the desktop wraps a pre-defined directory on the native filesystem. Package loading is also implemented allowing for spatial data portability between a MapGuide Server and an application using the Desktop Platform API. Because it wraps the underlying filesystem and resource ids are mapped to file paths, resource ids are '''no longer case-sensitive''' for windows where file paths are not case-sensitive.
    6870
    6971MgMapBase, MgLayerBase and MgSelectionBase are near 1:1 copies of their MapGuide Server counterparts. Because the desktop implementation does not have to address http statelessness like the MapGuide Web API, the Open() and Save() and Create() methods of MgMapBase are not required and have been removed from the desktop implementation.
     
    7173MgFeatureReader, MgDataReader and MgSqlDataReader wraps their respective FDO reader interfaces.
    7274
    73 This desktop implementation fulfils the data access (MgFeatureService) and rendering/stylization (MgRenderingService) requirements needed to build a functional desktop mapping application.
     75This desktop implementation fulfills the data access (MgFeatureService) and rendering/stylization (MgRenderingService) requirements needed to build a functional desktop mapping application.
    7476
    7577This desktop implementation also includes a functional .net wrapper API, created via the existing SWIG infrastructure already present in the MapGuide source tree.
    7678
    77 Due to the tight dependency on server code, certain object caching and pooling mechanisms are omitted from the desktop implementation.
     79Due to the tight dependency on server code, certain object caching and pooling mechanisms have been omitted from the desktop implementation.
    7880
    7981As already mentioned, the desktop implementation does not have to address http statelessness like the MapGuide Web API, as such certain concepts no longer apply when moving to the desktop:
    8082
    8183 * Sessions
    82  * Map names
     84 * Using the session repository to maintain runtime map state and selection
    8385 * Authentication
    8486 * Resource Security
     
    149151   * GetSchemaMapping
    150152
     153The following resource types are not utilised under the Desktop API:
     154
     155 * Web Layout
     156 * Application Definition
     157 * Print Layout
     158
     159The following functionality present already in MapGuide/AIMS, is not implemented or supported yet under the Desktop API:
     160
     161 * Feature Joins (SelectFeatures currently blindly assumes a non-extended feature class)
     162 * Extended Feature Classes (these are currently skipped in a DescribeSchema operation)
     163
    151164In terms of compatibility, existing MapGuide application code is compatible at the source code level provided the code is targeting the subset of the MapGuide API that is supported and implemented by this desktop API.
    152165