For anyone who has played around with the betas of Visual Studio 2008 you will have noticed that the default engine for SQL Server Compact Edition is version v3.5. If you attempt to access a v3.1 database you will get prompted to upgrade to the new engine. Unlike the framework version, which you can now specify which version to use, the SSCE engine version can’t be changed. Unfortunately this seems to be a known issue with Visual Studio 2008 that is unlikely to be fixed before RTM.
What does this mean for you as a developer and why should you care about the SSCE version? Well the most significant reason for caring about the version is whether the SSCE engine is in ROM on the device. With Windows Mobile 6 devices version v3.1 of SSCE ships in ROM which means that it is going to be significantly faster and consume less RAM when your application runs. If you then push out an application that uses v3.5 of the engine you will then have two versions of SSCE on the device – depending on your requirements/constraints this may or may not be an issue that you need to consider.
So what can you do about this? The developer story is not great at this point in time but so long as you only use functionality that is available in v3.1 of the engine then you should be able to deploy your application (less the SSCE engine) without making any changes. Of course this doesn’t work particularly well if you are deploying an SSCE database (ie an sdf file) out with your application – you will have to manually create this using the v3.1 engine in order for your application to work with it.
Alternatively you can just live with the penalty of having two SSCE engines on the device. There are some improvements in the v3.5 engine that you will most likely want to take advantage of so this hit might not be as bad as it would seem initially.