Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Папка Assets (Активы) предоставлена для хранения изображений, необходимых для приложения.
Файлы Resources\AppResources. resx и LocalizedStrings. cs обеспечивают платформу для локализации приложения.
App. xaml обеспечивает удобное расположение для хранения ресурсов, которые необходимы для приложения. Например, стили элементов управления. App. xaml. cs содержит код, обеспечивающий запуск приложения, а так же обработчики событий жизненного цикла приложения. Для того чтобы определить события при открытии или закрытии приложения, перехода приложения в паузу или возобновления приложения, нужно заполнить уже сгенерированные обработчики этих событий.
Приложение Windows Phone состоит из страниц, по которым происходит навигация. Начальную страницу можно так же указать в Манифесте приложения. По умолчанию, начальная страница называется MainPage. xaml и генерируется автоматически с общим шаблоном страницы приложения.
Это основные составляющие каждого приложения для Windows Phone. Структура может изменяться в зависимости от парадигмы программирования, которой пользуется разработчик.
Жизненный цикл приложения
В жизненном цикле Windows Phone приложения существует три состояния. В каждый момент времени приложение может быть, либо Не запущено, либо Запущено, либо Приостановлено, что проиллюстрировано на рисунке 4.

Рисунок 4, жизненный цикл приложения.
Активация/Запуск приложения
Приложение может быть запущенно только тогда, кода оно находилось в состоянии Не запущено. При запуске приложения отображается экран-заставка, во время которого приложение должно инициализировать пользовательский интерфейс – должна произойти регистрация обработчиков событий и расстановка элементов управления пользовательского интерфейса, которые приложение должно загрузить. Это время не должно превышать пяти секунд, иначе приложение вообще не будет запущенно. Для того чтобы добавить дополнительные действия при запуске приложения, необходимо заполнить метод Application_Launching, инициализированный в файле App. xaml. cs.
Возобновление приложения
Приложение может быть возобновлено, если оно находилось в состоянии Приостановлено. При возобновлении приложение возвращается в то состояние, в котором оно находилось до перехода в режим паузы. Для того чтобы загрузить данные, которые были сохранены при приостановке приложения или выполнить другие действия во время возобновления приложения, необходимо заполнить метод Application_Activated, инициализированный в файле App. xaml. cs.
Приостановка приложения
Приложение может быть приостановлено, если оно находилось в состоянии Запущено. Это происходит, когда пользователь переключается на другое приложение, либо блокирует устройство, либо переходит в меню. Пока приложение приостановлено, оно продолжает находиться в памяти, поэтому пользователи могут быстро переключаться между запущенными приложениями. Однако операционная система может при нехватке памяти завершить приложение, чтобы освободить память. Если приложение завершается, оно прекращает свою работу и выгружается из памяти. В таком случае операционная система не предупреждает приложение о завершении, поэтому необходимо сохранять данные во время приостановки приложения. Для того чтобы это сделать, необходимо заполнить метод Application_Deactivated в файле App. xaml. cs.
Завершение приложения
Приложение может быть завершено, когда оно находится либо в состояние Запущено, при нажатии на кнопку назад на главной странице приложения, либо в состоянии приостановлено, из диспетчера запущенных приложений или самой операционной системой, как это было описано выше. Для того чтобы описать действия при закрытии приложения, необходимо заполнить метод Application_Closing в файле App. xaml. cs.
Model-View-ViewModel (MVVM)
Шаблон проектирования Model-View-ViewModel (MVVM) – очень часто используется при написании современных приложений, в том числе Windows Phone приложений. Это эволюция шаблона Model-View-Controller (MVC). MVVM используют для того, чтобы отделить код от пользовательского интерфейса. Такой подход облегчает параллельную работу над кодом и дизайном приложения. Дизайнер работает в среде Expression Blend, а программист параллельно пишет код в Visual Studio. Это так же облегчает тестирование. Разработчик может писать тесты независимо от других слоев разработки. Существуют три раздельные части:
- View (визуальна часть) – это пользовательский интерфейс, представленный кодом XAML и страницами приложения; Model (модель данных) – это объекты данных, представляющие связь с источником данных; ViewModel (Модель представления) – эта часть эквивалентна контроллеру в MVC, который выступает посредником между моделью данных и представлением данных. Как правило, DataContext (Контекст данных) представления (View) связан с экземпляром модели представления (ViewModel). А модель представление, как правило, связана с экземпляром модели данных (Model).
В Windows Phone так же применяются Dependency Injection (DI – Внедрение зависимости – процесс предоставления внешней зависимости программному коду). С DI, когда компонент зависит от другого компонента, то это не является жесткой зависимостью: вместо этого, является списком сервисов, которые необходимы одному компоненту от другого. В Windows Phone DI используется для обеспечения связи представления (View) , модели представления (ModelView) и моделью данных (Model), так что приложению не нужно непосредственно связывать их.
На рисунке 5 видно, что Представление, Модель данных и Модель преставления полностью разделены. Учитывая основанный на страницах пользовательский интерфейс Windows Phone приложений, очень важно отметить, что можно использовать одни и те же представления на разных страницах. По этим причинам, представления (страницы) не влияют на создание Модели представления. Скорее, приложение создает Модель представления и раскрывает ее как свойство, которая становится доступной с любой страницы.
Подход MVVM приветствуется в коде, и несколько шаблонов Visual Studio генерируются на его основе.

Рисунок 5. Обзор уровней паттерна MVVM
Реализация приложения
Модель базы данных
Для хранения данных была выбрана база данных Microsoft SQL Server Compact Edition из линейки SQL Sever. База данных хранится в едином файле. SQL Server Compact позволяет создавать компактные базы данных, которые могут быть развернуты на настольных компьютерах и смарт-устройствах, а также обеспечить функциональность реляционной базы данных: надежный источник данных, оптимизацию обработчика запросов, масштабируемость компонентов связи. SQL CE является нативной базой данных для Windows Phone.
Для взаимодействия с базой данных создается контекст данных (Data Context), а также прокси-классы для моделирования таблиц базы данных. Для увеличения скорости выполнения запросов к базе данных, таблицы индексируются, а в коде C# классы, моделирующие таблицы, снабжаются атрибутом [Index].
База данных состоит из 5 таблиц, представляющих основные единицы информации в приложении. База данных не может быть изменена из приложения. Архитектура базы данных представлена на рисунке 6.

Рисунок 6, архитектура базы данных.
Таблица Здания (Buildings)
В таблице хранится информация обо всех зданиях, которые входят в состав университета.
Здания определяются полями:
- Id – уникальный идентификационный номер здания, который совпадает с идентификационным номером здания на сервере. Является первичным ключом для таблицы; Name – название здания; Address – адрес здания; Latitude –координата широты, на которой располагается здание; Longitude – координата долготы, на которой располагается здание.
Координаты широты и долготы необходимы для расположения здания на карте города в приложении.
… остальные таблицы аналогично
Заполнение базы данных осуществлялось. Net-приложением, которое извлекало информацию с сайта университета и генерировало sql-запросы для заполнения таблиц.
С помощью API системы занятости аудиторий КФУ была создана таблица зданий и аудиторий университета, в которых проводятся занятия. В течение месяца проводился сбор и анализ информации об аудиториях, которые используются в учебном процессе. Для данной цели было написано приложение на. Net, которое забирало данные с сервиса и обрабатывало их. В результате чего, был сформирован список аудиторий и зданий.
3.1.1 Реализация поиска по базе данных.
Для быстрого доступа к информации из базы данных было принято решение, реализовать страницу поиска в приложении. Для удобства пользователя был продуман и реализован алгоритм динамического поиска - результаты поиска появляются в списке результатов, по мере ввода запроса. База данных состоит из достаточно большого числа записей, поэтому поиск был распараллелен, для увеличения скорости генерации результатов.
Процессы поиска запускаются после ввода четвертого символа. Сначала определяется приоритетная таблица для поиска. После этого запускаются распараллеленные процессы поиска по таблицам, для каждой из таблиц создаются коллекции результатов. По завершению каждого процесса генерируются события, информирующие о завершении поиска в конкретной таблице. После завершения поиска во всех таблицах, результаты объединяются в общую коллекцию и выводятся на экран. Распараллеливание избавляет пользовательский интерфейс от состояния ожидания во время выполнения алгоритмов поиска, оставляя его доступным пользователю, без блокировки.
В случае изменения содержимого поля ввода, запускается следующий шаг, на котором происходит выборка результатов из результирующих коллекций по количеству символов, введенных на текущий момент.
Таким образом, выборка, выводимая на экран, сокращается по мере ввода.
Реализация архитектуры клиент-серверного приложения
Приложение реализует архитектуру клиент-сервер для задач, связанных с мероприятиями университета.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


