ThinkGeo.com    |     Documentation    |     Premium Support

Upgrade from 6 to 9 or greater

Hello,

Our current application is using version 6 of MapSuite Desktop Edition. We’d like to better understand any performance improvements to MapShape serialization/deserialization and WinformsMap refresh. Because we are serializing features and persisting the serialized object to our database a simple version upgrade would require a data migration. I have read the release notes for interim versions (6-9) and there have been a couple improvements that we could benefit from.

Would it make more sense, from a performance perspective, to upgrade all the way to the current version (10)?

Any suggestions or best practices on deserializing features and re-serializing using the newer version?

Thank you!

Hi Brendon,

We suggest our users upgrade the map into latest version 10, because only the version 10 can get the best support for example we will stop to fix the bug in version 9.

But you should want to know the version 10 get very big changes than all before versions, for example about its dll structure. If you upgrade from version 6 to version 9, your code shouldn’t get many changes, but if you upgrade to version 10, I think you need to double check your code to make it works. You can view more detail information here: http://wiki.thinkgeo.com/wiki/map_suite_10_upgrade_guide

And about the serialization/deserialization part, we don’t have big changes between v9 and v10, you can choose any one of them.

Wish that’s helpful.

Regards,

Ethan

Hello Ethan,

I understand version 10 getting updates and code changes.

The issue we have with serialization in version 6 is that it includes the version of MapSuiteCore and public key token of the DLL that did the serialization. In order to update these we’d have to deserialize with version 6 and then reserialize with a version 10 for example. This would mean maintaining both as references until data migration is complete or to have a separate application to perform the upgrade.

Thanks,

Brendon

Hi Brendon,

It looks your version is not easy to get upgraded.

So I think you maybe plan build a test environment and change reference to one of our special version, test all functions works well after upgrade then did the changes.

If you met any detail question please feel free to let us know.

Regards,

Ethan

I do have a follow up question, does QueryTools retrieve records from the database one by one still or does version 10 build a higher performance query?

Hi Brendon,

We added one new API “GetFeatureIds” on FeatureSource, this API is used to get the all the feature Id from database, and then you can query limited features from database. It can improved some performance for some layers.

Not all layers can use this API to improve query performance, could you please let us know what layers you are using, and what the query sentence? we can help to check if this change can improve your performance.

Thanks
Mark

Hello Mark,

We are using the following layers:

  • Policy land
  • CLU Layer
  • PLSS
  • Section
  • Township
  • County
  • State
  • High risk

The application relies on the following methods on QueryTools:

  • GetFeaturesIntersecting
  • GetFeaturesContaining
  • GetFeaturesByColumnValue
  • GetFeatureById
  • ExecuteQuery

In particular we’re seeing GetFeaturesIntersecting and GetFeaturesByColumnValue to be very expensive. Have those methods been optimized in newer versions? I have read the release notes on the Wiki and didn’t see anything specifically called out as performance improvements around these two, mostly bug fixes.

Hi Brendon,

Thanks for your information, we double check the changes for QueryTools and FeatureSource, we found the functions you mentioned is stable, they hadn’t get changed in new version in past two years, but it should have some changes than version 6 because version 6 is so early version.

Regards,

Ethan