Предварительная версия Windows 8 доступна для
скачивания. Этим пользуются многие разработчики и начинают исследовать
операционную систему, на предмет того,
что нового они могут сделать с Windows 8 с точки
зрения программиста.
Неудивительно, что многие фокусируют свое внимание прежде
всего на Metro-style приложениях, которые
могут выполнятся в самых разнообразных окружениях. Существует много способов
разработки таких приложений, и С# это один из доступных вариантов, особенно
это приятно для тех разработчиков, которым доводилось ранее разрабатывать что-то
для Windows с использованием C#. Платформа Metro предоставляет фантастическую гибкость, но вместе
с тем требует знакомства с некоторыми новыми концепциями. Поэтому в рамках
данной статьи я сконцентрируюсь на некоторых важных областях и постараюсь
предоставить полезные ресурсы для дальнейшего изучения. Если вы захотите продолжить
заниматься вопросами разработки под Windows 8, обязательно посетите UK Windows 8 Developer Camp.
Я выбрал 5 наиболее существенных вещей, на которые стоит
обратить внимание в первую очередь.
Разметка и представление
Если вы создаете операционную систему не нацеливаясь на
какое-то специфическое оборудование, вы должны быть уверены что ваше решение
достаточно гибкое. В этом случае вы не имеет никакого понятия где будет
использоваться операционная система - на PC с диагональю монитора 27
дюймов или на планшете с диагональю 11.6 и высокой плотностью пикселей. Это
может стать действительно непростой задачей для разработчиков, поскольку им
необходимо будет учитывать как их приложение будет выглядеть на различных
устройствах с различной ориентацией и специфическими состояниями (например
когда ваше приложение отображается в виде скриншота внутри другого приложения).
В C# мы решаем эту проблему с помощью Visual State Manager. Данная статья поможет понять как быть уверенным, что
приложение будет выглядеть хорошо на любом устройстве:
Контракт поиска
В Windows 8 встроено огромное количество общей
функциональности, которую вы, как разработчик, можете использовать в своих
целях. Для этого вам нужно использовать контракты. Если вы используете
контракт поиска, то в этом случае пользователь сможет пользоваться поиском в
рамках вашего приложения. Для этого ему нужно будет кликнуть по правой стороне
экрана, что приведет к активизации поисковой панели (панель в данном случае будет
содержать набор кнопок, которые всегда будут доступны для пользователя вне
зависимости от того, какая программа у него активна в данный момент времени).
Как вы и могли предположить, это приведет к тому что пользователь сможет
осуществлять поиск в рамках приложения. Однако это не все. Благодаря тому, что
с помощью контрактов можно объединить все воедино, у пользователя будет возможность
осуществлять поиск также и в других приложениях – или же вовсе осуществлять
поиск в интернете.
Пользователь может использовать поиск вне зависимости от
того, какая у него открыта программа.
Контракт шаринга
Как правило, когда речь идет о функциональности шаринга в
приложении, сначала нужно определиться какие сервисы мы хотим использовать.
Например, вы можете решить, что вам необходимо позволить пользователям
взаимодействовать с Facebook или Twitter и добавить
соответствующий код. Разумеется, жизнь не стоит на месте и кто знает какие
сервисы будут востребованы в будущем?
Контракт шаринга очень удобная штука в этом отношении.
Если вы используете контракт шаринга в приложении то вы сможете получать
совместный доступ к конкретному типу содержимого с любым приложением в системе
которое поддерживает работу с этим типом. Приложение которое поддерживает
определенный тип содержимого называется Shared Targets.
Таким образом вы можете поделиться изображением из вашего
приложения с любым другим приложением, которое способно принять этот тип
изображения. Как разработчику, вам не нужно знать с каким приложением вы
взаимодействуете, просто нужно добавить код, который использует контракт и Windows 8 станет тем связующим звеном, которое возьмет всю
работу на себя.
Вы можете взаимодействовать с различными типами контента,
и более того, если вдруг появится необходимость, можно также реализовать
поддержку собственного типа содержимого.
Элементы
управления по умолчанию
В процессе разработки Windows 8 проводилось
много исследований. Например касательного
того, как пользователи предпочитают взаимодействовать с операционной
системой на различных устройствах. В рамках данного исследования были
рассмотрены десктопы, лаптопы и планшеты, а также как пользователи используют
мышь, перо или сенсорный экран. На самом деле в каждом из данных случаев может
использоваться один и тот же элемент управления.
Результатами исследований стал стандартный набор элементов
управления, который включен в SDK. Это значит,
что разработчику не придется столкнуться со сложностью и повторным изучением
всей необходимой теории только для того, что бы добиться более удобного
взаимодействия с пользователем. Для этого достаточно правильно использовать
элементы управления с самого начала.
Документ «Добавление
элементов управления и контента» содержит полный набор ресурсов
связавнных с работой с элементами управления.
Async
Большое количество API в Windows работает асинхронно. Основное правило асинхронных операций
выглядит примерно так:
Если выполнение
некоторой операции занимает более 50ms, она асинхронна.
Таким образом, вы
можете обнаружить что любое API доступа к сети или
файловой системе асинхронно. Этот дизайн применяется для того, что бы максимально
исключить ситуацию, когда приложение из за использования подобного API будет
работать с большим временем отклика.
В некоторых приложениях вместо синхронных методов используются
асинхронные. Этот момент являет головной болью многих разработчиков, особенно
тех, которые знакомы с C#.
Ниже представлены ссылки на две великолепные статьи, которые
объясняют асинхронные операции и способы их использования:
Таким образом я рассказал о 5 моментах, на которые вы
должны потратить свое время, если вы занимаетесь разработкой для Window s 8 впервые. Если вся эта информация выглядит для вас неподъемной, советую
обратиться к Microsoft’s Windows 8 camps. Это бесплатные, веселые мероприятия
для разработчиков, которые проводят другие разработчики. Вы сможете с помощью экспертов
получить недостающие знания простым непринужденным способом и после этого
применить полученные знания на практике.