locked
SQL CE versus Express on the client side RRS feed

  • Question

  • When I first started using the Sync Framework with a SQL Server 2K8 back-end, the only option for the client-side database engine was SQL CE.  My app is a standard WPF application that runs on PCs - nothing really "compact" about it - but we are using SQL CE so that we can take advantage of the Sync Framework.

    Everything is working great, but we are running into a few performance issues (not much data but complex schema, and yes before you ask the database is very well designed thank you very much).

    Do I understand correctly that you can now use Express Edition on the client?  If so, does it run faster than SQL CE?  Also, what would be involved in converting from SQL CE to SQL Express on the client machines?

    I have created this application by simply adding a "Local Database Cache" to my C# project and then following the wizard to set it up.  To cause a sync, I simply call SyncAgent.Synchronize().  I really have no idea how it all works, but it works GREAT.  I just wish that the app itself ran a little faster.

    Saturday, January 9, 2010 3:22 AM

Answers

  • A new sample code for sync between SQL server and SQL Express server was provided, http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=3762 .  Please take a look. 
    Usually it won't require a lot of code change form the sync App level.
    Thanks.
    Leo Zhou ------ This posting is provided "AS IS" with no warranties, and confers no rights.
    Monday, January 11, 2010 4:11 PM
    Answerer

All replies

  • By the way, I THINK that I am using Sync Framework 2.0 but I am not sure and don't know how to tell.  When I look at the properties of the Microsoft.Synchronization.Data dll which is referenced in my project it says that it is version v2.0.50727
    Saturday, January 9, 2010 3:31 AM
  • #1 - You can use Express Edition on the client.
    #2 - In general, you can get better performance using Express BUT it depends on your application and scenarios - CE may not be bad either. 
    #3 - SQL CE supports private deployment i.e. XCOPY. You do not need to install it on every client's machine. Which is not true for express. Not sure if that matters for you.
    Monday, January 11, 2010 3:24 AM
  • #1 - You can only use SQL Express when using the 'Collaboration scenario'. The "Local Database Cache" uses the 'Offline scenario' providers, which do not support SQL Express. There is a unsupported sample provider however, with some known bugs: http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=1200

    With regard to the version numbers, its a bit of a mess if you ask me. The numbers vary from version 1.0.0.0 to version 3.5.0.0. I did come across some help or post about why (older versions of the ADO.NET providers already having a version 2.0.0.0; and sync'ing the version number for de SQLCE provider with that of SQL CE; i.e. 3.5.0.0) but I can't find it back anymore.
    Monday, January 11, 2010 12:50 PM
  • A new sample code for sync between SQL server and SQL Express server was provided, http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sync&ReleaseId=3762 .  Please take a look. 
    Usually it won't require a lot of code change form the sync App level.
    Thanks.
    Leo Zhou ------ This posting is provided "AS IS" with no warranties, and confers no rights.
    Monday, January 11, 2010 4:11 PM
    Answerer