The Microsoft Sync Framework enables data synchronization in .NET applications in a hub-and-spoke or peer-to-peer relation. It uses metadata to synchronize datasets from different sources and formats to subscribers.
Sync Framework DevCenter
https://msdn.microsoft.com/en-us/sync/default.aspx
Sync Framework Samples
http://archive.msdn.microsoft.com/sync
EDIT: this page seems to have moved. Search for 'sync framework' on the MSDN samples gallery like this.
FAQ
Q: Can you use Sync Framework to sync data over the internet/network/... ?
A: Yes, see the 'N-tier' samples on the sample page above for examples using wcf.
Q: What's the difference between Sync Framework 2.0, 2.1 and 4.0 ?
A: (imho) 2.0 = offline data capabilities (hub and spoke)
2.1 = collaborative sync (peer to peer)
4.0 = 2.1 + azure / odata / wp7 (2.1+4.0 is like .NET 2.0+3.0: a layer cake)
Q: Can you use Sync Framework + SqlServer2008 change tracking to detect changes on the server?
A: Yes, see the sample code in this msdn article.
Q: Can you use sql-express on the client and SqlServer2008 change tracking on the server?
A: Yes (although this appears not to be supported by Microsoft because it uses an unsupported SqlExpressClientProvider sample). See this question.
Q: Sync Framework 2.0 uses datasets to transfer changes. Doesn't this get awfully slow over the internet?
A: Dataset serialization is indeed suboptimal in it's default state. Use a dataset surrogate or binary serialization (but only over binary encoding like net.tcp). Compress if needed, see this comparison.