Adrien,
You will need to use VS2005 in order to develop applications with SQL Mobile.
In terms of upgrading, there are a number of considerations - upgrading the .NET Compact Framework, upgrading any existing .SDF files, and if you are using RDA or Merge Replication, upgrading the client replication tools. Perhaps the easiest way to achieve this is to post the new CABs to an IIS site and allow existing users to pull self-installing CABs from within Pocket Internet Explorer. Have the user synchronize any existing SQL CE data with the server, and then either perform a replication with AddOption.CreateDatabase to create the new SQL Mobile database dynamically on device, or provide a "starter" SQL Mobile database that can be included in the app CAB file (include it in your VS2005 project as Content)
SQLMobile does automatically reclaim unused space and recalulates index stats, but you should read the SQL Mobile Books OnLine and explore the new methods the SqlCeEngine object exposes that allow finite control over WHEN this happens and specific behaviors. It is vastly better than SQL CE where the solution to all performance and corruption problems was to compact the database.
Replication with SQL Server 2000 SP3a and later is supported. I have been helping a few people who are having trouble with this model though - if you have a very simple merge replication publication, it will work well. I am seeing issues with complex filters on the publication and of course you lose all of the enhancements that come with the SQL Mobile server tools that depend on SQL Server 2005. These are significant things like column-level tracking of changes and ability to propagate simple schema changes to the subscriber.
My suggestion would be to do a proof of concept with SQL Mobile and your existing application. There is an upgrade tool that runs at the command line on device that can convert a SQL CE database to SQL Mobile.
Have fun,
Darren
.NET Compact Framework MVP |