Compact Framework, what synchronization method to choose

Posts   
 
    
Posts: 6
Joined: 02-Jan-2007
# Posted on: 24-Jan-2007 21:25:46   

Hi!

My company developed a windows mobile application using CF 1. It's for a company who does service on fire protection systems and installs them. Their service guys synchronize their pda's, get their service orders then they synchronize back after their work is done and they've updated the orders.

I've got the task to rewrite the whole app from scracth using CF 2 and Sql Server CE or Sql Server Mobile. I really want to use llblgen for this but that's not where the "problem" is, it's like for everyone else, synchronization. There are a number of ways to synchronize data between the smart device and a server. Our old solution was to send the data as a dataset using webservices and then read it into the application. However the amount of data now is 3-4mb which is one reason we want to rewrite it.

What our research have show is this:

  • Sql server replication, merge Problem with having control of what get merged.

  • Sql Server Remote Data Access Simple push pull whole tables, not really that interesting for my app.

  • Remoting There are not remoting in CF but there are workarounds. Remoting is fast compared to webservice. If you do .NET in both applications this is interesting but you have to write it all by yourself.

  • Webservices Easy to setup, slow, lot of overhead with soap. In our application, time for synchronization isn't critical, if it take 10 seconds or 3 minutes it's not a problem.

To choose a synchronization method is really how the application is suppose to work and what demand the client has. Sql server merge seems very nice but does anyone have knowledge about pitfalls, what happens if synch stops in the middle, pda user drops his pda and all data is lost. Will there be a rollback on the serverside? My client has declared what fields are "owned" by the server and what are "owned" by the pda when merging. How easy is it to setup that kind of thing in Sql server's merge?

I think I will go for webservices, using timestamps everywhere and doing my own merging routine. Anyone have any suggestions or real life experience?

Chester
Support Team
Posts: 223
Joined: 15-Jul-2005
# Posted on: 28-Jan-2007 18:35:27   

I have some experience with CE development, and we decided to go with webservices as well. It was the only approach that I could easily debug and easily deploy without learning the inner-workings of sql synchronization, which I've never trusted anyway. However, I was dealing with single-record-at-a-time scenarios and didn't need therefore to synchronize a lot of data. If you're only dealing with a small amount of data though, which is usually the case for CE apps in my experience, this is the easiest approach.