Какая локальная база данных подходит для приложений Windows 8 Store?
Я программирую Windows 8 Store App
(Metro Design) с помощью C#
и XAML
с помощью Visual Studio 2012
.
Нет необходимости в сервере базы данных с поддержкой нескольких пользователей и т.д.
Я хочу хранить свои данные в локальной базе данных и не знаю, какая база данных подходит для моих нужд.
Может быть, SQLite
? Или есть решения, которые лучше подходят для приложений Windows Store и лучше интегрируются в Visual Studio?
Приложение представляет собой вид календаря, и база данных должна хранить пользовательские данные, состоящие из дат, задач и т.д.
Ответы
Ответ 1
SQLite - рекомендуемая база данных, которая будет использоваться для приложений Win 8.
Ссылки для реализации того же
http://timheuer.com/blog/archive/2012/08/07/updated-how-to-using-sqlite-from-windows-store-apps.aspx
http://code.msdn.microsoft.com/windowsapps/Using-SQLite-Asynchronously-b8372137
https://visualstudiogallery.msdn.microsoft.com/23f6c55a-4909-4b1f-80b1-25792b11639e
Ответ 2
SQLite поддерживается для WinRT.
http://visualstudiogallery.msdn.microsoft.com/23f6c55a-4909-4b1f-80b1-25792b11639e
Ответ 3
Хорошо, это отличный вопрос, который мне пришлось усердно изучить. По умолчанию приложения WinRT НЕ имеют доступа, по крайней мере, к любой структуре базы данных. Это означает отсутствие Express, Compact, CE, SQLite и т.д.
Есть три способа обойти это. Не используйте базу данных и вместо этого используйте локальную файловую структуру, в которой вы храните и извлекаете данные. XML очень хорошо работает с этим, потому что вы можете поддерживать многие из тех функций, которые предоставила вам база данных.
Второй вариант - использовать IndexedDB. Он похож на модель локального хранилища в стиле файла cookie, где файлы сохраняются в папке локальных приложений приложений.
Третий и последний вариант - использовать веб-службы. У WinRT есть доступ к Интернету, что означает, что вы можете писать API и WebServices, которые могут быть вызваны. Это означает, что вам нужно запустить сервер, подключенный к основной базе данных. Когда ваше приложение нуждается в данных, оно вызывает ваш веб-сервис и получает то, что ему нужно.
В целом, для приложения, которое вы описываете, первый вариант может наилучшим образом удовлетворить ваши потребности. Храните локальный файл XML в папке приложений и читайте/пишите.
Ответ 4
Мой question был отмечен как дубликат этого вопроса (хотя речь шла о С++ не С#). Мне показалось, что я все равно буду публиковать свои выводы здесь. Приложения С++ имеют другую альтернативу:
Расширяемый механизм хранения (ESE)
Список всех таких API, доступных для приложений Store, можно найти на этой ссылке в разделе Jet.
Ответ 5
Как один из вариантов:
Devart LinqConnect для Metro - полнофункциональное высокопроизводительное ORM-решение для разработки приложений Windows Store с использованием LINQ или ADO.NET для доступа к данным.
http://code.msdn.microsoft.com/windowsapps/A-Simple-Windows-Store-85f29843#content
или следующая ссылка может быть полезна для
http://social.technet.microsoft.com/wiki/contents/articles/18417.windows-store-app-with-a-sqlite-database.aspx