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?