Microsoft has a platform called the Sync Framework which handles synchronization of data between devices being online and offline. You applications use this framework to access data storage. Let's first cover some key terms in this platform.
A replica is a given data store. It can be the source or destination of a sync. A participant is the place where data can be retrieved. There are different levels of participants. If you can run an application on the participant, then it is a full participant. Otherwise it is a partial participant.
There is an engine in the framework that controls the process. It works with a provider, which can be one of 3 types. These types are database, RSS, and file. Alternatively you can write your own customer provider, which sounds like a complex undertaking to me. On a final note, you can apply a filter which restricts what gets synchronized and what does not.
Use the Requirements Already - I am working on a release at work. Initially we were supposed to replicate some bunch of database tables that the customer had in an old system. We did a ...