Общие сведения о служба хранилища данных в приложениях Xamarin.iOS
Когда следует использовать базу данных
Хотя возможности хранения и обработки мобильных устройств увеличиваются, телефоны и планшеты по-прежнему отстают от своих настольных и ноутбуковых коллег. По этой причине стоит запланировать архитектуру хранилища данных для приложения, а не просто предположить, что база данных является правильным ответом все время. Существует ряд различных вариантов, которые соответствуют различным требованиям, таким как:
- Параметры — iOS предлагает встроенный механизм хранения простых пар "ключ-значение" данных. Если вы храните простые параметры пользователя или небольшие фрагменты данных (например, сведения о персонализации), используйте собственные функции платформы для хранения этой информации. Для iOS вы также можете воспользоваться преимуществами синхронизации iCloud для этих данных как для резервного копирования, так и синхронизации для пользователей с несколькими устройствами.
- Текстовые файлы — входные данные пользователя или кэши скачаемого содержимого (например, HTML) можно хранить непосредственно в файловой системе. Используйте соответствующее соглашение об именовании файлов, чтобы упорядочить файлы и найти данные.
- Сериализованные файлы данных — объекты можно сохранять как XML или JSON в файловой системе. Платформа .NET включает библиотеки, которые упрощают сериализацию и десериализацию объектов. Используйте соответствующие имена для упорядочивания файлов данных.
- База данных — ядро СУБД SQLite доступно для iOS и полезно для хранения структурированных данных, которые необходимо запрашивать, сортировать или иным образом манипулировать. Хранилище базы данных подходит для списков данных со многими свойствами.
- Файлы изображений. Хотя двоичные данные можно хранить в базе данных на мобильном устройстве, рекомендуется хранить их непосредственно в файловой системе. При необходимости можно сохранить имена файлов в базе данных, чтобы связать изображение с другими данными. При работе с большими изображениями или большим количеством изображений рекомендуется спланировать стратегию кэширования, которая удаляет файлы, которые больше не нужно избежать использования всего места в хранилище пользователя.
Если база данных является правильным механизмом хранения для приложения, оставшаяся часть этого документа описывает, как использовать SQLite на платформе Xamarin.
Преимущества использования базы данных
Существует ряд преимуществ использования базы данных SQL в мобильном приложении:
- Базы данных SQL позволяют эффективно хранить структурированные данные.
- Конкретные данные можно извлечь с помощью сложных запросов.
- Результаты запроса можно сортировать.
- Результаты запроса можно агрегировать.
- Разработчики с существующими навыками базы данных могут использовать свои знания для разработки кода доступа к базе данных и данным.
- Модель данных из серверного компонента подключенного приложения может использоваться повторно (в целом или частично) в мобильном приложении.
SQLite ядро СУБД
SQLite — это ядро СУБД с открытым кодом, которое было принято Apple для своей мобильной платформы. Ядро СУБД SQLite встроено в iOS, поэтому для разработчиков не требуется дополнительных возможностей. SQLite хорошо подходит для кроссплатформенной разработки мобильных устройств, так как:
- Ядро СУБД является небольшим, быстрым и легко переносимым.
- База данных хранится в одном файле, который легко управлять на мобильных устройствах.
- Формат файла легко использовать на разных платформах: будь то 32-разрядные или 64-разрядные и большие или маленькие системы.
- Он реализует большую часть стандарта SQL92.
Так как SQLite предназначен для небольших и быстрых, есть некоторые предостережения по его использованию:
- Некоторые синтаксисы соединения OUTER не поддерживаются.
- Поддерживаются только таблицы RENAME и ADDCOLUMN. Вы не можете вносить другие изменения в схему.
- Представления доступны только для чтения.
Дополнительные сведения о SQLite можно узнать на веб-сайте - SQLite.org - однако все сведения, необходимые для использования SQLite с Xamarin, содержатся в этом документе и связанных примерах. Ядро СУБД SQLite встроено во все версии iOS. Хотя этот раздел не описан, SQLite также доступен для использования в приложениях Windows Телефон и Windows.
Windows и Windows Phone
SQLite также можно использовать на платформах Windows, хотя эти платформы не рассматриваются в этом документе. Ознакомьтесь с дополнительными сведениями о примере задач и ознакомьтесь с блогом Тима Хауэра.