Эта статья является вводной в курс разработки приложений для операционной системы Windows 8.1 посредством XAML и C#. Перед прочтением это серии статей вы должны быть в курсе разработки приложений под Windows 8.
В данных уроках будут использоваться предварительные версии Windows 8.1 и Visual Studio 2013.
- Введение.
- Новые элементы управления.
- AppBar, темы и навигация.
- Windowing.
- Поиск, люди и контракты.
- Тайлы и система уведоления с Azure.
- Синтез речи, PDF и PlayTo.
- Магазин Windows и упаковка приложений.
Введение.
26 июня Стив Балмер объявил о выходе Windows 8.1, в которой появится много нового функционала как для пользователей так и разработчиков: новый стартовый экран, больше размеров для тайлов, более широкая возможность персонализации, кардинально измененный поиск, кнопка “Пуск” и много-много другого.
С точки зрения разработчика произошло более 5000 изменений в WinRT API. Вашему вниманию предоставляется небольшой перечень изменений:
- Новые контролы
- Улучшенный XAML binding
- Новые возможности для работы с контактами
- Работа с кард-ридером, сканер штрих-кодов, 3D печать и т.п.
- Связь через WiFi и Bluetooth
- Поддержка PDF …
На рисунке ниже показаны изменения в API:
- темно-зеленый — без изменений
- светло-зеленый — обновленные API интерфейсы
- синий — новые интерфейсы
В данной части я расскажу о наиболее важных из изменений в Windows 8.1
Шаблоны проектов (добавлено два новых):
- Hub App. Шаблон основан на новом Hub контроле, который помогает создавать приложения на подобие Bing — разбивать главную страницу на различные подкатегории.
- Coded UI Test Project. Используется для автоматизации тестирования пользовательского интерфейса в приложениях Windows Store. Можно вручную создать тест или редактировать их с помощью карты UI.
Другие шаблоны проектов не изменились.
Структура проекта — изменение папки Common.
На самом то деле структура проекта практически не изменилась, все те же папки Properties, References и Assets, файлы pfx и appxmanifest. Тем не менее состав папок немного подвергся изменениям. Напомню, что папка Common ранее содержала некоторые вспомогательные классы для навигации, binding, управления состояниями, некоторые XAML ресурсы….что-то поменялось, что-то удалили, что-то добавили…
Удаленные файлы:
- StandardStyles.xaml: этот файл содержал стили и шаблоны для базовой разработки. Большинство из них полностью интегрирована в структуру, чтобы не искать их по разным файлам.
- LayoutAwarePage: ранее это был базовый класс для любой вашей страницы, который помогал управлять навигацией, состоянием и binding’ом.
- BindableBase: окончательно удален.
- BooleanNegationConverter: окончательно удален.
- RichTextColumns: окончательно удален.
Добавленные файлы:
- NavigationHelper: новый класс, который служит в качестве замены LayoutAwarePage. Он содержит основную логику для обработки навигации и управления состояниями. LoadState и SaveState — часть этого класса.
- ObservableDictionary: этот класс раньше находился в классе LayoutAwarePage.
- RelayCommand: является базовой реализации интерфейса ICommand. Разработан для MVVM-приложений.
В связи с этими изменениями шаблон “Basic Page” теперь выглядит следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | public sealed partial class BasicPage1 : Page { private NavigationHelper navigationHelper; private ObservableDictionary defaultViewModel = new ObservableDictionary(); public ObservableDictionary DefaultViewModel { get { return this.defaultViewModel; } } public NavigationHelper NavigationHelper { get { return this.navigationHelper; } } public BasicPage1() { this.InitializeComponent(); this.navigationHelper = new NavigationHelper(this); this.navigationHelper.LoadState += navigationHelper_LoadState; this.navigationHelper.SaveState += navigationHelper_SaveState; } private void navigationHelper_LoadState(object sender, LoadStateEventArgs e) { } private void navigationHelper_SaveState(object sender, SaveStateEventArgs e) { } #region NavigationHelper registration protected override void OnNavigatedTo(NavigationEventArgs e) { navigationHelper.OnNavigatedTo(e); } protected override void OnNavigatedFrom(NavigationEventArgs e) { navigationHelper.OnNavigatedFrom(e); } #endregion } |
Package.appxmanifest
Манифест Windows Store было улучшено, давайте пройдемся по отдельным вкладкам
Application UI
В верхней части вкладки, как и ранее мы видим возможность установки стандартных свойств приложений: отображаемое имя, подержка ориентаций и т.п.
Добавлено новое свойство Minimum width, посредством которого можно задать, как вы догадались, минимальную ширину приложения. Эти изменения внесены в связи с тем, что в Windows 8.1 может поддерживать не только 2 приложения на экране, но более. В Windows 8 минимальная ширина приложения была 320px, называемая snapped view, в Windows 8.1 данное значение установлено в 500px, но, если вы считаете, что ваше приложение сможет поддерживать 320px — вы в любой момент сможете изменить данные параметры.
Раздел Tile Updater — новый раздел, в котором разработчик может указать Uri, посредством которого будет обновляться главная плитка приложения. Это действие можно будет выполнить с помощью метода StartPeriodicUpdate, в котором вы сможете указать через какой промежуток времени необходим отправлять запрос на Uri: полчаса, час, шесть часов, двенадцать и ежедневно.
Как известно в Windows 8.1 добавили больше размеров для тайлов, теперь ваши приложения могут использовать до 4-х различных размеров тайлов:
- Маленькие: 70х70px (не может быть живым тайлом; представляет из себя уменьшенный логотип);
- Средний: 150х150px ;
- Широкий: 310х150px;
- Большой: 310x310px.
Capabilities
Возможность использовать Document Libraries была удалена из данного перечня, возможно это и баг, так как для некоторых потребностей необходима данная возможность.
Content URIs
Новая вкладка в манифесте вашего приложения, которая должна включать в себя все uri, которые вы хотите использовать в своем приложение посредством WebView и ScriptNotify.
Обратите внимание на то, что:
- Вы можете добавить столько Uri, сколько вам необходимо;
- Вы можете включить или исключить Uri;
- Вы можете использовать https Uri;
- Uri может содержать символы поддомена.
Packaging
Никаких изменений.
Что дальше?
В этой части мы узнали о небольшой части изменений Windwos 8.1: новый вспомогательные классы, новые шаблоны и новый функционал манифеста. Во второй части статей мы рассмотрим новые элементы управления XAML.
Ссылка на источник: Developing a Windows 8.1 application (1/8): introduction
[…] Введение. […]
[…] Введение. […]