План занятий учащихся Школы Мобильных технологий 
по направлению «Разработка под
Windows Phone»

Название

Тип (лекция/
практика)

Комментарии

 

Блок 1

 

 

1

Будущее ИТ-экосистем. Экосистема Microsoft.

Л

 

2

Мобильные платформы Microsoft: развитие платформ, аппаратные ограничения, основы понимания дизайна Windows Style (бывший Metro-стиль)

Л

 

3

Разработка приложений. Платформы (.Net CF) и инструменты для разработки: Silverligth, XNA, VS, Blend, другие

Л

 

4

Разработка первого приложения

П

 

 

Блок 2

 

 

5

Знакомство со средой, особенности разработки, особенности эмулятора, типы навигационных шаблонов

Л

Демонстрация Visual Studio и  средств разработки

6

Первое приложение: идея, прототипирование, разработка, отладка

Л

 

7

Практика – выбор и работа над проектами

П

 

 

Блок 3

 

 

8

Особенности проектирования приложения в Windows Style: наброски, отрисовка макета, работа с Blend

Л

Демонстрация Sketch-Flow

9

Binding – связывание данных между интерфейсом и программной частью приложения

Л

 

10

Практика – выбор группового проекта, разработка

П

 

 

Блок 4

 

 

11

Общая архитектура приложения; паттерн MVVM

Л

 

12

Практика в группах – разработка приложений с использованием MVVM и тулкитов

П

 

 

Блок 5

 

 

13

Windows 8 – знакомство; навигационные паттерны

Л

 

14

Создание единого ядра приложений для Windows Phone и Windows 8, особенности переноса

Л

 

15

Практика – запуск предыдущего проекта под Windows 8

П

 

 

Блок 6

 

 

16

Публикация приложения; маркетинг; метрики

Л

 

17

Реклама; промо; кейсы

П

 

 

 

Необходимое оборудование: установленные на компьютерах средства разработки (Visual Studio Express/Professional); бумага формата А4; доска

 

 

Ожидаемый практический результат:

После прохождения курса, у учащихся будет сформировано представление о мобильной экосистеме Microsoft, платформе Windows Phone, процессе разработки приложений под Windows Phone, заложено понимание основ разработки под Windows 8. Полученные знания и навыки будут отработаны во время практических занятий в группах;  а также подтверждены сданной итоговой работой – опубликованное в Windows Store приложение для Windows Phone каждой группой участников.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок 1 (15 ноября, 3 занятия)

1

Экосистемы в ИТ. Роль Microsoft

Л

 

2

Мобильные платформы Microsoft

Л

 

3

Инструменты для разработки: VS, Blend, другие

Л

 

 

1 - Экосистемы ИТ-индустрии сегодня. Роль Microsoft

 

 

В этом, 2012 году, на всех конференциях, посвященных самым крупным компаниям от Facebook до Apple, каждый СЕО повторяет: "человеку нужен не гаджет или портал, а сервис. и мы его предлагаем!".

А с того года было видно, как компании борются не просто за гаджеты, а за чистоту экосистемы. Хотя до этого года был, на мой взгляд, "подготовительный этап" к битве, которая вот-вот развернется на наших глазах.

Предлагаю рассмотреть, в чем же суть ИТ-экосистемы, какие возможные сценарии развития возможны далее.

Экосистему в биологии понимают как систему, состоящую из сообщества организмов, среды их обитания и системы связей. (http://ru.wikipedia.org/wiki/%D0%AD%D0%BA%D0%BE%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0)

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

 

Можно выделить три компании, которые претендуют на роль первого гиганта, предоставившего миру ИТ-экосистему – максимально удобную и недорогую для пользователя. Я говорю о Microsoft, Apple, Google. Как неотъемлемые элементы экосистемы сегодня можно выделить настольные ПК, планшеты, мобильные устройства и облачные сервисы, позволяющие осуществлять взаимодействие между ними.

Рассмотрим подробнее.

 

Настольные системы

Сегодня Microsoft доминирует на рынке десктопных систем и до сих пор его доля более 90%. Но недавно в свете айфономании, затем айпадомании, началась макбукомания. Кстати, по словам многих, в СШЭ это хорошо заметно, да и в Москве последний год тоже. И доля десктопных систем у Microsoft могла бы сильно уменьшится, но этого не случилось.

В том году, как мне видится, у них была приоритетная задача - рекламировать много Windows 7 (и сопутствующих сервисов вроде SkyDrive), а Windows Phone и другие продукты шли просто рядом (хотя может показаться, что наоборот). Однако уже была бета Windows 8, релиз которой всего через год. Зачем? Я считаю, что из-за а) боялись потерять позиции (см. про макбукоманию); б) Microsoft догадывались, что переход на вин 8 без привязанных заранее к Windows7 пользователей будет еще сложнее, чем он ожидается сейчас.

Линукс как популярная ОС тут не рассматривается хотя бы потому, что я говорю в первую очередь о конечных пользователях - которым "нужен сервис".

Мобильные устройства

Краткий экскурс.

Год 2006 - царит Windows Mobile, потихонечку отходит от дел Palm OS.

Год 2007 - Стив Джобс демонстрирует чудеса технологий, воплощенные в до сих пор непревзойденном iPhone. 

Годом позже появился Android (у него ~64% рынка, эту цифру стоит запомнить) , а еще через год появляется Windows Phone.

Август/Сентябрь 2012 - Google с начала появления Android, утверждал, что будет поддерживать вендоров, но не проронил ни одного комментария в деле Apple vs Samsung (то самое, где в патентной борьбе Samsung потеряла $1 млрд.). Samsung теперь понимает, что быть завязанным на одной платформе - большой грех и через какое-то время всерьез говорит о виндофонах не просто как о "запасном аэродроме", а как о потенциально привлекательном рынке. И кстати не только говорит - делает анонс Windows Phone 8 на пару дней раньше презентации Nokia (которая, как логично предположить, являясь главным вендором МС, должна была сделать это первой). Что показывает Самсунг никто уже и не помнит, но все знают - что это они анонсировали WP8.

Сентябрь 2012 - Нокиа выпускает отличный смартфон, настоящий флагман, но люди говорят - "он чбез особых инноваций" и спекулянты понижают акции компании на 17+%, приблизив почти что к стартовой цене перед IPO. Начинают ходить слухи (и вроде даже небеспричинно), что в случае очень успешной презентации iPhone 5, к концу года Nokia перестанет существовать или ее задешево купят. В итоге, Apple представляет откровенно слабый аппарат и появляются шутки "у каждой компании должна быть своя Виста".

На деле оказывается, что по характеристикам Nokia Lumia 920, iPhone 5, Samsung Galaxy 3 почти одинаковы. Ввиду того, что iPhone - это iPhone, то он по понтам чуть подальше других. Андроид - по количеству пользователей в разы дальше других. Windwows Phone пока серенькая мышка по сравнению с ними по числу пользователей и фанатов. Но аппараты - на одной ступени.

 

Планшеты

Сегодня они еще не получили должную популярность среди пользователей (в сравнении с десктопными и мобильными системами), рынок достаточно сырой.

Лидерами на нем можно назвать Apple и Google, но уже сейчас все замерли в ожидании Windows 8 – а примит ли ее пользователь? А стоит ли сейчас разрабатывать приложения под нее?

 

 

Можно сделать определенные выводы из всего этого:

Настольные ПК (а значит, и ближайшее будущее) – в руках Microsoft.

Android и Google – лидер среди мобильных, но это должно изменится в связи с политикой диверсификации самсунга.

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

 

В свою очередь для разработчиков важно, что большая часть приложений для описанных выше устройств использует GPS навигацию и так или иначе взаимодействует с веб–сервером – сейчас это два основных направления, без которых не обходится практически ни одно приложение. Множество приложений для мобильных устройств используют интерфейсы разработки, предоставляемые социальными сетями и микроблогами, такими как Вконтакте, Facebook или Twitter. По этим причинам, разрабатывая собственные приложения на любой платформе, в первую очередь стоит обратить внимание на вышеперечисленные сервисы и сопутствующие особенности успешных приложений.

Таким образом, нельзя однозначно сказать, кто станет первым в рядах создавших популярную ИТ-экосистему, но при этом вполне очевидно, что в ближайшие пять-десять лет каждая из компаний будет заниматься не одним направлением, а их совокупностью. Учитывая то, что сегодня идет насыщение рынка планшетов, а десктопные и мобильные системы являются наиболее используемыми, можно сказать, что Microsoft в этой гонке может победить, если не растеряет пользователей десктопной Windows, сможет увеличить долю своего присутствия на мобильном сегменте и «захватит» планшеты.

 

 

 

 

 

 

 

 

2 - Мобильные платформы Microsoft.

Основные понятия.

Сегодня на рынке присутствует несколько наиболее известных операционных систем: Microsoft с семейством операционных систем Windows CE  (Windows  Mobile, Windows Phone), Symbian, Apple с операционной системой iOS, Android и другие.

Windows CE — это вариант операционной системы Microsoft Windows для наладонных компьютеров, мобильных телефонов и встраиваемых систем. Это операционная система, которая служит основой для устройств нескольких классов. 

Windows Mobile – это основанная на Windows CE мобильная операционная система. Последняя версия этой операционной системы называется Windows Phone Classic 6.5. Она основана на Windows CE 5.2, имеет основной набор приложений, разработанных с использованием Microsoft Windows API. 15 февраля 2010 года на выставке Mobile World Congress, проходившей в Барселоне, Microsoft анонсировала преемника Windows Mobile — Windows Phone 7. Новая ОС не совместима с предыдущей программно–аппаратной платформой, следовательно, смартфоны с Windows Mobile 6.x не способны обновиться до Windows Phone 7. Стоит отметить, что в настоящее время Windows Mobile переживает постепенный отказ от поддержки и разработки.

Windows Phone 7 — мобильная операционная система, разработанная Microsoft, основанная на Windows Embedded CE 6.0, вышла 11 октября 2010 года. 21 октября начались поставки первых устройств на базе новой платформы. В России телефоны с Windows Phone 7 появятся во второй половине 2011 года. Данная операционная система является отличной от Windows Mobile, с полностью новым интерфейсом и впервые с интеграцией сервисов Microsoft. [1]

Windows Phone 8 — преемник Windows Phone 7, анонсированный 29 октября 2012 г. Платформа имеет обратную совместимость с WP7 (приложения, созданные для WP7 будут запускаться на WP8, но не оборот). Дизайн схема, инструменты, платформы и языки программирования принципиально не отличаются от их набора для WP7.

Программирование приложений для Windows Phone, как и для Windows Mobile, осуществляется при помощи технологии .Net Framework (вернее, .Net Compact Framework, вышедшей из .Net Framework и созданной для работы с мобильными устройствами), для освоения которой при написании дипломной и курсовой работы потребовалось изучение языка C#.

C# — объектно–ориентированный язык программирования. Вобрав в себя наиболее  лучшие черты от многих других языков (C++, Java, Delphi), C# на данный момент является одним из самых перспективных, удобных и быстрых в исполнении языков программирования.

 

Операционные системы на базе Windows CE

Windows CE

Операционная система Windows CE задумывалась Microsoft как облегченная версия Windows 95, рассчитанная на использование в портативных компьютерах. Изначально ориентированная на самые различные аппаратные платформы и процессоры, Windows CE позволяет легко менять конфигурации портативных устройств и применяется не только в PDA, но и в автомобильных компьютерах, планшетах и т. д.

Сегодня Windows CE (Consumer Electronics — бытовая техника) не является «урезанной» версией Windows для настольных ПК, она основана на совершенно другом ядре и является операционной системой реального времени с набором приложений, основанных на Microsoft Win32 API. [9]

Версии Windows CE представлены следующей линейкой:

CE 2.0 • CE 3.0 • CE 4.0 • CE 5.0 (Windows Mobile) • CE 6.0 (Windows Phone 7)

Стоит обратить внимание на то, что Windows CE является базовой платформой для операционных систем, которые рассматриваются в данной работе – Windows Mobile и Windows Phone 7.

 

Windows Mobile

Windows Mobile создавалась много лет назад (первый выпуск – 2000 год) и со своей задачей в течение нескольких лет успешно справлялась. Система развивалась неспешно, появлялись новые функции и множество новых приложений. Именно благодаря сторонним приложениям Windows Mobile и по сей день остается одной из наиболее функциональных и гибко настраиваемых мобильных ОС.

Важное отличие от Windows Phone 7 в том, что система была действительно гибкой в настройке, хотя и более сложно программируема (многие элементарные функции не были реализованы стандартными средствами, что усложняло процесс разработки). В свою очередь, Windows Phone 7 более прост в разработке, но менее гибок – доступ к архитектуре полностью закрыт, нет привычной системы папок, что также усложняет взаимоотношения «продвинутого» пользователя с системой.

 

Windows Phone

Windows Phone, в отличии от предшественника, – система с минимумом функций, которая, по мнению разработчиков, должна стать удобной и понятной для любого пользователя.

Так отзывается о Windows Phone 7 Чарльз Петцольд (его бесплатная книжка “Programming for Windows Phone 7”): «Прекрасный внешний вид, необыкновенные шрифты и новые принципы компоновки Windows Phone 7 делают его не просто символом разрыва с прошлым, но и выгодно отличают от других смартфонов, представленных на рынке в настоящее время. Поддержка двух популярных платформ разработки, Silverlight и XNA, гарантирует, что в Windows Phone 7 найдется много интересного и для разработчиков» – так пишет в своей книге Чарльз Петцольд «Programming Windows Phone 7». [2]

 

Аппаратное обеспечение устройств на базе Windows Phone

Важной особенностью устройств на базе Windows Phone 7, является строгое ограничение со стороны Microsoft на аппаратную часть для производителей смартфонов. По мнению разработчиков ОС, эти ограничения обеспечат наилучшую производительность устройств на базе Windows Phone 7. Ниже приведен список тех необходимых требований, которым должен удовлетворять любой смартфон с этой операционной системой.

·         Стандарт: GSM/GPRS/EDGE 850/900/1800/1900 + UMTS/HSPA 900/2100.

·         Процессор: Qualcomm Snapdragon с тактовой частотой 1 ГГц.

·         Оперативная память: 256 МБ.

·         Встроенная флеш–память: 8 ГБ.

·         Разрешение экрана: 800×480.

·         Сенсорная поверхность: ёмкостная с поддержкой мультитач.

·         Беспроводные интерфейсы: Wi–Fi, Bluetooth.

·         Камера: 5 МП с подсветкой.

·         Порты: микро–USB, стандартный 3.5 мм разъём для наушников.

·         Прочее: GPS, FM–приёмник, акселерометр, магнитный компас, датчики освещения и близости.

·         Аппаратные клавиши: «Пуск», возврат, поиск, громкость, питание, камера (с полунажатием).

 

Графический интерфейс

Для разработки приложений под Windows Phone 7, необходимо ознакомиться с определенной терминологией. Если говорить о графическом интерфейсе, то можно выделить три основных элемента:

·         Плитки на главной странице (любимые приложений, люди и веб–страницы)

·         Список приложений (алфавитный список всех приложений)

·         Hubs – Хабы (нечто среднее между приложениями и меню)

 

Домашний экран и плитки

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

Рис. 1. Домашний экран – плитки

Пользовательский интерфейс Windows Phone 7 основан на дизайне, который внутри корпорации известен под именем Windows 8 Style. Вместо фотореалистичных многоцветных рисунков, операционная система использует чистые, стилизованные иконки со смелыми цветами и чёткими, красивыми надписями. В интерфейсе был использован минималистский подход. Можно более подробно ознакомится с темой и стандартами, следовать которым призывает Microsoft во время разработки собственных приложений: «Windows Phone Design System: Code named Metro».

Плитки на домашнем экране – это не просто обычные иконки. Это "живые", динамичные, активные компоненты. Если на e–mail аккаунте есть непрочитанные письма, соответствующая плитка покажет их количество. Плитка телефона показывает количество пропущенных звонков, смс-сообщений и других нотификаций.

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

Рис. 2. Список приложений

 

Hubs – Хабы

Windows Phone 7, конечно же, имеет возможность использования приложений сторонних разработчиков, однако этот смартфон имеет в своём расположении ещё такие элементы, как Hubs (центры событий). По сути Hubs – это логически сгруппированные "приложения" со схожим функционалом. Всего существует шесть таких центров: People, Pictures, Music & Video, Office, Games, и Marketplace.

Каждый центр собирает всю информацию, имеющую отношение к заданным критериям в одном едином месте. People hub, например, содержит в себе записи обо всех ваших контактах. Но это не просто "обычный набор имён и телефонных номеров". Это место, где собраны все люди, которых вы знаете: помимо локальной телефонной книжки, информация подгружается из Exchange, Windows Live, Facebook, или Gmail. Аналогично устроены и другие «хабы».

Рис. 3. Хаб People

Другие особенности Windows Phone 7

Многие сервисы Windows (например, Windows Live, Bing) уже интегрированны в Windows Phone 7. Предустановленные программы учитывают местонахождение пользователя, имеют доступ к картам и другим данным посредством Bing и Windows Live и могут взаимодействовать с сервисами социальных сетей. Один из предлагаемых сервисов – Xbox Live – обеспечивает возможность участия программ XNA в многопользовательских сетевых играх и также доступа к ним приложений Silverlight. 

Интересным аспектом с точки зрения распространения приложений является свой магазин от Windows (аналога для Windows Phone не было). Программы, создаваемые для Windows Phone 7, будут продаваться и устанавливаться через сайт партнерских решений – Windows Phone Marketplace. Этот сайт обеспечивает регистрацию и гарантирует, что программы отвечают минимальному набору требований надежности, эффективности и нормам этики.

 

 

 

 

 

 

3 - Разработка под Windows Phone

C# и .Net Framework

 

Microsoft .NET Framework — программная технология от компании Microsoft, предназначенная для создания обычных программ и веб–приложений.  Существуют различные среды разработки .NET–приложений, например, Microsoft Visual Studio, включающая в себя C#, Visual Basic .NET, Managed C++.

C# – основной язык разработки приложений для платформы Microsoft .NET. Переняв многое от своих предшественников — языков C++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем.

 

Silverlight

Microsoft Silverlight — это программная платформа, включающая в себя плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику, аудио–видео ролики, а также поддерживает интерактивность в одной программной платформе. Версия 2.0 добавила поддержку для языков .NET [6].

Silverlight для Windows Phone 7 обеспечивает возможность использования элементов темы Metro при разработке пользовательского  интерфейса.

Приложения Silverlight могут быть написаны на любом языке программирования .NET. Как таковые, все инструменты разработки, которые могут быть использованы для разработки на .NET, также могут работать c Silverlight. Также, в Silverlight есть возможность разрабатывать пользовательский интерфейс, используя язык разметки XAML.

 

XNA

XNA  — набор инструментов со средой с управляемым кодом (.NET), облегчающий разработку и управление компьютерными играми [5]. Действие игры, включающее перемещение графических объектов по экрану и запрос пользовательского ввода, обрабатывается встроенным игровым циклом XNA.

Инструментарий XNA изначально разрабатывался с целью максимально облегчить процесс разработки игр для консоли Xbox и компьютеров, работающих под управлением операционной системы Windows.

XNA Game Studio — непосредственно среда разработки (IDE) для разработки игр на основе фреймворка XNA, начиная с 4 версии которой можно разрабатывать приложения и для Windows Phone.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Блок 2 – март 2013

4

Платформа .Net CF. Знакомство со средой, особенности разработки, особенности эмулятора, типы навигационных шаблонов

Л

Демонстрация Visual Studio

5

Первое приложение: идея, прототипирование, разработка, отладка

Л

 

6

Практика – выбор и работа над проектами

П

 

Разработка приложений на .Net Compact Framework

В первую очередь при сравнении технологий разработки приложений для различных операционных систем, следует выяснить, на каких платформах они разрабатываются, какие языки используются. Это важно потому, что используемые парадигмы программирования могут оказаться различными, а как следствие – сравнение будет не всегда объективным. При этом стоит отметить, что в случаях разработки на Windows Phone 7 и Windows Mobile основной язык программирования – C#. При этом, для разработки на Windows Mobile можно было использовать «родной» код С++, однако в разработке для Windows Phone 7 от этого отказались. Рассмотрим чуть более подробно особенности языка C# и его отличия
от C и C++.

 

Различия языков C/С++/C#

C – процедурный язык программирования. Достаточно старый язык (появился в 70–х годах), однако до сих пор достаточно популярный. Его синтаксис переняли С++ и C#. Так же на нем разрабатывают ПО для различных устройств, помимо персональных компьютеров. Он применяется в основном для программирования на низком уровне, написания драйверов.

С++ – объектный язык программирования. Такие понятия, как класс, наследование, полиморфизм, инкапсуляция появились в C++. Позволяет оперировать с системой на низком уровне (прямой доступ к памяти, регистрам процессора, устройствам ввода/вывода). C++, пожалуй, самый мощный из представленных языков, большинство крупных проектов написано на нём. Однако, он во многих случаях сложен в использовании, в частности, в работе с указателями (по сравнению с C#).

C# – один из языков .Net Framework платформы. От С++, в частности, отличается автоматическим контролем выделенной памяти, а так же сборкой мусора (высвобождением более неиспользуемой памяти). В нем нельзя обращаться к устройствам напрямую, что повышает стабильность операционной системы, в которой будут исполняться пользовательские программы.

По сравнению с другими языками, С# несколько проще в изучении, практичный и современный, а также обладает мощным набором стандартных классов. Кроме этого, не совсем верно будет сказать, что это «чистое» продолжение вышеобозначенных языков – С# вобрал в себя лучшие черты ряда других языков – Java, Delphi.

 

C# и .Net Framework

Microsoft .NET Framework — программная технология от компании Microsoft, предназначенная для создания обычных программ и веб–приложений.  Существуют различные среды разработки .NET–приложений, например, Microsoft Visual Studio, включающая в себя C#, Visual Basic .NET, Managed C++.

C# – основной язык разработки приложений для платформы Microsoft .NET. Переняв многое от своих предшественников — языков C++, Java, Delphi, Модула и Smalltalk — С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем.

Одной из основных идей Microsoft .NET является совместимость различных служб, написанных на разных языках. Например, служба, написанная на C++ для Microsoft .NET, может обратиться к методу класса из библиотеки, написанной на Delphi; на C# можно написать класс, наследованный от класса, написанного на Visual Basic .NET, а исключение, созданное методом, написанным на C#, может быть перехвачено и обработано в Delphi. Каждая библиотека (сборка) в .NET имеет сведения о своей версии, что позволяет устранить возможные конфликты между разными версиями сборок.

Среда разработки .NET Framework создаёт CLR байт–код, предназначенный для исполнения виртуальной машиной. Входной язык этой машины в .NET называется MSIL (Microsoft Intermediate Language) или просто IL. Применение байт–кода позволяет получить кроссплатформенность на уровне скомпилированного проекта, а не только на уровне исходного текста, как, например, в С. Перед запуском сборки в среде исполнения CLR байт–код преобразуется встроенным в среду JIT–компилятором (just in time, компиляция на лету) в машинные коды целевого процессора. [8]

.Net Compact Framework

Microsoft .NET Compact Framework (.NET CF) — это версия .NET Framework, которая разработана для запуска приложений на устройствах, основанных на платформе Windows CE, таких как КПК, мобильные телефоны, коммуникаторы и других. .NET Compact Framework использует библиотеки, подобные полной версии .NET Framework, вместе с тем имеются специальные наборы библиотек для мобильных устройств, например, Windows CE InputPanel. [8]

Разработка приложений, использующих возможности .NET Compact Framework может производится в Visual Studio .NET 2003, в Visual Studio 2005/2008/2010 на языке C# или Visual Basic .NET. Результатом разработки являются специальные приложения для мобильных устройств, обладающие высокой производительностью (исполняются при помощи JIT компилятора).

Для запуска приложений .NET Compact Framework, платформа должна иметь поддержку окружения Microsoft .NET Compact Framework. Некоторые операционные системы, в которых включён .NET CF могут выполнять приложения Windows CE 4.1, Microsoft Pocket PC, Microsoft Pocket PC 2002 и Smartphone 2003. Приложения .NET Compact Framework могут выполняться и на настольных компьютерах с полным .NET Framework, если приложение использует общий функционал для обоих Framework, хотя их пользовательский интерфейс невозможно сделать подобным приложениям ПК.

  Для разработки приложений с использованием .NET Compact Framework необходим так называемый инструментарий Windows Mobile SDK (для Windows Mobile) или Windows Phone Developer Resources (для Windows Phone 7).

 

 

 

 

 

 

Инструменты разработчика

Все программы для Windows Phone 7 создаются с использованием управляемого кода .NET. В настоящее время C# – единственный поддерживаемый язык программирования. Основным средством для разработки служит свободно доступный для загрузки Microsoft Visual Studio 2010 Express для Windows Phone, который включает XNA Game Studio 4.0 и экранный эмулятор телефона, а также интегрируется с Visual Studio 2010. Визуальные элементы и анимация для приложений Silverlight могут создаваться в Microsoft Expression Blend.

Microsoft Expression Blend — программа от Microsoft, предназначенная для разработки дизайна web интерфейсов и графических настольных приложений, совмещает в себе особенности этих двух типов приложений. Это интерактивный редактор для дизайна интерфейсов, основанных на XAML приложениях и приложениях Silverlight. [4]

В отличии от Windows Mobile, Windows Phone 7 поддерживает две платформы разработки – Silverlight и XNA. Рассмотрим, что из себя представляет каждая из платформ, и чем они отличаются.

 

Silverlight

Microsoft Silverlight — это программная платформа, включающая в себя плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику, аудио–видео ролики, а также поддерживает интерактивность в одной программной платформе. Версия 2.0 добавила поддержку для языков .NET [6].

Важно отметить, что все Silverlight приложения на Windows Phone хранятся на клиентском устройстве и не выполняются внутри браузера. Весь функционал Silverlight, который основан на размещении в браузере — не доступен. 

Silverlight для Windows Phone 7 обеспечивает возможность использования элементов темы Metro при разработке пользовательского  интерфейса.

Приложения Silverlight могут быть написаны на любом языке программирования .NET. Как таковые, все инструменты разработки, которые могут быть использованы для разработки на .NET, также могут работать c Silverlight. Также, в Silverlight есть возможность разрабатывать пользовательский интерфейс, используя язык разметки XAML.

XAML (англ. eXtensible Application Markup Language — расширяемый язык разметки приложений; произносится [зэмл] или [замл]) — основанный на XML язык разметки для программирования приложений, разработанный Microsoft.  Все созданное или реализованное в XAML может быть выражено при помощи более традиционных .NET языков, таких как: C# или Visual Basic.NET. Однако, ключевым аспектом технологии является уменьшение сложности используемых для обработки XAML инструментов, так как XAML основан на XML. [7]

Silverlight как платформа для Windows Phone 7 уже обеспечил Веб–разработчиков беспрецедентными возможностями разработки сложных пользовательских интерфейсов, предоставляя традиционные элементы управления, высококачественный текст, векторную графику, мультимедиа, анимацию и привязку данных, которые могут выполняться во множестве браузеров и на разных платформах. Windows Phone 7 расширяет использование Silverlight на мобильные устройства. [2]

 

XNA

XNA  — набор инструментов со средой с управляемым кодом (.NET), облегчающий разработку и управление компьютерными играми [5]. Действие игры, включающее перемещение графических объектов по экрану и запрос пользовательского ввода, обрабатывается встроенным игровым циклом XNA.

Инструментарий XNA изначально разрабатывался с целью максимально облегчить процесс разработки игр для консоли Xbox и компьютеров, работающих под управлением операционной системы Windows.

XNA Game Studio — непосредственно среда разработки (IDE) для разработки игр на основе фреймворка XNA, начиная с 4 версии которой можно разрабатывать приложения и для Windows Phone.

 

Silverlight и XNA

Подводя итог, можно выделить ключевые характеристики Silverlight и XNA и сравнить эти платформы в контексте разработки приложений для Windows Phone 7.

Как правило, Silverlight используется для программ, которые можно классифицировать как приложения или утилиты. Описание компоновки элементов управления и панелей пользовательского интерфейса в этих программах выполняется с помощью расширяемого языка разметки приложений XAML. [2]

Главное назначение XNA – создание высокопроизводительных игр. XNA стремится освободить разработку игр от написания «повторяющегося шаблонного кода» и объединить различные аспекты разработки игр в одной системе.

Конечно, можно разрабатывать игры и на Silverlight, но это чаще нетребовательные к графике и производительности небольшие игры, которые, однако, достаточно быстро разрабатываются. Важным является то, что в Silverlight большинство объекты векторные, а в XNA все объекты растровые (даже, например, текст на экране преобразуется в растр).

При этом платформы Silverlight и XNA для Windows Phone 7 имеют ряд общих библиотек, т.е. некоторые библиотеки XNA могут использоваться в Silverlight и наоборот. Но нельзя создавать программу, сочетающую в себе визуальные элементы обеих платформ.

Выделив главное, можно сравнить вышеописанные платформы применительно к разработке приложений и игр для Windows Phone 7, рассмотрев Таблицу 2.

Таблица 2. Сравнение платформ для разработки приложений для Windows Phone 7

Silverlight

XNA

·      Описываемый с помощью XAML пользовательский интерфейс

·      Быстрое создание приложений
с красивой визуализацией

·      Использование элементов темы Metro при разработке пользовательского  интерфейса

·      Разработка только на C#

·      Высокая производительность,
необходимая для игр

·      Быстрое создание графики
для 2D и 3D игр

·      Кроссплатформенность:
Xbox 360, Windows, Zune

 

 

2 лекция  – программа Стаса Павлова «Разработка под Windows Phone»

3 лекция – практическое занятие: создание тестового приложения «Hello, Worl!», выбор приложения для сдачи курса.

 

Список используемой и рекомендуемой литературы

1. Microsoft. Windows Phone. – URL:
http://www.microsoft.com/windowsmobile/ru-ru/default.mspx

2. Petzold C. Programming Windows Phone 7. 2010

3. Microsoft. MSDN–help. – URL: 
http://msdn.microsoft.com/en–us/library/gg680270(v=pandp.11).aspx.

4. Microsoft. Microsoft Expression Blend. – URL:
http://www.microsoft.com/expression/products/Blend_OverView.aspx

5. Microsoft. XNA. – URL:
http://xna.com

6. Microsoft. Silverlight. – URL:
http://www.silverlight.net/

7. Wikipedia. XAML. – URL:
 http://ru.wikipedia.org/wiki/XAML

8. Microsoft. .NET Compact Framework – URL:
http://msdn.microsoft.com/en-us/netframework/aa497273.aspx

9. Microsoft. Windows CE – URL:
http://www.microsoft.com/windowsembedded/en-us/windows-embedded.aspx

10. Пугачев С. 45 дней с Windows Phone 7 – URL:
 
http://pugachev.info/archives/264

11. Голуб В. Windows Phone 7: детальный обзор смартфона – URL:
http://www.oszone.net/13671/Windows_Phone_7_Review_part_1

12. Лутфуллин А. Детальный обзор Windows Phone 7 – URL:
http://www.mobile–review.com/review/windows–phone7.shtml

13. Microsoft. Windows Phone Design System: Code named Metro – URL:
http://go.microsoft.com/fwlink/?LinkId=210112

14. Wikipedia. Веб–сервис – URL:
http://ru.wikipedia.org/wiki/Веб–сервис

15. Wikipedia. XML – URL:
http://ru.wikipedia.org/wiki/Xml.

16. Yahoo! Yahoo! Maps Web Services – Map Image API – URL:
http://developer.yahoo.com/maps/rest/V1/.

17. MSDN. How to: Use Reactive Extensions to Emulate and Filter Location Data for Windows Phone – URL:
http://msdn.microsoft.com/ru-ru/library/ff637517(VS.92).aspx

18. Wikipedia. Навигация – URL:
http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D0%B2%D0%B8%D0%B3%D0%B0%D1%86%D0%B8%D1%8F

19. PRIN–SHOP.Ru. Пять идей, лежащих в основе GPS – URL:  http://www.GPSinfo.ru/articles.php?article=2210

20. Wikipedia. Географические координаты – URL:  http://ru.wikipedia.org/wiki/%D0%93%D0%B5%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D0%BA%D0%BE%D0%BE%D1%80%D0%B4%D0%B8%D0%BD%D0%B0%D1%82%D1%8B

21. Климов А. Программирование КПК и смартфонов на .Net Compact Framework. 2007

22. Жерздев С.В. Лекции учебного курса Разработка ПО для портативных компьютеров (КПК). 2005

23. Котов А. Обзор операционной системы Windows Mobile 5.0 – URL:
http://www.mobile-review.com/pda/articles/wm2005-1.shtml

24. Microsoft. Windows Mobile – URL:
http://www.microsoft.com/windowsmobile/ru-ru/default.mspx

25. Павлов С. Разработка для Windows Phone – URL:
http://bit.ly/TUNz7p