Блог Сергея Байдачного

Мой блог о технологиях

Archive for the ‘Windows 8’ Category

Курс: Разработка приложений для Windows 8 и Windows Phone (часть 2)

leave a comment »

Ссылки на вторую часть наших онйлайн лекций:

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032542052&Culture=UK-UA&community=0

https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032542053&Culture=UK-UA&community=0

Written by Sergiy Baydachnyy

16.01.2013 at 09:30

Опубликовано в Windows 8, Windows Phone

Бесплатные курсы по Windows Phone и Windows 8 для студентов

with one comment

Чтобы стимулировать украинских студентов создавать больше приложений и принимать участие в Imagine Cup 2013, мы решили запустить серию онлайн курсов по самым последним технологиям. Лично я буду читать Windows Phone и Windows 8.

Вот ссылки на регистрационную форму для первых лекций:

Разработка приложений для Windows Phone (8 января)

Разработка приложения для Windows 8 (10 января)

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

Written by Sergiy Baydachnyy

24.12.2012 at 18:36

Опубликовано в Windows 8, Windows Phone

Tagged with ,

Особенности регистрации в Windows 8 Store для студентов

7 комментариев

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

Действительно, чтобы зарегистрироваться как студент, теперь нет необходимости выбирать отдельный тип аккаунта, а достаточно выбрать тип Individual. Этот тип подходит как для разработчика, так и для студента. Вопрос лишь в том, как не платить 49 грн. (а потом и 49 долларов) за аккаунт. Ответ простой: необходимо ввести специальный промо-код в предназначенное для этого поле и пересчитать сумму, сбросив ее в ноль. В Microsoft решили, что вместо того, чтобы делать сложную интеграцию с программой DreamSpark, как это было для Windows Phone Store, достаточно наладить раздачу кодов со скидкой в 100% через сайт программы непосредственно.

Чтобы получить код, заходите на сайт DreamSpark под своим аккаунтом (или регистрируетесь). Для регистрации можно использовать ISIC, емейл в домене Вашего университета (если есть в списке) или специальный промо-код. Специальный промо-код можно получить у меня (Sergiy.Baydachnyy@microsoft.com), если: Вы украинский студент и вышлите мне копию своего студенческого.

Войдя на сайт программы под своим аккаунтом, перейдите вот по этой ссылке: https://www.dreamspark.com/Student/Windows-Store-Access.aspx

clip_image002

Жмете на ссылку Get code Now и получаете свой код со скидкой 100% для регистрации в Windows 8 Store.

Внимание. Для регистрации Вам все равно понадобится карточка Visa или MasterCard (можно взять чужие, например у родителей, но регистрацию проводить вместе с ними, так как нужно звонить в банк). Лучше сразу позвонить в банк и попросить снять CVV код и предупредить о нескольких транзакциях из сети. На карточке должно быть немного денег (до 100 грн.), так как в момент регистрации будут сделаны три транзакции (деньги потом вернут назад). Первая транзакция в размере около 9 грн. подтверждает работоспособность карточки и позволяет выполнить верификацию того, что Вы живете в Украине. Вторая транзакция заблокирует сумму случайным образом (у меня это было 17.07, у кого-то 20.50 и т. д.). Эту сумма нужна для того, чтобы завершить верификацию. Поэтому, как только регистрация завершена, пройдитесь по всем вкладкам на Вашем аккаунте и найдите форму для завершения верификации. Тут Вам нужно ввести сумму последней транзакции и трехзначный цифровой код, который есть в описании транзакции. Поэтому, либо идете в клиент-банк, либо опять звоните в банк и уточняете все данные, вводите в форму и завершаете верификацию.

Следуйте по инструкции и Вы выполните всю регистрацию минут за 5.

Written by Sergiy Baydachnyy

14.12.2012 at 10:10

Опубликовано в Windows 8

Tagged with

Выбираем язык программирования: Windows 8 vs Windows Phone 8

6 комментариев

 

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

Итак, все Вы знаете, что Windows 8 представляет собой абсолютно новую операционную систему, ориентированную на пользователей, которые работают как с обычными компьютерами, так и с планшетами или лэптопами с Touch экраном. Это достигается за счет нового интерфейса, возможности работы на ARM процессорах и реализации абсолютно нового программного интерфейса, который получил название Windows Runtime. Именно Windows Runtime является набором тех строительных блоков, которые предоставляют множество элементов управления нового типа, компонентов по работе с данными, сетью и др. То есть, в Windows Runtime есть все то, что необходимо для построения типичного бизнес-приложения. При этом в Windows Runtime практически не используется старый программный интерфейс Win 32 API. Вместо этого Windows Runtime базируется непосредственно на ядре операционной системы (Kernel), а для прорисовки элементов управления использует DirectX.

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

1). Работа с COM объектами в предыдущих версиях Windows выглядела не очень привлекательно со стороны объектно-ориентированного разработчика. Вытянуть информацию о структуре объекта было затруднительно и основные ошибки можно было отловить только на этапе выполнения, а программирование требовало механизмов динамического создания объектов и большого количества проверок. По этой причине, весь набор COM, входящих в состав Windows Runtime, включают дополнительные файлы, содержащие метаданные. Формат метаданных был заимствован из .NET Framework, но, в .NET Framework они находились внутри сборки, а при работе с COM речь идет и стандартных динамических библиотеках. Поэтому ничего не остается, как хранить метаданные в отдельных файлах. Их можно найти в папке C:\Windows\System32\WinMetadata. Причем, если Вы используете утилиту ildasm из .NET Framework 4.5, то эти метаданные можно легко посмотреть и исследовать всю структуру Windows Runtime.

2). Поскольку работа с COM из языков С# или C++ не выглядит «натуральной», то компиляторы и средства разработки были модифицированы таким образом, что весь набор COM из Windows Runtime разработчику представляется как набор классов. Тут разработчик не думает об интерфейсе IUnknown, не обрабатывает HRESULT, а работает с исключениями и др. Все это стало возможно благодаря метаданным и специальным расширениям, преобразующим конструкции, понятные ООП программисту в вызовы COM. Причем в зависимости от языка эти расширения разные и работают по разному. Так, приложения на С++ компилируются в нативный код. То есть все расширения представляют собой синтаксических сахар, а вот приложения на C# продолжают использовать .NET Framework (.NET Core, включающей основные службы и множество утилитных класов) для своей работы. Естественно, создавая свои собственные компоненты для Windows Runtime Вы будете на выходе получать тот же самый COM и файл с метаданными.

3). Поскольку COM является нативной для Windows, а Win 32 API еще активно используется как старыми приложениями, так и некоторыми системными утилитами, то для того, чтобы обязать приложения (разработчика) использовать «правильный» программный интерфейс, в операционной системе появляется отдельный компонент Broker, который контролирует обращение к различным API из приложения, загруженного из Windows Store. Ведь на том же С++ можно попытаться вызвать как Win 32 API, так и Windows Runtime. Тут есть два варианта: если приложение обращается к небезопасному API, например, требующему дополнительного подтверждения пользователя, то Broker перехватывает такую ситуацию и инициирует вызов только в том случае, если пользователь дал подтверждение. Если приложение пытается вызвать API, который не разрешен при публикации приложений в Store, то тут все гораздо проще — Ваше приложение просто не пройдет сертификациюJ Хотя, на своей девелоперской машине Вы можете обращаться к любым методам того же Win 32 API. Следует отдельно отметить, что существует небольшое количество методов из Win 32 API, к которым все еще можно обращаться из современных Windows 8 приложений. Но их очень мало и все они описаны в документации.

Теперь, когда все стало ясно о Windows Runtime, прейдем к вопросу написания игр. И вот тут нас ждет сюрприз. Так, в Windows 8 в этом плане практически не изменилась. Для написания игр используется старый добрый DirectX (версия 11.1). Тут разработчик может использовать либо какие-то фреймворки, либо использовать DirectX напрямую. О сторонних фреймворках мы говорить не будем, их сейчас появляется большое количество. А вот если говорить о фреймворках, предоставляемых Microsoft, то их просто нет. Старый добрый XNA больше не поддерживается, как и управляемый DirectX. Поэтому единственный язык, который тут можно использовать, это С++.

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

 

image

 

К картинки можно придираться, но она отражает то, о чем я писал выше. Тут С++ можно использовать для разработки современных приложений с использование Windows Runtime, утилизировать часть разрешенных методов из Win 32 API и создавать игры с использованием DirectX. Обратите внимание, что небольшую часть DirectX использовать нельзя даже в C++. Это касается динамической компиляции шейдеров и еще пары механизмов (поэтому прямоугольник я не дотянул).

Если говорить о С#, то тут картина несколько другая:

 

image

 

Тут C# работает на основе .NET Framework, последние предоставляет не только свои возможности по работе с коллекциями, сериализацией и др., но и обвертки для Windows Runtime (хотя их можно отнести скорее к возможностям компилятора). Ни о каким DirectX речи и не идет. Нет, Вы можете написать свои обертки для DirectX и нечто подобное уже есть (SharpDX), но для этого Вам потребуется С++J Почему? Ответ тут очень простой и состоит в том, чтобы заставить разработчика создавать приложения с максимальной производительностью. Именно большое количество качественных приложений позволит сдвинуть ARM устройства в сторону потребителя. Напоминаю, что на ARM, в отличии от Intel архитектуры пользователь не сможет поставить старые приложения в режиме десктопа. Ведь на ARM всех старых приложений просто не существовало. Видимо это подход правильный и он сработает.

Если говорить об HTML 5, то тут идея похожа на C#, но вместо .NET Framework идет двигатель, заложенный в основе IE 10, а также библиотека Win JS, которая предоставляет обертки для Windows Runtime в JavaSсript.

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

Еще раз отмечу, что мое мнение не отражает официальную позицию, а скорее мое внутреннее ощущение.

Начну с возможных вариантов развития в будущей операционной системе. Если бы я когда-то построил архитектуру системы таким образом, то в следующей версии сконцентрировался бы на двух вещах:

1). Перебросил бы всю утилитную составляющую .NET Core в Windows Runtime и превратил бы язык C# в нативный, избавившись от дополнительной прослойки;

2). Заменил бы DirectX новым API для создания высокопроизводительных графических приложений, сделав бы его в стиле Windows Runtime (частью), что автоматически бы сравняло возможности C# и С++.

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

Перейдем к вопросу выбора языка. Как видите, тут все просто. Если такие технологии как Silverlight и WPF для Вас являются новыми, то однозначно выбирайте С++. Если уж учить новые подходы, то лучше и язык выбирать универсальный. Аналогично стоит поступить, если Вы только начинаете программировать. Но, если Вам нужно написать приложение, а Вы уже имеете знания Silverlight, WPF или JavaScript, то используйте эти языки. Это позволит Вам сразу включится в работу. Правда к большинству игр это не относится, хотя существующие внешние фреймворки могут решить и эту задачу.

В моей практике было несколько случаев, когда компании, пытавшиеся программировать на JavaScript (до этого программируя на C#), не создавали конечный продукт, а также компании, которые вопреки моим советам садились за JavaScript и очень оперативно создавали продукт. Все зависит от уровня и Ваших знаний и тех разработчиков, которые с Вами работают.

И еще одна сноска о JavaScript. Помните, что JavaScript является объектно-ориентированным языком программирования, не уступающим по сложности С++. Поэтому, если Вы садитесь за создание Windows 8 приложения на этом языке, то обязательно проверьте свои знания. К сожалению, большинство современных JavaScript разработчиков с этим языком «дружат» не всегда (как ни странно), а все их программирование сводится к созданию небольших методов и утилизации существующих фреймворков.

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

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

Сразу хочу отметить, что я не верю в единый пакет для установки на Windows и Windows Phone (пусть даже в будущих версиях). Ведь размеры устройств и назначение достаточно разные для них. Возьмите хотя бы стандартную панель в Windows 8 или аппаратные кнопки в Windows Phone (в Windows 8 их всего одна, а в телефоне – три). Поэтому отвечая на вопрос о необходимости переписывать код с Windows Phone на Windows 8 и наоборот, я всегда отвечаю – да. Понятно, что бизнес-логику нужно сохранить, но интерфейс даже при одинаковых разрешениях экрана…. В общем, к этому вопросу больше не возвращаемся.

Итак, что представляет собой программный интерфейс Windows Phone 8. Первый и самый важный компонент, это SilverLight. Да, тот самый Silverlight, который присутствовал и в Windows Phone 7.x. И сразу же хочу обратить внимание, что в новой версии Windows Phone мы имеет дело не с Silverlight Core или чем-то подобным, а с полноценным Silverlight, который несет в себе не только полезные классы .NET Framework, но и все элементы управления по построению интерфейса. А что же Windows Runtime. Несомненно, Windows Runtime присутствует, но только на самом начальном уровне. Ведь действительно, ядро в Windows Phone 8 и Windows 8 одно и то же. Отсюда появляются дополнительные возможности, например использовать язык программирования С++, который в отличии от Silverlight позволяет создавать нативные приложения. Но, по каким-то загадочным причинам, Windows Runtime значительно урезан по сравнению с большим братом. Можно догадываться об этих причинах – необходимость работы старых приложений и совместимости. Но догадки не отвечают на вопрос о том, что будет дальше и как это будет развиваться. Поэтому я не буду ничего предполагать, а скажу лишь то, что Windows Runtime не содержит ни одного элемента управления! Это означает, что создавать приложения на С++ можно, но только в том случае, если они не имеют интерфейса или для его построения используют DirectX. Попробую зарисовать программную архитектуру:

 

image

 

На картинке C++ и Silverlight никак не пересекаются, просто я решил не рисовать две отдельные картинки. Тут на С++ можно создавать все то, что и в Windows 8, но его возможности ограничены возможностями Windows Runtime и DirectX. А вот Silverlight не только предоставляет окружение для управляемого кода и несет утилитные классы из .NET Core, но и предоставляет весь спектр элементов управления.

Таким образом, выбор языка программирования на Windows Phone 8 не совсем очевиден. Универсального средства в виде С++ тут не, так как интерфейсная часть все еще за пределами Windows Runtime. Таким образом, C# придется использовать и дальше, даже при очень большом желании полностью перейти на С++. Также хочу обратить ваше внимание на то, что Windows Phone продолжает поддерживать и XNA, что диктуется тем же вопросом совместимости. Кстати, из этой картинки становится ясно, почему в Windows Phone 8 присутствует два Location API. Опять же вопрос совместимости. Так, старое API было частью Silverlight, а новое — часть Windows Runtime.

Итак, чтобы выбрать язык(и) программирования для Вашего проекта, обязательно проанализируйте для какой из двух платформ Вы будете создавать приложение. Если Вы планируете покрыть обе платформы, то дальше выбирайте язык исходя из типа приложения и знаний Ваших разработчиков. Для игр выбор не особо велик, а вот с бизнес-приложениями можно экспериментировать достаточно долго. Например, можно писать все на C# или бизнес-логику выносить в отдельную библиотеку на С++ или … В общем, все зависит от ситуации. Надеюсь, что информация выше поможет сделать правильный выбор.

Written by Sergiy Baydachnyy

08.12.2012 at 15:10

Опубликовано в Windows 8, Windows Phone

Tagged with ,

Анонс первой встречи AppClub Kyiv “Запуск Windows 8”

leave a comment »

 

clip_image002

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

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

Формат: открытые обсуждения с експертами и семинары

Первая встреча запланирована на 26 октября и будет посвящена официальному запуску Windows 8.

На встречу приглашены эксперты:

  • Никита Лукьянец (Microsoft Украина). Эксперт по проектированию интерфейсов, сотрудник департамента стратегических технологий компании «Майкрософт Украина»;
  • Сергей Корж, автор приложения Tutorle для Windows Phone & Windows 8;
  • Александр Краковецкий (DevRain Solutions). Microsoft Regional Director, Microsoft MVP, Telerik MVP, PhD., автор wp7rocks.com, колумнист Forbes Украина;
  • Михаил Галучшко (DevRain Solutions). Microsoft Certified Professional Developer, автор wp7rocks.com, спикер.

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

Когда: 26 октября, 19:00 — 22:00 
Где: ул. Кудряшева 14 (Epam Systems)

Если вы хотите выступить информационными партнерами или спонсором наших мероприятий — пишите на info@devrain.com.

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

Для студентов предусмотрены скидки в размере 50%, для участия вам необходимо прислать скан студенческого. Вы также вы можете получить 50% скидку, если опубликуете статью или обзор своего приложения на сайте wp7rocks.com.

Чтобы быть в курсе обновлений, вы можете лайкнуть нашу страницу в #fb, задать вопрос @msugvnua или @wp7rocks_com с хэштегом #appclubkyiv, написать на info@devrain.com или любым другим удобным для вас способом.

Официальная страница мероприятия – http://wp7rocks.com/AppClub

Written by Sergiy Baydachnyy

24.10.2012 at 07:20

Опубликовано в Windows 8

Tagged with

Украинские приложения в Windows 8 Store: Обозреватель

leave a comment »

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

На главной странице приложения доступны все новости, разбитые на категории:

clip_image002

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

clip_image004

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

clip_image006

Если Вы хотите опубликовать ссылку на новость в одном из своих социальный аккаунтов, то можете воспользоваться функциональностью Sharing.

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

clip_image008

Наконец, поддерживается возможность добавить свою новость, снабдив ее фотографиями. Новость тут же попадает на портал:

clip_image010

А вот и ссылка на приложение:

http://apps.microsoft.com/webpdp/app/45aa0d72-9854-4533-9694-47aa62c6e96f

Written by Sergiy Baydachnyy

30.07.2012 at 14:09

Опубликовано в Windows 8

Tagged with

Как попасть в Windows 8 Store

4 комментария

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

Базируясь на опыте Windows Phone и понимая свою ответственность перед пользователями Windows, компания Microsoft разрешает публикацию в Store только тем приложениям, которые прошли ревью со стороны Microsoft и получили «одобрение». Речь идет о соответствии интерфейсов Ваших приложений принципам Metro. Иными словами, если Вы освоили Windows 8 достаточно хорошо, чтобы создавать качественные приложения, то путь в Store открыт.

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

В большинстве случаев ревью проходит в оффлайн режиме (повторное ревью можно провести и онлайн) и требует личного присутствия разработчика. Отсюда и вопрос: когда подобное ревью для украинских приложений будет проходить в Украине.

Отвечаю:

Ближайшее ревью будет проходить в Киеве с 27 по 31 августа. Вы можете записаться на любой из дней (если остались еще места), пройти ревью и получить свой токен на публикацию приложения.

Чтобы записаться на ревью, необходимо до 14 августа прислать заявку на email Sergiy.Baydachnyy@microsoft.com.
В письме опишите Ваше приложение: какие задачи оно решает и на какую аудиторию рассчитано, добавьте несколько скринов приложения, а также укажите контакты для связи.

Количество мест ограничено! Поэтому, чем раньше Вы пришлете свою заявку и данные по приложению, тем выше шансы попасть на ревью.

Written by Sergiy Baydachnyy

26.07.2012 at 08:53

Опубликовано в Windows 8