Портирование приложений Windows 7* для магазина Windows 8* Store

Porting Windows 7* Applications to Windows 8* Store Apps [Eng., PDF 443KB]

Аннотация

В этой статье описываются некоторые аспекты портирования приложений Windows 7 в приложения для магазина Windows 8 Store.

Нужно ли портировать?

Одной из причин создания и портирования приложений для Windows 8 — такие приложения больше понравятся пользователям благодаря поддержке сенсорного управления. Сенсорное управление можно считать более естественным для некоторых типов приложений, и такие приложения являются первоочередными кандидатами для портирования в приложения Windows 8 Store. Вот некоторые типы приложений, которые можно считать подходящими для портирования:

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

Почему может возникнуть потребность в портировании приложений для Windows 7 в приложение для Магазина Windows? Этому может быть множество причин:

  • Приложение может стать более удобным для пользователей после реализации в нем интерфейса, поддерживающего сенсорное управление Windows 8
  • Windows Store — новый источник получения оплаты за приложение
  • Пользовательский интерфейс Windows по ощущениям при работе очень удобен и интуитивно прост
  • Доступ к API Window 8 Runtime, в том числе к новым объединенным API сенсорного ввода, датчиков и пр.
  • Поддержка самых современных возможностей HTML5/CSS3 для создания приложений на базе HTML/JavaScript*

Давайте подробнее рассмотрим некоторые возможности, открывающиеся при портировании.

Windows Store

Магазин встроен в интерфейс Windows 8. Он реализован в виде приложения, которое запускается непосредственно из главного меню, оно имеет привычный «плиточный» вид и позволяет быстро и удобно просматривать и выбирать приложения.

Вот ссылки на сведения об использовании Windows Store для продажи приложений:

Пользовательский интерфейс Windows 8

Интерфейс оптимизирован для мобильных устройств и предназначен для управления с помощи пальцев или мыши с клавиатурой; пользователи получают в свое распоряжение еще больше способов взаимодействовать со своим ПК.

На главном экране реализована новая функция: это так называемые «динамические плитки», дающие разработчикам интересную возможность выделить свое приложение. Плитка приложения может отображать динамически меняющееся содержимое. Благодаря этому можно постоянно сообщать пользователю о новостях в приложении.

Пользовательский интерфейс Windows 8 обладает и другими новыми возможностями, помогающими создавать великолепные приложения. Подробнее о возможностях пользовательского интерфейса Windows 8 см. по следующим ссылкам:

API Windows 8 Runtime

Еще одной особенностью Windows 8 является набор интерфейсов API под названием Windows Runtime. Windows Runtime — это объединенный набор интерфейсов API, которые могут быть с одинаковым уровнем возможностей использованы для языков семейства .Net, C++ и HTML/JavaScript. Набор Windows Runtime аналогичен использованию API .NET, которые вы уже можете знать, но теперь они реализованы с помощью COM на языке C++, чтобы поддерживать языки, отличные от .Net. Одно из основных отличий от традиционных API .NET заключается в том, что многие устаревшие и избыточные API теперь упразднены.

Портирование приложений

Итак, вы решили портировать приложение для Windows 8. Что для этого потребуется? В следующих разделах описываются различные пути перехода на платформу Windows 8 и возникающие при этом задачи.

Сенсорное управление

Важным аспектом процесса преобразования является добавление в приложение поддержки сенсорного управления.

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


Рисунок 1. Главный экран приложения для рисования Paint (Microsoft Windows 7*).

Красным обведены области, где при использовании сенсорного управления неизбежно возникнут проблемы.

  • Строка заголовка в верхней части окна и строка состояния снизу. За эту «экранную недвижимость» на экранах небольшого размера придется заплатить втридорога. Ценное пространство, занятое этими строками, бесполезно, поскольку основное назначение этого приложения — рисование на полотне.
  • Элементы управления в строке меню — это слишком маленькие значки, их будет неудобно выбирать с помощью сенсорного управления.
  • Палитра цветов — тут сразу две проблемы: во-первых, значки цветов слишком мелкие для выбора рукой, во-вторых, палитра занимает на экране больше всего места, кроме самого полотна. Следует подумать о том, насколько часто пользователи переключают цвета, и действительно ли палитра всегда должна быть на экране.

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


Рисунок 2. Главный экран полотна для рисования в приложении Microsoft Fresh Paint (Microsoft Windows 8*)

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


Рисунок 3. Экран меню в приложении Microsoft Fresh Paint (Microsoft Windows 8*)

Здесь представлены все те же элементы управления (можно выбрать кисть, поменять цвет и т.п.), но теперь интерфейс намного удобнее для использования сенсорного управления. Если сравнить только оформление палитры цветов, то видно, что теперь значки цветов находятся дальше друг от друга, благодаря чему их намного удобнее выбирать пальцем. Также следует отметить интересное, изящное решение указателя выбранного цвета. Строки состояния, постоянно находящиеся на экране в версии для Windows 7, теперь появляются только при открытом меню, поэтому никакая ценная информация не останется без внимания пользователя.

Вот несколько статей с подробными сведениями об отличиях пользовательского интерфейса, хорошо приспособленного для сенсорного управления:

Разработка

Мы обсудили особенности пользовательского интерфейса и сенсорного управления. Теперь посмотрим, как именно можно создавать приложение. Одним из весьма приятных преимуществ при разработке приложений для Магазина Windows является широкий выбор языков программирования. Вот возможные варианты:

  • XAML and C++, C# or Visual Basic*
  • HTML5, CSS, and Javascript
  • C++, DirectX*
  • DirectX, XAML, C++
  • • Сочетание C#, Javascript и C++

В идеале приложение для Windows 7 должно быть уже написано на одном из этих языков или хотя бы один из этих языков должен быть вам известен.

От MFC /Win32* C++ к Windows Runtime C++

Некоторые из привычных API, которые вы могли использовать ранее, упразднены; одним из таких является GDI. Рисовать объекты на экране можно двумя основными способами. Первый способ — использовать DirectX и Direct2D*. Второй способ, новый для разработчиков на С++, — использовать XAML. Впрочем, есть и третий способ: использовать DirectX вместе с XAML. Это очень удобно, поскольку можно быстро создавать такие вещи как окна параметров и меню с помощью XAML, а для главных компонентов приложения использовать DirectX. Великолепным примером такого подходя является приложение Fresh Paint, показанное на рис. 2 и 3. Меню для выбора кистей и палитра созданы с помощью XAML, а главное полотно приложения — поверхность Direct2D.

В дополнение к API Windows Runtime, доступным в C++, по-прежнему поддерживаются некоторые API MFC, но многие API запрещены, если приложение должно пройти сертификацию для Магазина Windows. Среди запрещенных API — такие объекты как окна сообщений, API последовательных портов, DirectShow* и т.п.

Более подробные сведения о том, какие API Win32 можно использовать вместе с альтернативными API для приложений Windows, см. в следующих статьях:

Следующие ресурсы помогут приступить к работе и вкратце ознакомиться с разработкой с использованием Windows Runtime C++:

Классический .Net и Windows Runtime .Net

Набор API .Net, доступный для разработки приложений Магазина Windows, отличается от набора, доступного при создании приложений для Windows 7. Подробные сведения об изменениях см. в статье Майкрософт ".NET for Windows Store apps overview". Среди очевидных изменений — использование класса выбора папок, интегрированного в пользовательский интерфейс Windows 8, вместо класса FolderBrowserDialog, использованного для обзора папок. В статье под названием "Windows* Style app development: Using Window Runtime from C#" содержатся дополнительные сведения об особенностях использования C# в Windows 8 Runtime.

HTML и приложение Windows Runtime HTML/JavaScript

Поскольку язык HTML5/JavaScript добавлен в качестве одного из основных языков среды разработки, существует возможность преобразования существующих веб-сайтов и веб-приложений на базе HTML в приложения Windows Store.

Большую часть существующего кода HTML можно будет использовать в приложении Windows Store, но необходимо помнить о следующем:

  • Поддержка сенсорного ввода и жестов.
  • Поддержка различных размеров экрана (хотя эта проблему уже существует при создании приложений для компьютерных мониторов разного размера и разного разрешения). Фиксированное представление Windows 8 — еще один формат экрана, к которому следует приспособить приложение.
  • Встраивание в платформу приложений Windows 8. К этой области относятся возможности платформы, такие как жизненный цикл приложений, контракты, динамические плитки, датчики и пр.
  • Соответствие стилю пользовательского интерфейса Windows 8. Для упрощения работы можно использовать существующие библиотеки.

Вот дополнительные материалы, посвященные HTML5 и преобразованию HTML в приложение Windows Store:

Заключение

Корпорации Майкрософт удалось использовать наиболее распространенные языки программирования, применявшиеся для разработки решений для Windows 7, чтобы как можно более упростить переход к приложениям Windows Store. Если немного позаботиться о поддержке сенсорного управления и реализации возможностей, присущих Windows 8, то приложение, которое было создано для Windows 7, существенно выиграет от преобразования в приложение для Windows Store.

Благодарности

Автор благодарит Ашока Эмани (Ashok Emani) за помощь в написании этой статьи.

Об авторе

Нэйтан Тотура (Nathan Totura) работает инженером по разработке приложений в отделе Software and Services Group корпорации Intel. В настоящее время он работает в группе по созданию решений для процессора Intel® Atom™, помогая разработчикам программного обеспечения использовать технологии и ресурсы Intel. Среди этих технологий — планшеты и смартфоны на платформах Android*, Windows 8 и Tizen*.

Примечания

ИНФОРМАЦИЯ В ДАННОМ ДОКУМЕНТЕ ПРИВЕДЕНА ТОЛЬКО В ОТНОШЕНИИ ПРОДУКТОВ INTEL. ДАННЫЙ ДОКУМЕНТ НЕ ПРЕДОСТАВЛЯЕТ ЯВНОЙ ИЛИ ПОДРАЗУМЕВАЕМОЙ ЛИЦЕНЗИИ, ЛИШЕНИЯ ПРАВА ВОЗРАЖЕНИЯ ИЛИ ИНЫХ ПРАВ НА ИНТЕЛЛЕКТУАЛЬНУЮ СОБСТВЕННОСТЬ. КРОМЕ СЛУЧАЕВ, УКАЗАННЫХ В УСЛОВИЯХ И ПРАВИЛАХ ПРОДАЖИ ТАКИХ ПРОДУКТОВ, INTEL НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ И ОТКАЗЫВАЕТСЯ ОТ ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ В ОТНОШЕНИИ ПРОДАЖИ И/ИЛИ ИСПОЛЬЗОВАНИЯ СВОИХ ПРОДУКТОВ, ВКЛЮЧАЯ ОТВЕТСТВЕННОСТЬ ИЛИ ГАРАНТИИ ОТНОСИТЕЛЬНО ИХ ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, ОБЕСПЕЧЕНИЯ ПРИБЫЛИ ИЛИ НАРУШЕНИЯ КАКИХ-ЛИБО ПАТЕНТОВ, АВТОРСКИХ ПРАВ ИЛИ ИНЫХ ПРАВ НА ИНТЕЛЛЕКТУАЛЬНУЮ СОБСТВЕННОСТЬ.

КРОМЕ СЛУЧАЕВ, СОГЛАСОВАННЫХ INTEL В ПИСЬМЕННОЙ ФОРМЕ, ПРОДУКТЫ INTEL НЕ ПРЕДНАЗНАЧЕНЫ ДЛЯ ИСПОЛЬЗОВАНИЯ В СИТУАЦИЯХ, КОГДА ИХ НЕИСПРАВНОСТЬ МОЖЕТ ПРИВЕСТИ К ТРАВМАМ ИЛИ ЛЕТАЛЬНОМУ ИСХОДУ.

Корпорация Intel оставляет за собой право вносить изменения в технические характеристики и описания своих продуктов без предварительного уведомления. Проектировщики не должны полагаться на отсутствующие характеристики, а также характеристики с пометками «зарезервировано» или «не определено». Эти характеристики резервируются Intel для будущего использования, поэтому отсутствие конфликтов совместимости для них не гарантируется. Информация в данном документе может быть изменена без предварительного уведомления. Не используйте эту информацию в окончательном варианте дизайна.

Продукты, описанные в данном документе, могут содержать ошибки и неточности, из-за чего реальные характеристики продуктов могут отличаться от приведенных здесь. Уже выявленные ошибки могут быть предоставлены по запросу.

Перед размещением заказа получите последние версии спецификаций в региональном офисе продаж Intel или у местного дистрибьютора.

Номерные копии документов, на которые имеются ссылки в данном документе, а также другие материалы Intel можно заказать по телефону 1-800-548-4725 или загрузить по адресу: http://www.intel.com/design/literature.htm

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

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

Intel, эмблема Intel и Atom являются товарными знаками корпорации Intel в США и в других странах.

Copyright © 2012 Intel Corporation. All rights reserved.

*Другие наименования и торговые марки могут быть собственностью третьих лиц.

Пример исходного кода распространяется на условиях соглашения Intel Sample Source Code License Agreement

如需更全面地了解编译器优化,请参阅优化注意事项