DevCon12 // msdevcon.ru #msdevcon мая, 2012 г. Microsoft
// DevCon12 Обзор платформы разработки для Windows 8 – Windows Runtime Ромуальд | Руководитель направления по технологической стратегии Microsoft
Содержание 1. Зачем? + Цели 2. Metro UI 3. Платформа разработки – WinRT 4. Интеграция приложений 5. Windows Store 6. Выводы
Чарльз Дарвин Выживает не самый сильный и не самый умный, а тот, кто лучше всех приспосабливается к изменениям.
Изменения
Сила «И» - без компромиссов
Metro
Интерфейс Metro
Идея
Hub Spokes Details Contoso Travel Featured destinations Last minute deals 7 night Alaska Cruise Last Minute Deals Featured destinations Barcelona, Spain Last Minute Deals 7 Night Alaska Cruise Ocean View Cabins Upgrade from an inside cabin and save $43/night/person! Picture windows with ocean and port views From $2,099 only $150/night/person based on double occupancy Suites Upgrade from an inside cabin and save $43/night/person! Picture windows with ocean and port view From $2,099 only $150/night/person do My Trips Weather 7 days Chicago (3/11 – 3/19) Today 54/43 Mostly Sunny Today 54/43 Mostly Sunny Today 54/43 Mostly Sunny Today 54/43 Mostly Sunny Today 54/43 Mostly Sunny Attractions My TripsFeatured Destinations Top Destinations for 2012 Barcelona, Spain My Trips City Guide
Семантическое масштабирование
Режимы работы приложения Широкоэкранный (1366x768+) Закрепленный (обязательно) Минимальный (1024x768) Портретный
«Закрепленный» режим Snapped mode Позволяет оставаться в контексте и делать несколько дел одновременно Поддерживают все приложения в Windows Store Вертикальный скролл (одна колонка) Фиксированная ширина в 320px «Укороченная» панель приложения приоритезируйте!
Сенсорный ввод Нажмите и удерживайте для изучения Нажмите для основного действияПроведите для перемещенияПотяните чтобы выбрать Поверните для поворота Потяните с края для команд приложения Сведите для масштабирования Потяните с края для системных команд
#msdevcon Metro - интерфейс Демонстрация
Windows Runtime
Использование возможностей Windows OS Win32 API Vista Bridge Windows Bridge.NET Framework Windows Presentation Foundation Windows Communication Foundation Windows Workflow Foundation
Платформа Windows 8 Metro style Apps HTML JavaScript C C++ C# VB Desktop Apps Win32.NET / SL Internet Explorer Communication & Data Application Model Devices & Printing WinRT APIs Graphics & Media System Services JavaScript (Chakra) C C++ C# VB XAMLHTML / CSS View Model Controller Windows Core OS Services Core
Web разработчик = Windows разработчик
Установка Metro-приложения Windows Store backend Package Manager install Execution Engine Extension Handler stage Single instance store register Registration Information Windows Store AppXManifest.xml BlockMap Signature Zip Central Directory Files / Assets.appx package
Установка внутри компании
#msdevcon Контейнер + симулятор Metro - приложение Демонстрация
Когда работает приложение? Управляет система Windows 8 Управляет пользователь Windows 7
Переходы между состояниями Running App Suspended App No code runs Приложениям дается 5 секунд для засыпания Приложение не уведомляется Приложения уведомляются при продолжении User Launches App Splash screen
Изоляция процессов OS User dataDevicesCommunicationsHandlersTilesCryptography…… Process1 Local context Web context AppData LocalTempRoaming Process2 Local context Web context AppData LocalTempRoaming
#msdevcon Infinite Loop Управление приложением Демонстрация
Архитектура Windows Runtime Metro-приложение Языковая поддержка (CLR, WinJS, CRT) Языковые проекции Windows Metadata & Namespace Web Host (HTML, CSS, JavaScript) Windows Core Runtime BrokerWindows Runtime Core UIPickersControlsMedia XAMLStorageNetwork… DirectX Win32
Архитектура Windows Runtime Metro-приложение Языковая поддержка (CLR, WinJS, CRT) Языковые проекции Windows Metadata & Namespace Web Host (HTML, CSS, JavaScript) Windows Core Runtime BrokerWindows Runtime Core UIPickersControlsMedia XAMLStorageNetwork… DirectX Win32
Windows - метаданные и пространство имен Метаданные Windows Полное описание Runtime Генерируются при компиляции нативно как часть Windows Формат CLI Metadata Полный Intellinsense для статически известного кода Windows Namespace Windows.* - универсальный иерархический namespace Полный комфорт в Visual Studio Типизация для каждой функции Каталог расширяемый, но частный: Приложения могут добавлять объекты (C++/C#) Объекты могут использоваться из JavaScript
#msdevcon Метаданные и namespace Демонстрация
Архитектура Windows Runtime Metro-приложение Языковая поддержка (CLR, WinJS, CRT) Языковые проекции Windows Metadata & Namespace Web Host (HTML, CSS, JavaScript) Windows Core Runtime Broker Windows Runtime Core UIPickersControlsMedia XAMLStorageNetwork… DirectX Win32
Shell32.dll Что такое Windows Runtime Object? Object Activation Store (Registry)Windows Metadata (Disk)
Версионность Windows Metadata v8 Приложение Проекция Windows Metadata v+1 Приложение Проекция Object
Языковые проекции Объекты (или компоненты) Windows Runtime Написаны на C++, C#, VB Windows Metadata C++ App Проекиця CLR C#/VB App Проекция HTML App Chakra Проекция Object
Коллекции (Collections) Array IInspectable IUnknown IVector IVectorView IObservableVector Associative Collection IInspectable IUnknown IMap IMapView IObservableMap C++ App STL-style Projection CLR C#/VB App IEnumerable (T) style Projection HTML App Chakra JavaScript Projection
Асинхронность в Windows 8 Все, что более 50 миллисекунд – асинхронно Windows Runtime: IAsyncOperation JavaScript: Promises C++: Parallel Patterns Library VB/C#: async /await
Приложение Управление потоками (Threading) App Code Windows UI Object Windows Object Windows Object
#msdevcon Языковые проекции Демонстрация
Архитектура Windows Runtime Metro-приложение Языковая поддержка (CLR, WinJS, CRT) Языковые проекции Windows Metadata & Namespace Web Host (HTML, CSS, JavaScript) Windows Core Runtime BrokerWindows Runtime Core UIPickersControlsMedia XAMLStorageNetwork… DirectX Win32
Среда выполнения приложения Your App Broker Core OS AppXManifest App Container + Signed & Validated code Process.exeWinRT APIs
RuntimeBroker.exe Brokered Objects Windows Runtime Object App Проекция Proxy
#msdevcon Brokered objects Демонстрация
Архитектура Windows Runtime Metro-приложение Языковая поддержка (CLR, WinJS, CRT) Языковые проекции Windows Metadata & Namespace Web Host (HTML, CSS, JavaScript) Windows Core Runtime BrokerWindows Runtime Core UIPickersControlsMedia XAMLStorageNetwork… DirectX Win32
Windows Runtime APIs Fundamentals Application ServicesThreading/Timers Memory Management AuthenticationCryptographyGlobalization Devices GeolocationPortableSensorsNFC User Interface SVGTilesInputAccessibilityPrinting HTML5/CSSXAMLDirectXControlsData Binding Communications & Data Memory Management XMLNetworkingSMS NotificationsStreams ContractsLocal & Cloud StorageWeb Media PlaybackCapturePlayToVisual Effects
Сенсоры ВстряхиваниеПоворот Переворачивание В темнотеВ помещенииНа улице Акселерометр Гироскоп Компас Наклон Свет Ориентация в пространстве
Приложение в стиле Metro = WinRT API + [Metro UI] Приложение в стиле Metro = WinRT API + любой UI (игра) Приложение в стиле Metro = WinRT API
Встроенные элементы управления для приложений в стиле Metro
Интеграция приложений
Направления интеграции Друг с другом Контракты: Поиск Поделиться С облаком Синхронизация настроек приложений Live SDK С Windows OS Живые плитки Уведомления Контракты Настройки Печать …
Живые плитки – Live Tiles Возможна цикличная демонстрация пяти последних обновлений По умолчанию показывается только последнее обновление Шаблоны - Текст, изображения или комбинация Два размера, оба поддерживают обновления локально или через облако
Дополнительные плитки Secondary Tiles Закрепление контента или элементов приложения Инциируется приложением Необходимо подтверждение пользователя Создает персонализированный срез приложения Те же возможности, что и у обычных плиток
Всплывающие уведомления Toast Notifications Показывают сообщения от приложений и сервисов вне UI приложений Привлекают внимание Отключаемы Позволяют пользователю переходить сразу к соответствующему разделу приложения Инициируются локально или из «облака»
Шаблоны уведомлений Таже архитектура шаблонов, что и у живых плиток Различные возможности отрисовки
Windows Push Notification Service Обслуживает всплывающие уведомления и обновления живых плиток внешними сервисами Плитки обновляются и уведомления работают даже при неработающем приложении Берет на себя управления коммуникациями с устройствами Масштабируется без вашего участия Бесплатен Windows 8 Cloud Service Windows Push Notification Service Metro Style App Notification Client Platform Запрос на URI канала уведомлений 2.Регистрация сервиса 3.Уведомления
#msdevcon Всплывающие уведомления Демонстрация
Настройки Все настройки приложения в определенном месте Пользователи всегда знают, где их найти Не нужно создавать дополнительных точек для перехода к настройкам
Account
Контракты – часть большого семейства App to App Picking contract Contact Picker File activation Play To contract Print task settings Protocol activation Search contract Settings contract Share contract
Как устроен поиск 1. Изначально контекстом является текущее приложение 2. Варианты для подстановки предлагает само приложение 3. Доступно переключение в контекст всех приложений, реализющих контракт Поиска
4. Варианты результатов также предоставляются приложением Должен включать превью и заголовок Обозначает высокое соответствие введенной фразе Как устроен поиск
#msdevcon Использование Контракт поиска Демонстрация
Как это работает Целевое приложенияShare BrokerПриложение-источник DataPackage находится в приложении- источнике
Data Package Plain textFormatted textURIHTMLImagesFilesCustom data formats
#msdevcon Использование Контракт «Поделиться» Демонстрация
Данные приложений и пользователей User data Documents Photos MusicVideos App data Settings Files Session State Local Cache Данные синхронизируются с Microsoft account Локальное хранилище
Windows Store
Беспрецедентный охват 100+ языков Магазин и приложения 200+ стран Покупка 70+ стран (включая 40 крупнейших по ВВП) Локальные цены
Распределение доходов Начинается с 70% новые приложения Переключается на 80% как только вы делаете $25,000
Лучшая экономика Для получения $1 million прибыли Цена: $4.99 ~250,000 продаж 0.05% пользователей Windows от 500+млн Windows 7
Что мы изучили 1. Зачем? + Цели 2. Metro UI 3. Платформа разработки – WinRT 4. Интеграция приложений 5. Windows Store 6. Выводы
Полезные материалы dev.windows.com Blog Building Windows blogs.msdn.com/windowsappdev Windows8camp.ru
Связанные сессии CLI201 - Веб-платформа IE10 и Windows 8 для разработки современных сайтов и приложений в стиле Metro на HTML5/JS CLI303 - Лучшие практики создания отзывчивых приложений для Windows 8 CLI304 - Работа с сенсорами на платформе Windows 8 CLI206NC - Ночь кодирования. Почувствуй Windows 8 CLI409 - Разработка на C++ под Windows 8, параллелизм, DirectX, гибридные сценарии CLI211 - Особенности разработки корпоративных приложений для Windows 8 CLI212BC - Мастер-класс. Проектирование и дизайн приложений в стиле Metro для Windows 8
Ночь кодирования 22:00– 01:00, Bootcamp 1 Напишите свое первое приложение в стиле Metro для Windows 8 уже сегодня. Ну или просто приходите пообщаться......если будут свободные места
Пожалуйста Оцените доклад и мастерство докладчика. Форма для оценки находится в вашем инфопакете.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.