ThinkGeo.com    |     Documentation    |     Premium Support

Coding differences between WPF and WinForms

Hello,


I just downloaded the WPF trial.  We are looking at the possibility of the next version of our software switching to WPF for both the mapping and the interface.  In running through the getting started guide I saw almost no difference in the coding.  From the API standpoint, are there any considerable differences between doing the coding using the WPF version vs. the WinForms version or is it all in the low-level map rendering?  At some higher level of complexity will I encounter considerable coding differences or are the two APIs more or less identical?  We have a DLL that does all the mapping grunt work...it's perhaps 5,000 lines of code and we're wondering how much of it actually would need to be modified or rewritten if we switched to the WPF version.


We have our data storted in SQL Server.  Can we expect any significant map drawing improvements using WPF?  In other words, how much of the draw time might be from getting the data from SQL Server in contrast to actually rendering the map?  The getting started guide says the WPF version uses multithreading...does that include retrieving the data from the data source?


Thanks for any comments,


Allen



 Hi Allen, 


 
Thank you for evaluating MapSuite WPF Desktop Edition. As you already noticed our HowDoISamples that WPF Desktop's code is almost the same as Winform Edition. Also WPF has some special features other than the features of Winform Edition. See the user experience is better and smooth while panning or zooming; and more integrated functions like PanZoomBar etc. It is easy to extend to add new map tools easily.
 
According to your questions, please see my detail below.
 


        
  1. The API are almost the same, they both have overlays, adornments etc. But there are slight difference because their structures are different. On the other hand, they both are built base on MapSuiteCore, so those APIs (Such as Layers, Styles, Canvas, Features, Shapes etc.) are exactly the same. To transfer you existing code to WPF, I think it won't be difficult. Please try to build some code and feel free to let us know if you have any trouble on doing this.

         

  2.     
  3. About querying data from SQL server question. Our answer is exactly the same. But WPF has more options. For example, WPF's overlay is multi-tiles by default. This is different from Winform Edition. In this way. The tiles is drawn separately, and it is smoother while panning/zooming. Also, we also support multithread while drawing, so in some cases, it will be faster and better CPU usage than Winform Edition.


By the way, MapSuite GisEditor is built above WpfDesktopEdition. It is in beta currently, but you can still play around it to get at first view. gis.thinkgeo.com/Products/GI...fault.aspx
 
Thanks and feel free to let us know if you have more queries.
Howard

Good morning Howard, 
  
 Thanks for the response.  Your comments are exactly what I was asking about and will be very useful.  I’m sure the boss would be pleased to hear that a lot of the code could be reused and the map performance can be better.  In fact, I forwarded your response to him to see.  It’s always a good idea to pass along good news to the boss! 
  
 I don’t know when the decision will be made about this potential switch.  We are also considering switching to SQL Server Express 2012’s LocalDB to simplify the installation process (Express 2008 seems to take a week to install) and just earlier this morning was I able to use all of our production code, with just minor tweaks for connection string and SRID differences, to get MapSuite to load a fully-styled map with the data in LocalDB. 
  
 Allen

Hi Allen, 
  
 Thanks for your reply, I hope our WPF Edition will bring a better customer experience, and also glad to hear that everything goes well with sql server 2012. If you have any more question, please feel free to let us know. 
  
 Best Regards 
  
 Johnny