Опрос
Вы участвуете в программе Windows Insider?
Популярные новости
Обсуждаемые новости

02.10.2015 14:20 | dronov_va

Эта статья открывает цикл, посвящённый разработке универсальных приложений под Microsoft Windows. Мы рассмотрим основные принципы создания таких приложений, приёмы разработки их интерфейса и логики, интерфейсные элементы, доступные для применения в таких приложениях, способы адаптации приложений под устройства с различными характеристиками, возможности для разработчика, предлагаемые платформой, и др. Также мы познакомимся с Visual Studio 2015 - новой версией среды разработки приложений производства Microsoft, выпущенной практически одновременно с Windows 10.

В этой статье мы создадим наше первое универсальное приложение на языках XAML и C# - преобразователь величин из дюймов в сантиметры - и познакомимся в процессе работы с основными принципами разработки таких приложений.

Внимание!
Автор использовал русскую 32-разрядную редакцию Windows 10 и русскую же редакцию Visual Studio 2015 Community Edition.


1. Что такое универсальное приложение Windows

Но сначала давайте разберёмся, что же представляют собой универсальные приложения Windows и чем они отличаются от давно знакомых нам приложений рабочего стола.

С выпуском Windows 10 Microsoft объявила курс на унификацию всех своих программных платформ, предназначенных для обычных, традиционных компьютеров, смартфонов, планшетов, игровых консолей Xbox, интерактивных столов Surface и даже устройств, входящих в состав "умного дома". Все эти программные платформы - "настольная" Windows, Windows Phone и прочие - теперь предлагают единый интерфейс программирования (API), называемый универсальной платформой Windows (UWP, Universal Windows Platform, см. рис. 1).


Рис. 1. Универсальная платформа Windows (схематическое представление)



Так вот, в первую очередь, универсальное приложение разрабатывается с применением вышеупомянутого единого интерфейса программирования. То есть для вывода на экран, обработки щелчков мышью, касаний сенсорного экрана, ввода с клавиатуры, доступа к дискам и файлам, работы с сетью и интернет-ресурсами теперь используется одинаковый набор объектов, реализованных в этом едином интерфейсе. Что позволит запускать одно и то же приложение на любой из поддерживаемых платформ.

Различные устройства имеют экраны с разными параметрами и запускают приложения по-разному. Так, традиционные компьютеры имеют довольно большие экраны и запускают приложения в обычных окнах, в то время как экраны смартфонов и планшетов существенно меньше в размерах, и запущенные приложения в них занимают экран целиком. Поэтому универсальное приложение должно адаптировать свой интерфейс под разные экраны, соответственно переупорядочивая элементы управления или даже временно скрывая их часть - обычно ту, которая управляет редко используемыми функциями.

Различные устройства имеют различные устройства ввода. Если в традиционных компьютерах это привычные аппаратная клавиатура и мышь, то в мобильных устройствах - смартфонах и планшетах - используется сенсорный экран и экранная же клавиатура. Универсальное приложение должно поддерживать все эти устройства ввода.

На заметку
Впрочем, как мы выясним далее, большую часть работы по обеспечению унификации способов ввода берёт на себя сама операционная система. Так, чтобы обработать щелчок мышью в традиционных компьютерах и касание сенсорного экрана в мобильных устройствах, мы можем использовать событие щелчка мышью, которое генерируется во всех поддерживаемых устройствах.

Все универсальные приложения распространяются через собственный интернет-магазин Microsoft, носящий название Store. Установка их привычным, "старым" способом - загрузкой и запуском дистрибутивного файла - изначально невозможна (хотя мы и можем разрешить системе делать это, задав некоторые настройки, о которых речь пойдёт далее).

Для разделения интерфейса универсального приложения на логические части используются не отдельные окна, как в обычных Windows-приложениях, а так называемые страницы. Каждая из этих страниц занимает целиком окно приложения (на традиционных компьютерах) или экран (на прочих устройствах). Одновременно может быть выведена лишь одна страница; открытая ранее страница при этом удаляется.

Помимо единого, все устройства, поддерживающие универсальные приложения, предлагают специфические интерфейсы программирования, предназначенные для поддержки возможностей, характерных для конкретного семейства устройств: традиционных компьютеров, мобильных устройств, игровых консолей, интерактивных столов, устройств "умного дома" и др. (см. рис. 2). Например, для мобильных устройств это могут быть интерфейсы, "заведующие" поддержкой встроенной камеры, датчиков ориентации, направления, GPS и т. п. Универсальные приложения могут поддерживать эти интерфейсы, соответственно расширяя свою функциональность.


Рис. 2. Семейства устройств, работающих под управлением Windows 10



Также имеется возможность создать универсальное приложение, предназначенное для какого-либо семейства устройств: смартфоны, игровые консоли, интерактивные столы или традиционные компьютеры; на остальных семействах устройств такие приложения запустить будет невозможно. Впрочем, в этом случае их уже нельзя будет назвать универсальными...

Теперь кратко подытожим вышесказанное. Итак, универсальное приложение Windows:

  • использует единый интерфейс программирования, благодаря чему может работать на любом из поддерживаемых устройств;
  • адаптирует свой интерфейс под экраны различного размера и разрешения;
  • поддерживает различные устройства ввода;
  • распространяется через интернет-магазин Store;
  • выводится на экране не в отдельных окнах, а на отдельных страницах;
  • может поддерживать интерфейсы программирования, специфичные для определённых семейств устройств, для поддержки специфичных для этих семейств возможностей.



Платформа универсальных приложений основывается на подсистеме Windows RT, впервые представленной в Windows 8, и значительно расширяет её функциональность. Благодаря этому разработчики, знакомые с RT, могут использовать накопленный опыт и при создании универсальных приложений Windows.

Универсальные приложения могут быть написаны с применением любой из трёх технологий программирования:

  • HTML, CSS и JavaScript;
  • XAML и C# или Visual Basic .NET;
  • C++ и DirectX или XAML.



В этом цикле статей рассматривается разработка с применением "связки" технологий XAML и C#.


2. Подготовительные действия

Перед тем как собственно начать программирование, следует выполнить некоторые подготовительные действия. А именно, установить среду разработки и переключить операционную систему в режим разработчика.


2.1. Установка Microsoft Visual Studio 2015 Community Edition

Первым делом следует установить среду разработки Microsoft Visual Studio 2015 Community Edition. Автор выбрал эту редакцию Visual Studio 2015, поскольку она распространяется бесплатно и может быть использована, в том числе, и для коммерческой разработки без выплаты каких-либо отчислений.

Зайдём на страницу загружаемых файлов Visual Studio, раскроем в левом списке "ветвь" Visual Studio 2015 и щёлкнем на пункте Community 2015. В правой части страницы появится текст, кратко описывающий возможности и назначение Community Edition. Проверим, выбран ли в раскрывающемся списке Выберите язык пункт Русский, и установим в группе Выберите формат переключатель:

  • Веб-установщик - чтобы получить компактный интернет-установщик, который сам впоследствии загрузит с сайта Microsoft нужные части дистрибутивного комплекта;
  • ISO - чтобы загрузить полный дистрибутивный комплект в виде образа диска формата ISO.



После чего щёлкнем кнопку Загрузка.

Внимание!
Полный дистрибутивный комплект имеет очень большой размер (около 3,75 Гб) и будет загружаться довольно долго.

Смонтировать образ диска ISO в виде виртуального привода CD-ROM можно с помощью утилиты DVDFab Virtual Drive или Daemon Tools Lite.


Рис. 3. Список устанавливаемых компонентов Visual Studio 2015, выводимый программой установки



После запуска программы установки (интернет-установщика или входящей в комплект полного дистрибутива - неважно) будем следовать появляющимся на экране инструкциям, пока не увидим список устанавливаемых компонентов (см. рис. 3). Здесь нам нужно быть очень внимательными - дело в том, что установщик Visual Studio не устанавливает компоненты, предназначенные для разработки универсальных приложений, по умолчанию, и нам придётся самим указать ему сделать это. В иерархическом списке развернём "ветвь" Разработка приложений для Windows и веб-приложений и установим флажок в пункте Средства разработки универсальных приложений для Windows (как и показано на рис. 3). После чего можем запустить установку.

Внимание!
Даже если мы по какой-либо причине не установим компоненты для разработки универсальных приложений, не нужно отчаиваться. Это всегда можно будет сделать потом.

И наберёмся терпения, поскольку установка такого большого программного пакета будет выполняться долго.


2.2. Переключение Windows 10 в режим разработчика

Подождём пока запускать свежеустановленную Visual Studio 2015. Давайте выполним ещё одно подготовительное действие.

По умолчанию Windows 10 позволяет устанавливать универсальные приложения только из магазина Store. Если же мы каким-то образом загрузим дистрибутивный комплект такого приложения, сохраним его на локальном диске (а это весьма нетривиальная задача...) и попытаемся установить, у нас ничего не получится.

Проблема в том, что при запуске универсального приложения из-под среды Visual Studio (мы же будем отлаживать разрабатываемые приложения!) последняя предварительно формирует его дистрибутивный комплект, устанавливает приложение системе, пользуясь этим пакетом и уже потом запускает. Но как она сможет установить приложение из дистрибутива, сохранённого на локальном диске, если, как мы только что узнали, сама система не позволяет этого?

Выходит, нужно разрешить системе устанавливать универсальные приложения с локального диска. Или, говоря другими словами, переключить её в режим разработчика.

Откроем меню Пуск и выберем в нём пункт Параметры. В появившемся на экране окне Параметры (которое теперь заменяет имевшуюся в предыдущих версиях Windows Панель управления) щёлкнем значок Обновление и безопасность. Дождёмся, когда окно переключится на раздел Обновление и безопасность, и выберем в левом списке подразделов пункт Для разработчиков. После этого мы увидим то, что показано на рис. 4.


Рис. 4. Окно Параметры, раздел Обновление и безопасность, подраздел Для разработчиков



В правой части окна находятся три переключателя, задающие возможности Windows 10 по установке приложений и их отладке.

  • Не использовать функции разработчика - не допускается установка управляемых приложений с локального диска и из неподписанных дистрибутивных пакетов, и также их отладка.
  • Установка неопубликованных приложения - допускается установка управляемых приложений с локального диска и из неподписанных дистрибутивных пакетов, но не их отладка.
  • Режим разработчика - допускается и установка управляемых приложений с локального диска и из неподписанных дистрибутивных пакетов, и их отладка.



Нам нужно установить третий переключатель, как показано на рис. 4.


Продолжение следует...


Дополнительные материалы




Владимир Дронов, MSInsider.ru Team
Октябрь 2015

Комментарии

Не в сети

при создании нового проекта с VB и пробой его запуска  вываливается 82 ошибки. Вин10 про лицензия, 2015 студия комьюнити, что я делаю не так? Все компоненты включены.

02.10.15 17:31
0
Не в сети

Sergey_Adamskiy писал:

Что за ошибки? Можно взглянуть на их текст?

02.10.15 20:25
0
Не в сети

Смонтировать образ диска ISO в виде виртуального привода CD-ROM можно с помощью

Немного завис при этой рекомендации. Винда давно умеет монтировать iso образы. Почему нельзя просто щелкнуть по нему?

02.10.15 23:07
0
Не в сети

wbnet писал:

Попробуйте щёлкнуть. ;)

03.10.15 14:04
0
Не в сети

dronov_va писал:

Спасибо, что разрешили.

03.10.15 23:20
0
Не в сети

dronov_va писал:
Что за ошибки? Можно взглянуть на их текст?

https://vk.com/seventhevil?w=wall12970272_12754

04.10.15 12:02
0
unihorn -164
Не в сети

dronov_va писал:
Попробуйте щёлкнуть. ;)


Откроется в Проводнике как папка (да, как папка а не как диск, но в нашем случае этого более чем достаточно: чай не требующую диска застарфоренную ерунду ставим). И жахаем в этой папке по setup(и_иже_с_ним).exe. Вуаля.

Конечно если вы не перебили обработку iso "другой штукой"; или, тем или иным образом не запретили его обработку стандартной виндовой (запретили тем-же сторонним обработчиком который, например, сначала поставили, а, потом, удалили). Но это недоразумение спокойно исправляется всеми известными, штатными, методами Окошек.

В восьмерке, для этого дела (исошек) только это и юзал.

Но да. Проводник монтирует только исошки. Прочие форматы образов требуют специфического софта.

04.10.15 21:17
0
Не в сети

unihorn писал:

Хм, действительно... Забыл о такой штуке... ;)

А ещё можно образ ISO открыть как обычный архив архиватором. Обычно я так и делаю.

05.10.15 09:12
0
Не в сети

8.1 монтирует .iso именно как диск, на виртуальный DVD-ROM.
.img она также умеет монтировать "искаропки".
.mdf - в 90% случаев, после смены расширения на .iso.
Если в 10 не выпилили это (как многое другое из 8), то точно также будет себя вести.

05.10.15 16:08
0
unihorn -164
Не в сети

wbnet писал:
8.1 монтирует .iso именно как диск, на виртуальный DVD-ROM.


Да... Действительно... Как-то не обращал на это внимание, хотя пользовался частенько (открывается аля зипки в проводнике, ну и ладно)... Действительно именно виртуальный привод появляется в боковой панели... Век живи, век учись...

Если в 10 не выпилили это (как многое другое из 8), то точно также будет себя вести.


Не знаю как mdf-ы с переименовыанием (надо будет попробовать)... Но исошки монтируются нормально... Как и в восьмерке...

05.10.15 19:13
0
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
420.55 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Все права принадлежат © ms insider @thevista.ru, 2022
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 2.34 (Страница создана за 0.031 секунд (Общее время SQL: 0.014 секунд - SQL запросов: 71 - Среднее время SQL: 0.0002 секунд))
Top.Mail.Ru