Правильный способ обработки роумингового хранилища данных с помощью C# в Metro?

Я создаю приложение C# Metro/Modern UI, и мне нужен способ обработки некоторых пользовательских данных (в основном, небольших строк, но довольно большого их количества), и, в частности, я бы хотел, чтобы данные перемещались вместе с учетная запись пользователя Microsoft. Я знаю, что вы можете справиться с этим с помощью roamingSettings, но похоже, что он должен использоваться больше для хранения идентификаторов пользователей и других одноразовых настроек, тогда как я буду использовать его для хранения всех данных моего приложения, и, похоже, быть пределом количества места, которое я получаю с этим. Я думал об использовании SkyDrive для размещения папки "MyApp Data", но я не могу понять, как загрузить в нее простой текстовый файл:(

Кажется, что лучший способ справиться с этим - создать учетную запись в Azure или EC2, а затем создать простой PHP API, чтобы я мог получить доступ к базе данных SQL из своего приложения, но я бы предпочел не платить за хостинг.

Я видел другие вопросы о хранилище приложений Metro на StackExchange и на собственных форумах Microsoft, но большинство из них касаются локального хранилища и использования серверов SQL для управления хранилищем.

Так что я должен просто использовать roamingSettings и следить за квотой, должен ли я использовать облачный хостинг, или есть лучшее решение, о котором я еще не подумал?

Спасибо!

2 ответа

Решение

Несколько вещей о настройках роуминга: - они предназначены для этого, настройки. Не как схема репликации данных, поэтому квота - они не являются немедленными. Вы можете создать параметр с именем "highpriority", который будет реплицироваться менее чем за минуту, но другие параметры могут занять несколько минут для репликации. Если вам нужно, чтобы данные были доступны немедленно, настройки роуминга не доступны. Кроме того, если вы превысите квоту, все ваши данные перестанут реплицироваться, что плохо.:) Он также не будет реплицироваться между различными версиями вашего приложения, даже если настройки одинаковы. Кроме того, если вы не используете приложение в течение определенного периода времени (по умолчанию 30 дней), данные роуминга будут удалены из облака. Я почти уверен, что данные роуминга также можно отключить с помощью групповой политики в настройках предприятия.

Вы можете использовать SkyDrive. Убедитесь, что вы загрузили Live SDK. Обзор использования SkyDrive находится здесь... http://msdn.microsoft.com/en-us/library/live/hh826521.aspx По сути, это просто набор API REST. Посмотрите пример фотографии SkyDrive для приложения, которое загружает файлы в SkyDrive http://code.msdn.microsoft.com/windowsapps/Live-SDK-Windows-Developer-8ad35141

Я бы пошел на облачное решение. Сотрудник MS сказал мне, что данные в роуминге - "лучшее усилие", нет никакого контроля, если они действительно работают, иногда это работает, иногда просто нет.

Лично я бы попробовал использовать опцию skydrive

Другие вопросы по тегам