ThinkGeo.com    |     Documentation    |     Premium Support

Product Review and Comparison










 




We are develoing a web GIS application. We haven’t decided on which product we will use yet but we have some candidates in our minds. We don’t have enough time to analyze all products thoroughly. Therefore we need some help to speed up the process.  We have some criterias listed below. We wonder if MapSuite is a good match for our needs.



        
  1. Documentation : We need compherensive documentation of the API and inline      source code documentation for Visual Studio. 

  2.     
  3. Ease of development and API’s architecture : API should provide high      level functions (with good documentation that explains details) for quick      development and should conform to Object Oriented paradigms. 

  4.     
  5. We may need support for building a good DAL (Data Access Layer).      Built-in OO Query Language should be fine. We need DB independency.      Therefore overall architecture of API should let us separate concerns well      and change data model without too much effort.

  6.     
  7. It should conform to SOA. We are planning to develop services for web      GIS ( Therefore, objects of API should be serialiazible).

  8.     
  9. Some features we need are listed below. API must satisfy all of them :


-          Ajax support for map navigation (zoom in, zoom out, pan, ...)


-          Tile over fetching


-          Tile Caching 


-          Zoom In / Zoom out effect (blending)


-          Rich visual components



        
  1. Thin client : we need thin client support without plugin. By the way      thin client and thick client (with plug-in) can be good altogether, and also      we would like to know what you think about these two approaches.

  2.     
  3. Regular upgrades and bug fixes               


If you have any opinion about any of these criterias we would be grateful to read your comments.  Thanks...


 


 






 

Below are the answers to your criteria. If you have any additional question you can post them here or we can arrange a quick phone call to go over them in detail.



        

  1.     

    Documentation:


        




        

              

    •         

      We provide detailed API documentation integrated with Visual  Studio.


              


    •         

    •         

      Each API includes intellisense to give you hints on how to  use the API in the design mode.


              


    •         

    •         

      The design ensures parameter names of methods are intuitive  and provide semantic meaning rather than type meaning.


              


    •     



        

  1.     

    Ease of development and API architecture:


        




        

              

    •         

      We provide high level functionality through aggregation of  factored low level components. This approach ensures that if the  high level objects do not meet your needs you can build your own  solution though the use of the low level factored components.


              


    •         

    •         

      We go beyond OO practices and conform to the best practices  for framework design which can sometimes be very different than  traditional OO models.


              


    •         

    •         

      Inheritance is strongly used within our API and abstract  classes such as Style, FeatureSource, Layer, Canvas, BaseShape etc  are easy inherited from to create custom classes. We strictly  adhere to using these classes through our framework.


              


    •         

    •         

      We conform to other best practices such as FXCop.


              


    •         

    •         

      We implement unit test cases on all core APIs and to date  have over 3,000 test cases that run daily.


              


    •         

    •         

      Our mantra with framework design is to make it progressive.  Make the common cases easy, the harder cases harder, and hardest  cases possible.


              


    •     



        

  1.     

    Good support for building a DAL.


        




        

              

    •         

      Our data access piece is composed of an abstract class  called FeatureSource. When you inherit from it you are required to  implement just a few methods and that makes it fully functional. We  have implemented ShapeFile, OracleSpatial, MS SQL 2008, Postgre and  a few others. Source sample can be made available so you can see a  fully working FeatureSource in action.


              


    •     



        

  1.     

    Conform with SOA:


        




        

              

    •         

      Every object is serialize-able in our core framework.  Currently we implement the serialization attribute however in the  near future we plan to implement WCF data contracts.  This  will help for longer term storage of the serialized objects and  resistance to versioning changes.


              


    •         

    •         

      All of our core objects which have state-full resources such  as database connection or other resources use an Open and Close  pattern. This allows you to close them before serialization and  then re-open them on the other side.


              


    •     



        

  1.     

    Feature Support:


        




        

              

    •         

      We have very slick AJAX support mimicking Google Maps in its  visual effect.


              


    •         

    •         

      We have the ability to over fetch tiles to buffer them for  fast panning.


              


    •         

    •         

      We have tile caching and ways to pre-generate tiles.


              


    •         

    •         

      We use a stretching and shrinking transition effect when  zooming in and out.


              


    •         

    •         

      I am not sure on the meaning of “Rich Visual Components”  however we have a nice set of scale bars, zoom bars, scale lines,  restriction layers etc.


              


    •     



        

  1.     

    Thin Client:


        




        

              

    •         

      We run on IE (6, 7, and 8), Firefox (2 & 3). I also  believe we test in Safari but not 100% sure. I think they use the  Mozilla rendering so they are like Firefox.


              


    •         

    •         

      We do not require any plug-ins, ActiveX, Java Applets, Flash  etc.  We do require that the browser have JavaScript enabled.  (This is the default for every browser anyway)


              


    •         

    •         

      We are actively developing a Silverlight version which will  have roughly the same API.  We do not have a published release  date however it should not be long after the Silverlight 2.0 is  officially released. This will give you more development options  for a better interactive experience beyond HTML and JavaScript.


              


    •     



        

  1.     

    Regular Updates:


        




        

              

    •         

      Our development cycle releases new major version every six  months.


              


    •         

    •         

      We build new complete install packages and DLL update patch  zip files daily though they are for internal use.


              


    •         

    •         

      When a product comes out of beta the code is branched and  bugs fixes between releases are done to the last public release  code base and those are built daily.  This ensures that patch  builds have a better chance of fixing the bug without introducing  new unwanted behaviors or unfinished features.


              


    •         

    •         

      We have excellent support.


              


    •         

    •         

      We have an active public forum for free issue resolution.


              


    •         

    •         

      Our goal is to be the best .NET mapping component provider  in the world.


              


    •     



        



        Please let me know if you have any questions.



David


 


 



Thanks for your answers, you've been very helpful. I have some additional questions:



- You said you provided detailed API documentation integrated with Visual Studio. I am trying MapSuite Web Evaluation Edition 2.0 and I cannot see any documentation for any item in the API. Let me show you the screenshot:


img407.imageshack.us/my.php?image=cdak2.jpg


I would expect to see documentation under the signature. Do i need change a setting to see the documentation or is there no documentation on the evaluation version?


- Do your products provide a consistent development environment among them. I mean do they use the same objects for the same needs? Will I be able to use my business code I wrote using your web oriented product when I use your service or desktop oriented products?




<form> onsubmit="return false">
    
    Wikipedia
    Wictionary
    Chambers (UK)
    Google images
    Google define
    The Free Dictionary
    Join example
    WordNet
    Google
    Urban Dictionary
    Answers.com
    rhymezone.com
    Merriam-Webster
    <>0
     
    wvcidfjoguarm
</form>



Baris,


The answers that David provided refer to the 3.0 version of Map Suite. To see all the new features and capabilities David mentioned please take a look at our Web/Services 3.0 Evaluation download located here:



gis.thinkgeo.com/Products/MapSuiteFreeTrialDownloads/tabid/152/Default.aspx


ThinkGeo Support



Ok, this answers my first question, I see that there is inline code documentation in 3.0beta. My second question still stands though:




Posted By Barış  on  10/10/2008 4:42 AM

- Do your products provide a consistent development environment among them. I mean do they use the same objects for the same needs? Will I be able to use my business code I wrote using your web oriented product when I use your service or desktop oriented products?




<form>>
    onsubmit="return false">
    
    Wikipedia
    Wictionary
    Chambers (UK)
    Google images
    Google define
    The Free Dictionary
    Join example
    WordNet
    Google
    Urban Dictionary
    Answers.com
    rhymezone.com
    Merriam-Webster
    <>0
     
    wvcidfjoguarm
</form>



 



Baris,


Our products provide a consistent development environment.  Most objects within different products are the same and users code will not be 100% identical, but quite similar in a lot of cases.


1, Our Web Edition, Services Edition and Desktop Edition(under developing) share the same core assembly -- MapSuiteCore.dll.  That means the fundamental framework of all products are the same. So for any factored functions or let's say you want to extend the existing framework for your specific features for different products, the codes are all the same.


2, Also we are trying to make our highlevel classes share the same APIs for the same functions if possible.  For example, Desktop Edition and SilverLight Edition are under developing now.  To make sure they have the similar APIs, at the disign phase, we mix the 2 teams, have them made requirement investigation and API design togher. Of course the APIs of the 2 assemblies cannot be identical, but I'm sure they will have the same ones if they could.


3, Not just make the APIs consistent, we make the API more decent and easier to use. Have a look at the attached 2 pieces of code for web edition and service edition and I think you can tell how easy it is to write one piece of code if you already familiar with the other. They are both very simple and almost the same.


 You will see more about that if you compare the sample code betweeen released web edition beta and service edition beta.  Any more queries please let me know.  



41-CodeComparison.txt (1.94 KB)

Thanks again for your answers, I have one more  (a little off topic) question. When will we see MapSuite 3.0 products come out of beta? What are your release plans for MapSuite products ?  (including MapSuite Desktop)



Baris,


We planed to have our first Beta released for Desktop Edition / SilverLight Edition at the end of this year. For Web Edition and Service Edition,  we are in the phase of getting feedbacks from customers and we will have them released when we get to a stable status. I'm not sure about the date but I think even the "beta" releases will be well maintained and be avoiding to have any unnecessary break changes to help the consistency. It will become the final release gradually without big API changes.


Ben



Thanks.



Baris, 
  
 It’s always my pleasure.  Thanks for the attention to Map Suite and any queries in the future, we are very pleased to answer. 
  
 Ben 
 

Baris, 
  
   I wanted to followup on this thread and let you know all the products are now released. 
  
 David