Q: Sometimes I need to manage data on a client in a SQL Server Compact Edition database and keep the data current through replication. I don’t want to incur the expense of using SQL Server Workgroup Edition as the replication publisher. What’s the best way to keep my data in sync?
A: Microsoft is working on this problem. The goal is to bring SQL Server Compact Edition into more desktop applications and let you synchronize data more easily. Microsoft has released the new ADO.NET 3.5 Synchronization Services classes, which let you connect two database systems and keep the data current. The ADO .NET Synchronization Services classes are smarter than remote data access (RDA) and have less overhead and less need for an expert DBA than merge replication does. Sync Services is a service-based API that is coded not unlike ADO.NET and that supports heterogeneous databases (i.e., the databases don’t have to be the same type or architecture), incremental change tracking, conflict detection and resolution, and many more features. What Sync Services doesn’t do (yet) is support schema changes or use on devices. For more information about ADO .NET 3.5 Synchronization Services, see SQL Server 2005 Books Online. For more information about SQL Server Compact Edition, see my eBook “Hitchhiker’s Guide to Microsoft SQL Server 2005 Compact Edition” (www.hitchhikerguides.net/EBooks/default.aspx).