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:

  1. 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.
  2. Install Sync Framework 1.0 SP1 or Sync Framework 2.1.
  3. Install SQL Server Compact 3.5 SP2.
  4. 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.
  5. 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.
  6. If you prefer, you can also explicitly upgrade the database by using the SqlCeSyncStoreMetadataUpgrade class.