Как я могу перенести свое приложение WP8 на универсальное, если оно использует локальный linq to sql db?

РЕДАКТИРОВАТЬ: Чтобы уточнить, я имею в виду поддержку локальной базы данных: Локальная база данных для Windows Phone 8 с использованием пространства имен Microsoft.Phone.Data.Linq. Я считаю, что технология основана на SQL CE.

У меня есть существующее приложение Windows Phone 8, которое я хотел бы перенести на новую платформу универсальных приложений Windows. Приложение в значительной степени зависит от Linq to SQL, встроенного в Windows Phone Silverlight API. Я понимаю, что могу придерживаться Silverlight, но мне кажется, что это только вопрос времени, когда Microsoft подтолкнет нас всех к Universal. Кроме того, это просто имеет смысл, если я хочу представить это приложение как приложение Windows.

Итак, я действительно борюсь с тем, как я мог бы сделать этот переход и не обмануть своих существующих пользователей. Ясно, что я мог бы просто изменить архитектуру приложения с другим уровнем данных и позволить пользователям воссоздать свою конфигурацию, но это нежелательный способ обращения с моими пользователями.

Я рад перейти на другой механизм сохранения, но по-прежнему остается проблема, как заставить их существующую конфигурацию перенести данные? Единственный вариант, который я придумал, это создать промежуточную версию с помощью Silverlight, которая мигрирует данные в новый формат, а затем обновить приложение до универсального. В этом сценарии по-прежнему можно потерять пользователей, если они пропустят промежуточное обновление.

Идеи?


person CactusPCJack    schedule 18.05.2014    source источник
comment
возможный дубликат Перенос данных из Windows Phone (Silverlight) в универсальное приложение   -  person Rowland Shaw    schedule 07.06.2014


Ответы (2)


Лучше всего использовать промежуточный выпуск приложения Silverlight, выполняющий миграцию. Если у вас есть эта версия в магазине какое-то время, вы должны перевести большинство своих пользователей, особенно после того, как они перейдут на Windows Phone 8.1, которая автоматически обновляет приложения по умолчанию.

person Sean McKenna    schedule 22.05.2014
comment
Я иду по этому пути. Выпуск обновленной версии моего приложения 8.0 с логикой миграции, которая копирует существующую базу данных в SQLite. Использование SQLite-Net и CSharp-SQLite. Я должен иметь возможность повторно использовать свои объекты с минимальными изменениями кода. - person CactusPCJack; 15.06.2014
comment
Что происходит с пользователями на более ранних сборках? - person Milan Aggarwal; 16.09.2014

Эм... Я не уверен, но SQL для Windows 8.1 уже доступен, а SQL для Windows Phone 8.1 находится в состоянии предварительного просмотра. Это не LinqToSQL, но он работает. Итак, я думаю, вы можете попробовать использовать его для взаимодействия с текущими файлами данных на ваших пользовательских клиентах, пока они тоже не станут SQL-базой данных. Попробуйте это: http://blog.tpcware.com/2014/04/universal-app-with-sqlite-part-1/

person Ermiq    schedule 20.05.2014
comment
Использование SQLite было бы направлением, в котором я мог бы пойти, но как прочитать существующие данные пользователей для выполнения преобразования? Это вызов. - person CactusPCJack; 21.05.2014
comment
Упс... Я забыл про "изолированное хранилище". А как насчет интеграции SkyDrive? Вы можете внести небольшие изменения в текущее приложение, чтобы показать пользователям уведомление, в котором вы объясните, что, если они не сделают резервную копию данных, они могут их потерять. Официальный релиз WP8.1 еще не готов, и вас ждет много работы по изменению вашего приложения. Итак, этот, вероятно, долгий период — хорошее время, чтобы уведомить всех ваших пользователей. - person Ermiq; 22.05.2014
comment
Привет! Я нашел это: msdn.microsoft. com/en-us/library/dn642081%28v=vs.105%29.aspx В разделе «Обновите опубликованное приложение Windows Phone 8» говорится, что данные в изолированном хранилище можно сохранить, даже если вы обновитесь до 8.1 Среда выполнения Windows (и Silverlight 8.1 тоже). Спасибо за соответствующую тему: stackoverflow.com/questions/23787815/ - person Ermiq; 22.05.2014