У меня есть приложение для Windows Phone 7, которое использует ANID для хранения пользовательских данных на удаленном сервере. Сейчас я готовлю его версию для Windows Phone 8. Когда пользователь загрузит это обновление, предыдущая версия приложения WP7 будет заменена этой новой версией WP8.
Но есть огромная проблема: в WP8 вместо ANID используется ANID2. Я знаю, как преобразовать ANID в ANID2 (преобразование ANID в ANID2 для Windows Phone на C #?). Но мне для этого нужен весь ANID. В WP7 ANID выглядит так: «A = 2E23ACF364795673CD7EBB58FFFFFFFF & E = f48 & W = 3». Я извлекаю 32-символьное значение (2E23ACF364795673CD7EBB58FFFFFFFF) и использую его как UID (я слышал, что оставшаяся часть может быть изменена, но 32 id всегда будут одинаковыми).
Таким образом, я мог бы конвертировать ANID из версии WP7 в ANID2 на лету на удаленном сервере, но у меня нет всех 44 букв - только 32 из них.
Я мог бы обновить версию WP7 другой версией WP7, которая отправляет весь ANID на сервер, но я не могу полагаться на тот факт, что все люди будут обновлять свои приложения, сохранять свои данные на сервере, а затем снова обновлять свои приложения, когда версия wp8 будет доступный.
Итак, мои вопросы:
Есть ли способ получить значение ANID в стиле WP7 в приложении WP8 (возможно, через отражение или c ++)?
возможно ли преобразовать ANID в ANID2, имея только 32-символьную часть uid?
есть ли способ узнать, соответствует ли конкретный ANID2 существующей 32-символьной части ANID?
как я могу преобразовать ANID2 в ANID, если мы знаем GUID разработчика?
может ли пользователь выбрать версию для установки (если доступны версии WP7 и WP8)?
Обновить
Пока что мой обходной путь - предоставить пользователям утилиты wp7 версии wp8, которая генерирует ANID2 из ANID и сохраняет эту пару в удаленной базе данных. Затем пользователь, получивший обновление версии wp8, может продолжить использование своего профиля приложения wp7. Хотя я все еще ищу лучшее решение.
Кстати, я только что понял: пока мы пытаемся следовать идеологии MSFT "One Screen" и пытаемся предоставить нашим пользователям доступ к их данным на всех устройствах MSFT одновременно, это действительно глупо, что MSFT заставляет нас удерживать и каким-то образом синхронизировать три (!!!) разные идентификаторы для одного пользователя, который входит в свои устройства wp7, wp8 и windows 8 с одним и тем же live id! MSFT не хочет, чтобы мы видели этот живой идентификатор так сильно, что дает нам три разных анонимных представления. Смешно, ребята!