Как создать базу данных для windows phone

Создание приложения с локальной базой данных для Windows Phone Mango

В последнее время я работал над новым приложением, списком задач (я знаю, ничего инновационного здесь -_-), но потом я прекратил работу до выхода Mango, по очень веской причине, что с Mango я могу иметь локальную базу данных для хранения и управлять структурированными данными моего приложения! Хлопать в ладоши! Хлопать в ладоши!

Одной из многих новых функций, поставляемых с Windows Phone Mango, является возможность иметь локальные базы данных — базы данных Microsoft SQL Server Compact edition (SQL CE) — для ваших приложений.

База данных находится в изолированном хранилище приложения в виде файла.

Если вы не знакомы с изолированным хранилищем, я настоятельно рекомендую вам прочитать статьи «Все о изолированном хранилище WP7» на веб-сайте WindowsPhone Geek .

Чтобы хранить и извлекать данные в локальной базе данных, приложение Windows Phone должно использовать LINQ to SQL.

« LINQ to SQL обеспечивает объектно-ориентированный подход к работе с данными и включает в себя объектную модель и среду выполнения. Объектная модель LINQ to SQL состоит в основном из объекта System.Data.Linq.DataContext, который действует как прокси для локальная база данных. Среда выполнения LINQ to SQL отвечает за соединение мира объектов (объекта DataContext) с миром данных (локальной базой данных). Эти отношения суммированы на следующем изображении ». MSDN

Еще одна вещь, которую нужно объяснить, — это контекст данных. Контекст данных — это объектная модель, которая представляет базу данных, каждый объект представляет собой набор объектов, использующих «простой старый объект CLR» (POCO) с атрибутами.

Мое приложение ToDo выглядит так:

Как видите, моя главная страница представляет собой панораму, содержащую:

Создание локальной базы данных для Windows Phone

Дополнительные материалы к занятию можно скачать здесь.

Вложенные папки: LocalDataBaseSample

В новой версии операционной системы Windows Phone OS 7.1 появилась возможность хранить информацию в реляционных базах данных, которая выступает в роли изолированного контейнера приложения. Для работы с базами данных приложения Windows Phone используют операторы LINQ to SQL . С помощью LINQ to SQL можно задать схему базы данных , осуществлять извлечение данных , а также сохранять изменения в файле базы данных .

На рис. 33.1 показана связь между приложением и изолированным хранилищем. Для связи с хранилищем в приложении создается объект DataContext.

Перед началом работы с локальной базой данных нужно учесть следующее.

LINQ to SQL используется в качестве ORM engine
Файл базы данных хранится в изолированном хранилище
Для извлечения данных используется LINQ, T-SQL не подходит
Локальная база данных в Windows Phone Mango не увеличивает объем приложения, так как является частью универсальной исполняющей машины
К проекту нужно добавить ссылку на сборку System.Data.Linq
При написании строки подключения используется специфический формат, подобный:

В данной работе мы создадим базу данных, в главной таблице которой будут храниться классы позвоночных животных, а в подчиненной таблице — виды. За основу мы взяли пример, описанный на сайте Microsoft (http://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx), и немного его переработали.

Для работы нам потребуется новая сборка Microsoft.Phone.Controls.Toolkit.dll. Ее можно скачать по адресу: http://silverlight.codeplex.com/releases/view/60291. После инсталляции файла SilverlightforWindowsPhoneToolkit-Feb2011.msi можно узнать местонахождения файла Microsoft.Phone.Controls.Toolkit.dll следующим образом. Выполните следующую последовательность действий: Пуск -> Все программы -> Microsoft Silverlight for Windows Phone Toolkit -> Binaries. Эта сборка содержит следующие полезные компоненты:

AutoCompleteBox
ContextMenu
DatePicker
GestureService/GestureListener
ListPicker
LongListSelector
Page Transitions
PerformanceProgressBar
TiltEffect
TimePicker
ToggleSwitch
WrapPanel

Нам потребуется элемент управления ListPicker. Для успешной разработки приложения нужно скачать и установить Windows Phone SDK 7.1 Beta 2 по адресу http://create.msdn.com/en-us/home/getting_started.

В Visual Studio создаем новое приложение Silverlight for Windows Phone . Назовем его LocalDataBaseSample. В пункте Target Windows Phone Version выберите Windows Phone 7.1.

Скопируйте файл Microsoft.Phone.Controls.Toolkit.dll, описанный выше в папку вашего проекта, например, в папку …\LocalDatabaseSample\LocalDatabaseSample\Bin\Debug. Подключите сборку к проекту, выполнив следующие действия: Solution Explorer -> References -> Add Reference -> Path… -> Microsoft.Phone.Controls.Toolkit.dll.

Далее, нам потребуется подключить к проекту ссылку на сборку System . Data . Linq : Solution Explorer -> References -> Add Reference -> .Net -> System.Data.Linq -> OK.

Для нашего приложения необходимы четыре иконки: appbar. add .rest.png, appbar. cancel .rest.png, appbar. check .rest.png, appbar. delete .rest.png, расположенные по адресу:

C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Icons\dark (64-х разрядные операционные системы)

C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Icons\dark (32-х разрядные операционные системы)

Создайте папку Images (Solution Explorer -> Add -> Create Folder -> Images), скопируйте туда иконки и добавьте к проекту (Solution Explorer -> Images -> Add -> Existent Item).

Создание локальной базы данных для Windows Phone

Дополнительные материалы к занятию можно скачать здесь.

Вложенные папки: LocalDataBaseSample

В новой версии операционной системы Windows Phone OS 7.1 появилась возможность хранить информацию в реляционных базах данных, которая выступает в роли изолированного контейнера приложения. Для работы с базами данных приложения Windows Phone используют операторы LINQ to SQL . С помощью LINQ to SQL можно задать схему базы данных , осуществлять извлечение данных , а также сохранять изменения в файле базы данных .

На рис. 33.1 показана связь между приложением и изолированным хранилищем. Для связи с хранилищем в приложении создается объект DataContext.

Перед началом работы с локальной базой данных нужно учесть следующее.

LINQ to SQL используется в качестве ORM engine
Файл базы данных хранится в изолированном хранилище
Для извлечения данных используется LINQ, T-SQL не подходит
Локальная база данных в Windows Phone Mango не увеличивает объем приложения, так как является частью универсальной исполняющей машины
К проекту нужно добавить ссылку на сборку System.Data.Linq
При написании строки подключения используется специфический формат, подобный:

В данной работе мы создадим базу данных, в главной таблице которой будут храниться классы позвоночных животных, а в подчиненной таблице — виды. За основу мы взяли пример, описанный на сайте Microsoft (http://msdn.microsoft.com/en-us/library/ff431744(v=vs.92).aspx), и немного его переработали.

Для работы нам потребуется новая сборка Microsoft.Phone.Controls.Toolkit.dll. Ее можно скачать по адресу: http://silverlight.codeplex.com/releases/view/60291. После инсталляции файла SilverlightforWindowsPhoneToolkit-Feb2011.msi можно узнать местонахождения файла Microsoft.Phone.Controls.Toolkit.dll следующим образом. Выполните следующую последовательность действий: Пуск -> Все программы -> Microsoft Silverlight for Windows Phone Toolkit -> Binaries. Эта сборка содержит следующие полезные компоненты:

AutoCompleteBox
ContextMenu
DatePicker
GestureService/GestureListener
ListPicker
LongListSelector
Page Transitions
PerformanceProgressBar
TiltEffect
TimePicker
ToggleSwitch
WrapPanel

Нам потребуется элемент управления ListPicker. Для успешной разработки приложения нужно скачать и установить Windows Phone SDK 7.1 Beta 2 по адресу http://create.msdn.com/en-us/home/getting_started.

В Visual Studio создаем новое приложение Silverlight for Windows Phone . Назовем его LocalDataBaseSample. В пункте Target Windows Phone Version выберите Windows Phone 7.1.

Скопируйте файл Microsoft.Phone.Controls.Toolkit.dll, описанный выше в папку вашего проекта, например, в папку …\LocalDatabaseSample\LocalDatabaseSample\Bin\Debug. Подключите сборку к проекту, выполнив следующие действия: Solution Explorer -> References -> Add Reference -> Path… -> Microsoft.Phone.Controls.Toolkit.dll.

Далее, нам потребуется подключить к проекту ссылку на сборку System . Data . Linq : Solution Explorer -> References -> Add Reference -> .Net -> System.Data.Linq -> OK.

Для нашего приложения необходимы четыре иконки: appbar. add .rest.png, appbar. cancel .rest.png, appbar. check .rest.png, appbar. delete .rest.png, расположенные по адресу:

C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.1\Icons\dark (64-х разрядные операционные системы)

C:\Program Files\Microsoft SDKs\Windows Phone\v7.1\Icons\dark (32-х разрядные операционные системы)

Создайте папку Images (Solution Explorer -> Add -> Create Folder -> Images), скопируйте туда иконки и добавьте к проекту (Solution Explorer -> Images -> Add -> Existent Item).

Локальные базы данных

Цель работы: освоить технологию работы с локальными базами данных на Windows Phone

MVVM-приложение для Windows Phone, реализующее работу с локальной базой данных

В этой лабораторной работе мы рассмотрим приложение , описанное в материале «Как создать MVVM- приложение для Windows Phone , работающее с локальной базой данных» (http://msdn.microsoft.com/library/windowsphone/develop/hh286405%28v=vs.105%29.aspx). Загрузить проект приложения можно здесь: «Пример работы с локальной базой данных» (http://code.msdn.microsoft.com/Local-Database-Sample-57b1614c).

В проекте приложения, рис. 35.1., присутствует несколько страниц, это главная страница – MainPage.xaml, и страница, которая используется для добавления новых объектов (задач, в контексте приложения) в базу данных. Это – страница NewTaskPage.xaml.

В папке Model расположен файл ToDoDataModel.cs. Это, в терминологии MVVM, модель данных , с которой работает приложение . Модель представления описана в файле ToDoViewModel.cs, который расположен в папке ViewModel.

Рассмотрим особенности реализации данного приложения. Стоит отметить, что ключевым в работе с базами данных для Windows Phone , является класс System . Data .Linq.DataContext (http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.data.linq.datacontext%28v=vs.105%29.aspx). Он служит посредником между базой данных и Windows Phone -приложением. Не стоит путать его со свойством DataContext объекта FrameworkElement (http://msdn.microsoft.com/en-us/library/windowsphone/develop/system.windows.frameworkelement.datacontext%28v=vs.105%29.aspx), последний используется в системе привязки данных, здесь же мы говорим о взаимодействии с базой данных.

SDF-файлы локальных баз данных, используемых приложениями для Windows Phone , располагаются в локальных папках приложений, а значит, база данных приложения доступна только ему. На Windows Phone не предусмотрено чего-то вроде постоянно исполняющегося сервера баз данных – работа с базой осуществляется только в процессе приложения. Для работы с базами данных используется Linq to SQL , Transact- SQL не поддерживается.

Контекст данных, который используется для вывода информации на главной странице приложения, устанавливается на статическую переменную ViewModel типа ToDoViewModel, объявленную в классе App . В этом же классе, в конструкторе (Листинг 35.1.), готовится строка соединения c базой данных( connection string ). Она указывает на локальный файл базы данных . Схема «isostore:» указывает на локальную папку приложения, где и будет храниться файл базы данных . Структура строки соединения представляет собой пару вида «ключ=значение».

При первом запуске приложения файла базы данных не существует, поэтому, если соответствующая проверка на это указывает, выполняется создание базы данных по указанной строке соединения. Здесь используется объект типа ToDoDataContext, то есть – класс , являющийся моделью данных приложения. Этот класс , как мы увидим ниже, он унаследован от класса System . Data .Linq.DataContext, то есть, он может пользоваться его возможностями, среди которых – и создание базы данных . В данном случае метод CreateDatabase() – это метода родительского класса. После создания базы данных выполняется её первоначальное заполнение. Это реализовано с помощью метода InsertOnSubmit() объекта InsertOnSubmit. Данный объект – System . Data .Linq. Table – то есть – таблица базы данных , определен в классе ToDoDataContext.

После первоначального заполнения база данных сохраняется.

Если база данных уже существовала (или если она была уже создана, и та и другая ситуации обрабатываются одинаково), выполняется создание новой модели представления viewModel типа ToDoViewModel с указанием строки соединения с базой. Эта закрытая статическая переменная , в итоге, используется, через открытую переменную ViewModel, в качестве контекста данных главной страницы приложения.

На завершающем этапе инициализации происходит вызов метода модели представления LoadCollectionsFromDataBase. Здесь выполняются запросы к базе для заполнения коллекций, определенных в модели представления и используемых при привязке данных.

Читайте также:  Windows all network devices
Оцените статью