EDIT: To clarify, I am referring to the local database support: Local Database for Windows Phone 8 using Microsoft.Phone.Data.Linq namespace. I believe that the technology is based on SQL CE.
I have an existing Windows Phone 8 application that I would like to migrate to the new Universal Windows application framework. The application relies heavily on Linq to SQL that is baked into the Windows Phone Silverlight API. I understand that I can stick with Silverlight, but it seems to me that it is only a matter of time before Microsoft pushes us all to Universal. Additionally, it just makes sense if I want to present this application as a Windows application too.
So, I'm really struggling with how I could make this transition and not screw my existing users over. Clearly I could just rearchitect the application with a different data layer and let the users re-create their configuration, but that isn't a desireable way to treat my users.
I'm happy to migrate to a different persistence mechanism, but still the problem remains of how to get their existing configuration to migrate the data? The only option that I've come up with is to create an intermediate version using Silverlight that migrates the data to a new format, and then to later upgrade the application to universal. In this scenario it is still possible to lose users along the way if they miss the intermediate upgrade.
Ideas?
Amm... I'm not shure, but SQL for Windows 8.1 is already available and SQL for Windows Phone 8.1 is in preview status. It's not a LinqToSQL, but it works. So, I think, You can try to use it to interact with current data-files on your users clients, until they are SQL-database too. Try this: http://blog.tpcware.com/2014/04/universal-app-with-sqlite-part-1/
An intermediate release of your Silverlight app that performs the migration is the best way to go. If you have that version in the store for a while, you should get most of your users transitioned over, especially once they upgrade to Windows Phone 8.1, which auto-updates apps by default.