18

Я пытаюсь найти API в WinRT, который позволит мне создать локальную базу данных, которая может использоваться для хранения данных для случайно подключенного приложения. Я ищу что-то вроде SQL Compact Edition.Локальное хранилище баз данных для приложений WinRT/Metro

Я видел различные сообщения на различных досках, указывающих, что либо

  • (а) не будет локальные базы данных какими бы они ни
  • (б) не местные «сервера» базы данных (то есть экземпляры типа SQL Express)
  • (c) Локальный код базы данных под названием «Jet Blue».

У кого-то есть окончательный ответ на этот вопрос? Я не хочу начинать эту дорогу, если она заблокирована.

+0

В настоящее время локальное решение для базы данных отсутствует. Сказать глупо, угадать, заблокирована ли эта дорога, она даже не в бета-версии. –

+0

Hans; это честный комментарий. Я понимаю, что мы даже не попали в бета-версию, я просто надеялся, что кто-то, возможно, нашел еще несколько документов, которые я пропустил. Благодарю. –

+1

Существует идеальное решение для локальной базы данных, называемое jet blue ... – fabspro

ответ

0

Существуют сторонние решения, выходящие или уже выпущенные. CodePlex имеет один - http://sqlwinrt.codeplex.com/

Другой вариант, требующий некоторой работы с вашей стороны, - проксировать доступ к базе данных через веб-службу.

+0

Спасибо за это. Я знал, что мне нужно будет предоставлять веб-службы для основной базы данных, но поскольку приложение будет использоваться в тех областях, где недоступна возможность подключения (например, под землей), я не могу полагаться на это для всех видов использования. –

+0

Нет проблем. Я понимаю проблему, связанную с веб-службой и связанную или нет. Плюс это работа с вашей стороны. Доступны классы подключения, которые предоставляют вам информацию о сети (ConnectionProfile.Connected), расположенную в пространстве имен Windows.Networking.Connectivity. В качестве другого пользователя, упомянутого выше, вы также можете полагаться на INDEXDB (http://msdn.microsoft.com/library/hh673548.aspx). –

3

Там нет SQL CE для Metro.

а) не будет локальные базы данных какими бы они ни

Это не так. SQLite должен работать на WinRT. Вы можете загрузить код here и включить два основных файла в свой проект WinRT. Для компиляции и прохождения сертификации вам необходимо убедиться, что вы используете правильные вызовы замены WinRT для вызовов Win32, которые не поддерживаются. Стороннее решение Bob, о котором упоминалось, представляет собой оболочку WinRT, она не включает изменения в SQLite для прохождения сертификации.

(б) не местные "сервера" базы данных (экземпляры типа, т.е. SQL Express)

Это кажется маловероятным, что будет SQL Express для метро.

(c) Локальный код базы данных под названием «Jet Blue».

Если вы имеете в виду механизм Microsoft Jet Database, да, это похоже на поддержку, но я бы предпочел использовать SQLite.

Также помните, если вы используете HTML/JS у вас есть возможность использовать индексированную

0

Вы действительно нуждаетесь в «хранилище данных иногда подсоединенное приложение»? Это звучит немного для меня. Почему бы не сериализовать данные (различные варианты) для хранения самостоятельно?

+0

Jasper: Если вы возьмете (например) сценарий коммивояжера, который пытается принимать заказы в местах, где нет доступных подключений, тогда да, я думаю, что база данных - лучший вариант - особенно когда список продуктов (ов) являются большими, и вы хотите иметь возможность выполнять поиск и т. д. Тем не менее, я соглашаюсь (в какой-то момент), что вы можете иметь все, что хранится в объектах, и сериализовать их при выходе приложения. –

4

Возможно, вам стоит взглянуть на SQLite3-WinRT, обертку для SQLite, которую мы написали, чтобы использовать ее в приложении в стиле метро. Он содержит версию SQLite, которая использует только API, совместимый с WinRT, и компонент WinRT для использования в приложениях C# и JavaScript.