Clarifying Sync Framework and SQL Server Compact Compatibility
Sync Framework and SQL Server Compact install with several versions of Visual Studio and SQL Server, and each version of Sync Framework is compatible with different versions of SQL Server Compact. This article clarifies which versions of Sync Framework are installed with Visual Studio and SQL Server, lays out a matrix that shows which versions of SQL Server Compact are compatible with each version of Sync Framework, and walks you through the process of upgrading a SQL Server Compact 3.5 SP1 database to SQL Server Compact 3.5 SP2.
Sync Framework and SQL Server Compact Versions that Install with Visual Studio and SQL Server
The following table lists the version of Sync Framework and SQL Server Compact that is installed with Visual Studio or SQL Server.
Container Product | Sync Framework Version | SQL Server Compact Version |
---|---|---|
Visual Studio 2010 SP1 | Sync Framework 1.0 SP1 | SQL Server Compact 3.5 SP2 |
Visual Studio 2010 | Sync Framework 1.0 SP1 | SQL Server Compact 3.5 SP2 |
Visual Studio 2008 SP1 | Sync Services for ADO.NET 1.0 (installed as part of SQL Server Compact 3.5 SP1) |
SQL Server Compact 3.5 SP1 |
SQL Server 2008 R2 | Sync Framework 1.0 | SQL Server Compact 3.5 SP2 |
SQL Server 2008 | Sync Framework 1.0 | SQL Server Compact 3.5 SP1 |
Compatibility between Sync Framework and SQL Server Compact
Early versions of Sync Framework were built to work with SQL Server Compact 3.5 SP1. When SQL Server Compact 3.5 SP2 was released, Sync Framework was redesigned to work with the new public change tracking API provided as part of the SQL Server Compact 3.5 SP2 release. Sync Framework components that use this new API are not compatible with earlier releases of SQL Server Compact, which is why later versions of Sync Framework are no longer compatible with SQL Server Compact 3.5 SP1.
The following table lists the versions of SQL Server Compact that are compatible with the SqlCeSyncProvider class on a desktop computer.
Sync Framework Version | Sql Server Compact 3.5 SP2 | Sql Server Compact 3.5 SP1 | Sql Server Compact 3.5 | Sql Server Compact 3.0 |
---|---|---|---|---|
Sync Framework 2.0 | Yes | Yes | No | No |
Sync Framework 2.1 | Yes | No | No | No |
The following table lists the versions of SQL Server Compact that are compatible with the offline-only provider that is represented by the SqlCeClientSyncProvider class on a desktop computer.
Note that the SqlCeClientSyncProvider class should be used for existing applications only and has been superseded by the SqlCeSyncProvider class.
Sync Framework Version | Sql Server Compact 3.5 SP2 | Sql Server Compact 3.5 SP1 | Sql Server Compact 3.5 | Sql Server Compact 3.0 |
---|---|---|---|---|
Sync Framework 1.0 | Yes | Yes | No | No |
Sync Framework 1.0 SP1 | Yes | No | No | No |
Sync Framework 2.0 | Yes | Yes | No | No |
Sync Framework 2.1 | Yes | No | No | No |
The following table lists the versions of SQL Server Compact that are compatible with the offline-only provider that is represented by the SqlCeClientSyncProvider class on a Windows Mobile 6.1 or 6.5 device.
Sync Framework Version | Sql Server Compact 3.5 SP2 | Sql Server Compact 3.5 SP1 | Sql Server Compact 3.5 | Sql Server Compact 3.0 |
---|---|---|---|---|
Sync Services for ADO.NET for Devices 1.0 SP1 | Yes | Yes | No | No |
Upgrading from SQL Server Compact 3.5 SP1 to SQL Server Compact 3.5 SP2
If you have a SQL Server Compact 3.5 SP1 database that participates in a synchronization community and you want to upgrade to a version of Sync Framework that is not compatible with SQL Server Compact 3.5 SP1, you can upgrade both Sync Framework and SQL Server Compact and continue to synchronize your database by following these steps:
- You have a working application that uses Sync Framework 1.0 or Sync Framework 2.0 to synchronize a SQL Server Compact 3.5 SP1 database.
- Install Sync Framework 1.0 SP1 or Sync Framework 2.1.
- Install SQL Server Compact 3.5 SP2.
- Rebuild your application to use Sync Framework 2.1 or use assembly redirection to load the 2.1 assemblies. For more information, see Sync Framework Backwards Compatibility and Interoperability.
- Synchronize your SQL Server Compact database. Sync Framework detects that the version of SQL Server Compact has changed and automatically upgrades the format of your database metadata to work correctly with Sync Framework 2.1. For more information, see Upgrading SQL Server Compact.
- If you prefer, you can also explicitly upgrade the database by using the SqlCeSyncStoreMetadataUpgrade class.