Changes between Version 14 and Version 15 of MapGuideRfc117


Ignore:
Timestamp:
09/07/11 19:11:04 (13 years ago)
Author:
jng
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc117

    v14 v15  
    3535> Although the current build is tightly bound to a server service, it would be useful to create a build profile (free of any server dependencies) that provided a desktop developer to quickly add spatial visualisation and interactivity to their application.
    3636
    37 The web and server-centric nature of MapGuide means that it is currently not possible to have a '''truly disconnected''' desktop client mapping application. Under MapGuide 6.5, this was somewhat possible by using the technique of embedding the ActiveX viewer control and loading a MWF filled with static layer data. Under the current MapGuide, there is nothing that approaches this kind of setup in terms of installation and resource footprint. Currently, if you want to build a MapGuide "desktop" application, you '''have''' to have a MapGuide Server and Web Tier present on the desktop and incur the overhead of having both of these running at the same time.
     37The web and server-centric nature of MapGuide means that it is currently not possible to have a '''truly disconnected''' desktop client mapping application. Under MapGuide 6.5, this was somewhat possible by using the technique of embedding the ActiveX viewer control and loading a MWF filled with static layer data. If you wind the clock even further back, Autodesk had a specialized product for this purpose (Envision/OnSite Desktop) which has long since been discontinued.
     38
     39Under the current MapGuide, there is nothing that approaches this kind of setup in terms of installation and resource footprint. Currently, if you want to build a MapGuide "desktop" application, you '''have''' to have a MapGuide Server and Web Tier present on the desktop and incur the overhead of having both of these running at the same time.
    3840
    3941Clayton Hotson's [http://au.autodesk.com/?nd=class&session_id=5241 AU 2009 Presentation] showed that it was indeed possible to utilize components of the MapGuide stack '''outside''' of the MapGuide Server to create applications that have no server or web tier dependencies (in the case of the AU presentation: A map renderer).
     
    6567 * MgTileService
    6668
     69Also included in mg-desktop, is a WinForms-based map viewer component library which has 80% of the functionality of the AJAX/Fusion viewer, which can be embedded in your own .net applications. The missing 20% is mainly support for tiled map layers and maps with dynamic/tiled layer combinations.
     70
    6771In terms of implementation details:
    6872
     
    145149{{{
    146150
    147 class MgdFeatureService : public MgFeatureService
     151class MG_DESKTOP_API MgdFeatureService : public MgFeatureService
    148152{
    149153...
     
    180184    // Deletes features from the specified feature class of the specified feature source with the specified filter using the specified transaction
    181185    int DeleteFeatures(MgResourceIdentifier* resource, CREFSTRING className, CREFSTRING filter, MgTransaction* trans);
     186};
     187
     188}}}
     189
     190=== MgdLayer ===
     191
     192Adds extra convenience methods for new APIs in MgdFeatureService
     193
     194{{{
     195
     196class MG_DESKTOP_API MgdLayer : public MgLayerBase
     197{
     198...
     199
     200PUBLISHED_API:
     201    //Convenience form of MgFeatureService::BeginTransaction()
     202    virtual MgTransaction* BeginTransaction();
     203
     204    //Convenience form of MgdFeatureService::SelectFeaturesExtended()
     205    virtual MgdScrollableFeatureReader* SelectFeaturesExtended(MgFeatureQueryOptions* options);
     206
     207    //Convenience form of MgdFeatureService::InsertFeatures()
     208    virtual MgFeatureReader* InsertFeatures(MgPropertyCollection* propertyValues);
     209
     210    //Convenience form of MgdFeatureService::UpdateFeatures()
     211    virtual int UpdateFeatures(MgPropertyCollection* propertyValues, CREFSTRING filter);
     212
     213    //Convenience form of MgdFeatureService::DeleteFeatures()
     214    virtual int DeleteFeatures(CREFSTRING filter);
     215
     216    //Convenience form of MgdFeatureService::InsertFeatures()
     217    virtual MgFeatureReader* InsertFeatures(MgPropertyCollection* propertyValues, MgTransaction* trans);
     218
     219    //Convenience form of MgdFeatureService::UpdateFeatures()
     220    virtual int UpdateFeatures(MgPropertyCollection* propertyValues, CREFSTRING filter, MgTransaction* trans);
     221
     222    //Convenience form of MgdFeatureService::DeleteFeatures()
     223    virtual int DeleteFeatures(CREFSTRING filter, MgTransaction* trans);
    182224};
    183225
     
    216258
    217259 * MgTransaction support
     260 * Aliases
    218261
    219262In 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.
     
    229272It is planned, should this RFC be approved, to put the migrated source into a "Desktop" top-level directory under MgDev. This will have minimal impact on the rest of the source tree.
    230273
    231 Also if it hasn't been made clear already, this RFC only concerns the desktop API and not something like a desktop map viewer. The intention behind this RFC is to add the infrastructure to make it possible for such applications to be created. A desktop map viewer may exist in the future as a separate RFC.
    232 
    233274There are no plans to make this desktop API production ready for the 2.3 milestone. The scope of this RFC is to simply have the source of the desktop implementation integrated into the MapGuide source tree in a functional state by that stage. Unless there is interest from Autodesk, maintenance and enhancement of this codebase to keep up to date with future upstream platform and component changes will be a community responsibility
    234275