Главная » C#, Windows Runtime, XAML, Разработка для Windows 8 » Инструменты разработчика Windows Runtime

0

Немного разобравшись с Windows Runtime, а также ролью C# и .NET Framework в процессе разработки приложений Metro, перейдем к средствам разработки. Основной утилитой для разработчика является, конечно же, Visual Studio. При этом компания Microsoft пошла по стандартному пути, предложив бесплатную версию — Express, а также возможность интеграции с полноценной Visual Studio. Во всех примерах этой книги мы будем использовать версию Express.

Образ Windows 8 со средствами разработки доступен для скачивания на сайте

http://msdn.microsoft.com/en-us/windows/apps/.

Запустив Visual Studio, можно приступать к созданию нового проекта. Выбрав соответствующий пункт меню, Вы увидите следующие шаблоны.

Рис. 1.10.

Обратите внимание, что Visual Studio поддерживает четыре языка для построения приложений Metro: VB.NET/XAML, C#/XAML, C++/XAML, JavaScript/HTML 5.

При этом С++ позволяет создавать полностью нативные приложения и является единственным языком, который дает возможность  создавать  их с помощью DirectX. Поэтому если Вы планируете разрабатывать высокопроизводительные игры, то нужно использовать С++.

В свою очередь JavaScript и HTML 5 могут применяться теми разработчиками, которые ранее занимались веб-программированием. Тут можно обратиться как к функционалу Windows 8 (с помощью  специальной библиотеки WinJS), так и к полюбившимся фреймворкам — JQuery, а также HTML 5. HTML 5 и JavaScript удобно использовать, если приложение тесно интегрировано с внешними веб- службами,  такими  как  Facebook  (аутентификация  в  подобных  приложениях выглядит достаточно натурально, а готовые веб-компоненты легко встраиваются в интерфейс).

Наконец, VB.NET  и  C#  позволяют утилизировать возможности  управляемых языков и некоторые механизмы .NET Framework.  Используя C#, разработчик может облегчить себе жизнь при создании приложений по вводу и представлению данных. Также в C# доступны такие возможности, как анимация, работа с файлами мультимедиа, графическими примитивами и др. Если же говорить об интеграции с веб, то тут доступен специальный элемент управления, способный отображать HTML 5 и воспроизводить работу JavaScript. Иными  словами, на C# можно написать все, кроме игр, использующих DirectX. Именно поэтому мы и выбрали этот язык для создания приложений под Windows 8.

Теперь перейдем к тем шаблонам, которые поддерживают проекты  на языке программирования C#.

·                   Blank Application. Название этого шаблона говорит само за себя. Проект, созданный на его основе, практически не содержит файлов с кодом. Но даже в нем существуют некоторые  заготовки, которые мы рассмотрим ниже.

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

·                   Split Application. Этот шаблон представляет собой  подмножество кода предыдущего шаблона, позволяя отображать элементы из групп в более простом  виде.  Чтобы   лучше  ощутить  чувствительность  интерфейса к ориентации экрана, создадим проект на основе этого шаблона и запустим созданное приложение. На первом экране можно увидеть несколько групп элементов. Если выбрать одну из них, находясь в альбомной ориентации, а затем попробовать перевести устройство в книжную ориентацию или прикрепленный режим, то можно увидеть следующее.

Рис. 1.11.

Рис. 1.12.

Рис. 1.13.

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

·                   Class Library. Шаблон позволяет создавать компоненты для последующего использования в управляемом коде или в WinRT (ничего странного, так как .Net-код можно было вызывать из  неуправляемого и раньше, но теперь создаваемые библиотеки включают и необходимые метаданные);

·                   Unit  Test  Library.  В  данном  шаблоне  нет  ничего   интересного  —

стандартная поддержка по созданию Unit-тестов.

Как и раньше, Visual Studio поддерживает редактор кода с системой InteliSense. Как уже упоминалось ранее, это стало возможно благодаря хранению метаданных о классах Windows Runtime. Редактор XAML продолжает успешно работать как в режиме кода, так и в режиме дизайнера. Все другие функциональности Visual Studio практически не изменились.

Более  детально  стоит  остановиться  на  механизмах  настройки  приложения. Речь  пойдет  о  подготовке  приложения  к  развертыванию. Дело  в  том,  что развертывание приложений Metro  происходит на декларативном уровне. Так, с любым проектом  поставляется специальный манифест-файл, описывающий возможности и настройки приложения при развёртывании. В Visual Studio этот файл носит название Package.appxmanifest и представляет собой XML-документ. В самом примитивном виде манифест выглядит следующим образом.

<?xml version="1.0" encoding="utf-8"?>

<Package xmlns="http://schemas.microsoft.com/appx/2010/manifest">

<Identity Name="519f4c47-a156-4f8e-b96b-d408a0aba6dd" Publisher="CN=Sergiy"

Version="1.0.0.0" />

<Prerequisites>

<OSMinVersion>6.2</OSMinVersion>

<OSMaxVersionTested>6.2</OSMaxVersionTested>

</Prerequisites>

<Resources>

<Resource Language="x-generate"/>

</Resources>

<Properties>

<DisplayName>Application2</DisplayName>

<PublisherDisplayName>Sergiy</PublisherDisplayName>

<Logo>Assets\StoreLogo.png</Logo>

<Description>Application2</Description>

</Properties>

<Applications>

<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="Application2.App">

<VisualElements DisplayName="Application2" Logo="Assets\Logo.png"

SmallLogo="Assets\SmallLogo.png"

Description="Application2" ForegroundText="light" BackgroundColor="#222222">

<DefaultTile ShowName="allLogos" />

<SplashScreen Image="Assets\SplashScreen.png" />

</VisualElements>

</Application>

</Applications>

<Capabilities>

<Capability Name="internetClient" />

</Capabilities>

</Package>

Как  видите,  манифест  содержит  описание  приложения,  включая   сведения о его имени в операционной системе, информацию о  значках, декларацию возможностей и др.

Подобный файл достаточно тяжело редактировать в ручном режиме, особенно если Вы будете расширять возможности приложения. Именно поэтому одним из преимуществ Visual Studio является редактор  манифеста приложения. Для его открытия достаточно просто щелкнуть мышью .appxmanifest файл.

Рис. 1.14.

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

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

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

Более интересной является вторая вкладка приложения.

Рис. 1.15.

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

По умолчанию в приложение включена возможность получать  доступ  к сети

(публичным ресурсам в Интернет).

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

Рис. 1.16.

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

Рис. 1.17.

При установке Вашего приложения на локальный компьютер система считывает все параметры из манифеста пакета, разворачивает пакет и создает необходимые записи в реестре системы, подключая все необходимые расширения (контракты). После  этого  приложение   появляется  на  основном  экране  пользователя  и готово к запуску. Кстати, возможность запуска приложения — это своеобразная реализация  контракта  Launch,  подключаемая автоматически. В  этом  можно убедиться лично, открыв ключ реестра  HKEY_CURRENT_USER\Software\Classes\ Extensions\ContractId\Windows.Launch.

Рис. 1.18.

Сергей Лутай, Сергей Байдачный, Windows 8 для C# разработчиков

По теме:

  • Комментарии