пятница, 24 августа 2012 г.

5 вещей о Windows 8 о которых должен знать каждый каждый разработчик


Предварительная версия 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. Это бесплатные, веселые мероприятия для разработчиков, которые проводят другие разработчики. Вы сможете с помощью экспертов получить недостающие знания простым непринужденным способом и после этого применить полученные знания на практике.