Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемrutechdays.blob.core.windows.net
1 DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft
2 // DevCon12 Особенности разработки корпоративных приложений для Windows 8 АЛЕКСАНДР ДЕМАКОВ Разработчик корпоративных решений на платформах MS SharePoint и Windows Azure, Аплана МП
3 #msdevcon Постановка задачи
4 Сводка приложения Назначение Приложение предназначено для руководителей средних и крупных предприятий. Платформа Windows8 Устройства Планшетные компьютеры Ограничения В данной работе мы полностью сосредоточились на интерфейсе приложения.
5 Функциональные требования Основные функции: Просмотр справочника сотрудников и организационной структуры предприятия, Просмотр документов, Просмотр и выдача поручений, Возможность коммуникации с сотрудниками по аудио и/или видео.
6 Сценарии использования Создание поручения Пользователь открывает приложение, находит сотрудников, связывается с ними голосом и создаёт поручения на основании разговора Подписание приказа Пользователь подписывает приказ нажатием кнопки Взаимоотношения сотрудников Пользователь просматривает дни рождения сотрудников и поздравляет их.
7 Другие возможные сценарии Рабочий график руководителя Иван Иванович даёт поручение своему секретарю назначить совещание, через некоторое время в рабочих графиках Иван Ивановича и его заместителей появляется совещание, Показатели работы компании Иван Иванович рассматривает графики роста производства и роста продаж и видит, что продажи отстают, даёт распоряжение PR- директору провести рекламную компанию.
8 #msdevcon Обзор приложения Демонстрация
9 #msdevcon Алфавитный справочник сотрудников Демонстрация
10 Особенности реализации Привязка данных непосредственно к коллекции посредством LINQ GroupBy, Отсутствие дополнительных сущностей для группировки, Возможность группировки одной и той же коллекции по разным атрибутам в «одну строку кода».
11 #msdevcon Второй вариант алфавитного справочника Давайте немного похимичим! Эксперимент
12 Особенности реализации Не нужно переходить между видами для поиска нескольких сотрудников, Позвонить нескольким сотрудникам можно с одного экрана, Создать поручение сразу для нескольких сотрудников.
13 Как это сделано (пример кода) //xaml //cs private void gvAbc_ItemClick(object sender, ItemClickEventArgs e) { int index = 0; //находим первую фамилию, начинающийся на выбранную букву while (!((Employee)gvItems.Items[index]).Title.ToUpper().StartsWith(e.ClickedItem.ToString().ToUpper())) index++; //выполняем прокрутку gvItems.ScrollIntoView(gvItems.Items[index]); }
14 #msdevcon Структура организации Демонстрация
15 Особенности реализации Стандартный SemanticZoom поддерживает только два вида (Zoom-In и Zoom-Out), в общем случае требуется N видов, Произвольная иерархия, Переход к сотрудникам подразделения, Отображение количества сотрудников на плитке подразделения.
16 Как это сделано (пример кода) //xaml private bool goneBack; private void svItems_ViewChanged(object sender, ScrollViewerChangedEventArgs e) { if (svItems.ZoomFactor < 0.9 && !goneBack) { this.GoBack(sender, null); goneBack = true; }
17 #msdevcon Структура организации Отладка в реальном времени. Отладка
18 Как это сделано (пример кода) //cs protected override void OnNavigatedTo(NavigationEventArgs e) { if (e.Parameter == null) cvs.Source = DataSource.QueryDepartments(it => string.IsNullOrEmpty(it.ParentId)); else { //вышестоящее подразделение Department parent = (Department)e.Parameter; //дочерние подразделения cvs.Source = DataSource.QueryDepartments(it => it.ParentId == parent.UniqueId); }
19 #msdevcon Работа с документами Демонстрация
20 Особенности реализации Для приложений Metro в настоящее время отсутствует встроенный viewer документов docx/xps/pdf, Одним из возможных решений может быть разбивка документа на jpeg-слайды и использование flipview, Выбрано такое решение: открывать документы в отдельном приложении в соответствии с сопоставлениями файлов (docx в word, xps – windows reader).
21 Как это сделано (открытие файла) //cs public async void Launch() { if (string.IsNullOrEmpty(_path)) return; var file = await Windows.ApplicationModel.Package.Current.InstalledLocation.GetFileAsync(_path); if (file != null) { //запуск внешнего приложения var success = await Windows.System.Launcher.LaunchFileAsync(file); }
22 #msdevcon Поиск Демонстрация
23 Особенности реализации Поиск открывается с любой страницы, Единая страница результатов поиска со вкладками «Документы», «Поручения», «Люди», При наборе текста предлагаются варианты поиска.
24 #msdevcon Поиск Отладка в реальном времени. Отладка
25 Как это сделано (поиск) //app.xaml.cs, при активации поиска переходим на страницу поиска protected override void OnSearchActivated(SearchActivatedEventArgs args) { base.OnSearchActivated(args); var frame = ((Frame)Window.Current.Content); frame.Navigate(typeof(SearchPage), frame.Content.GetType()); }
26 Как это сделано (страница поиска) //SearchPage.xaml.cs, страница поиска public SearchPage() { this.InitializeComponent(); SearchPane searchContext = Windows.ApplicationModel.Search.SearchPane.GetForCurrentView(); //запрос на подсказки searchContext.SuggestionsRequested += searchContext_SuggestionsRequested; //запрос на поиск searchContext.QuerySubmitted += searchContext_QuerySubmitted; }
27 Как это сделано (подсказки) //отображение подсказок void searchContext_SuggestionsRequested(SearchPane sender, SearchPaneSuggestionsRequestedEventArgs args) { List items = new List (); //запрос по заголовкам документов items.AddRange(DataSource.QueryDocuments(i => i.Title.ToLower().Contains(args.QueryText.ToLower())).Take(2).Select(i => i.Title)); … args.Request.SearchSuggestionCollection.AppendQuerySuggestions(items); }
28 Как это сделано (запрос поиска) //отображение результатов поиска void searchContext_QuerySubmitted(SearchPane sender, SearchPaneQuerySubmittedEventArgs args) { //запрос по документам ItemGridView.ItemsSource = DataSource.QueryDocuments(it => it.Title.ToLower().Contains(args.QueryText.ToLower())); … }
29 #msdevcon Сотрудник на рабочем столе Демонстрация
30 Особенности реализации Отдельного сотрудника (например, начальника или секретаря) или несколько сотрудников можно поместить на рабочий стол и убрать с рабочего стола, При нажатии на плитку приложение открывается на странице этого сотрудника.
31 Итоги Стандартный SemanticZoom поддерживает только два вида, Просмотр документов отсутствует внутри приложения, Простая группировка по LINQ, Удобная интеграция с поиском, Быстрая проверка работы на планшете (touch- эмулятор).
32 Полезные материалы
33 Связанные сессии CLI202 Обзор платформы разработки для Windows 8 – Windows Runtime CLI303 Лучшие практики создания отзывчивых приложений для Windows 8
34 Пожалуйста Оцените доклад и мастерство докладчика. Форма для оценки находится в вашем инфопакете.
35 #msdevcon Вопросы Спасибо за внимание!
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.