<P> The Sync Framework runtime provides synchronization functionality, without being tied to any data store or data transport protocols . By providing data source specific synchronization providers, any data source can be supported . For example, using proper synchronization providers, files can be synchronized across computers, project updates synchronized across project participants, or media synchronized across devices . Sync Framework ships with three providers: Microsoft Sync Services for ADO.NET, Sync Services for File Systems, and Sync Services for SSE . Sync Services can be used to synchronize devices by supplying providers for the device . Similarly, PIM software such as Microsoft Office Outlook and media libraries such as Windows Media Player can also be supported by providing suitable providers . </P> <P> The providers are used to enumerate the items in a data store, each identified by an Item ID . In addition, they also have to maintain synchronization metadata and the state of the data store, so that changes can be enumerated quickly . The metadata is maintained for every instance of the data store (replica) that the provider is attached to . The metadata maintained includes the replica ID, tick count (representing progression in time), conflict log, tombstone log, and the set of the changes the data store has seen (knowledge). A replica ID and tick count pair makes up a version and encodes the state of the data store until that time . Sync Framework defines a set of operation for the Knowledge object for a replica: Contains which determines if the store contains a specified change, Union to merge two knowledge sets, Project to project out the knowledge for a subset of the items, and Exclude to create a new knowledge set without the changes for a subset of the items . The metadata is managed by the metadata storage service which uses an in - process SQL Server Compact database to store the metadata on a per - provider basis . </P> <P> The Sync Services API operates by creating a synchronization session, represented by a Session object . A synchronization session synchronizes data across two synchronization providers - one for the source data store and the other for the destination . Instances of both the providers are passed to the Session object . During a synchronization session, the destination provider sends the knowledge set of the store . The source provider compares the knowledge of the destination with the change set in the source to enumerate the changes and then transfer it to the destination . The destination provider makes sure the changes are not conflicting and merges the changes and updates the knowledge . </P> <Ol> <Li> Snapshot sync (download - only sync): The data in the data source (or a subset of it) is synchronized with clients . </Li> <Li> Upload - only sync: Data in the client is merged to the source replica . </Li> <Li> Bidirectional sync: Both the data sources can be modified independently and changes are synchronized with each other . An n - level sync is achieved by performing multiple bidirectional synchronizations . </Li> </Ol>

What is microsoft sync framework do i need it