Download - MS Swit 2012 - Windows 8 Application Lifecycle

Transcript
Page 1: MS Swit 2012 - Windows 8 Application Lifecycle

КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ

Page 2: MS Swit 2012 - Windows 8 Application Lifecycle

ЖИЗНЕННЫЙ ЦИКЛ METRO STYLE ПРИЛОЖЕНИЙ

Денис Резник, Digital Cloud Technologies

Page 3: MS Swit 2012 - Windows 8 Application Lifecycle

О Себе• Руководитель департамента веб-

разработки компании Digital Cloud Technologies

• Тренер Microsoft Innovation Center• Microsoft MVP• Microsoft Certified Trainer• Блог: http://reznik.uneta.com.ua • Твиттер: @DenisReznik• Email: [email protected]

Page 4: MS Swit 2012 - Windows 8 Application Lifecycle

Windows 8

Page 5: MS Swit 2012 - Windows 8 Application Lifecycle
Page 6: MS Swit 2012 - Windows 8 Application Lifecycle

Меняются правила игры

Активно одно приложение

Система управляет жизненным циклом

Активно много

Пользователь управляет жизненным

циклом

Page 7: MS Swit 2012 - Windows 8 Application Lifecycle

Жизненный цикл приложения

App 1 App 2 App 3Running

Suspended

Terminated

… App N

Page 8: MS Swit 2012 - Windows 8 Application Lifecycle
Page 9: MS Swit 2012 - Windows 8 Application Lifecycle

• Процесс не был запущен

• Показывается SplashScreen

Запуск (Launch)

Page 10: MS Swit 2012 - Windows 8 Application Lifecycle

DemoSplash Screen

Page 11: MS Swit 2012 - Windows 8 Application Lifecycle

Splash Screens в процессе активации

• Система предоставляет этот механизм для более цельного процесса перехода к приложению

• Показывается в то время, пока операционка запускает ваше приложение

• Отображается на протяжении процесса активации

• Цвет и картинка указываются в app manifest

• Приложение должно запуститься в течении 15 сек. Иначе оно будет завершено

Page 12: MS Swit 2012 - Windows 8 Application Lifecycle

Расширенный Splash Screens

• Некоторые приложения грузятся дольше

• Создавайте своё первое представление идентичное сплэш скрину

• Splash Screen API может использоваться для рендеринга сплэш скрина вручную

Page 13: MS Swit 2012 - Windows 8 Application Lifecycle

Приложение запущено

Активация запуском через тайл

Пользователь кликает по

тайлу

args.Kind Показывается Splash Screen

activated event

Page 14: MS Swit 2012 - Windows 8 Application Lifecycle

Изменение способа запуска приложения

Запуск с помощью ярлыка

Запуск через тайл, поиск, шару, и т.д.

Page 15: MS Swit 2012 - Windows 8 Application Lifecycle

Контракты

App

AppWindows

Page 16: MS Swit 2012 - Windows 8 Application Lifecycle

Активация через контракты

• Приложение активируется через контракт• Запуск, поиск,

ShareTarget, и т.д..

• Приложение должно инициализировать специфические для контракта действия

• Предоставляется контекст

Running App

launch

shareTarget

activated

запуск

search

Page 17: MS Swit 2012 - Windows 8 Application Lifecycle

• Launch• Search• Share target• Cached file• Camera• Contact picker• Device

Активация (Activation)

Page 18: MS Swit 2012 - Windows 8 Application Lifecycle

• File• File open picker• File save picker• Print task• Protocol

Активация (Activation)

Page 19: MS Swit 2012 - Windows 8 Application Lifecycle

Активация приложенияasync protected override void OnLaunched(LaunchActivatedEventArgs args){ switch (args.Kind) { case ActivationKind.Launch: break; case ActivationKind.Search: break; case ActivationKind.ShareTarget: break; }}

Page 20: MS Swit 2012 - Windows 8 Application Lifecycle

DemoSearch

Page 21: MS Swit 2012 - Windows 8 Application Lifecycle

• Переключение пользователем

• Низкий заряд батареи

Остановка (Suspend)

Page 22: MS Swit 2012 - Windows 8 Application Lifecycle

Suspend – взгляд изнутри

• Suspended приложения не обслуживаются ядром системы

• Никакого потребления ресурсов CPU, Disk или Network

• Все потоки приостанавливаются

Page 23: MS Swit 2012 - Windows 8 Application Lifecycle

Suspend – взгляд изнутри

• Приложение остаётся в памяти• Система проверяет что

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

• Приложение немедленно возобновляет свою работу, когда пользователь активирует его

Page 24: MS Swit 2012 - Windows 8 Application Lifecycle

• Сессионные данные• Настройки пользователя• И т.д.

Данные приложения (Application Data)

Page 25: MS Swit 2012 - Windows 8 Application Lifecycle

• Локальное хранилище• Settings• Files

• Удалённое хранилище (roaming)

• Временное хранилище

Хранение данных приложения

Page 26: MS Swit 2012 - Windows 8 Application Lifecycle

DemoSuspend

Page 27: MS Swit 2012 - Windows 8 Application Lifecycle

• Переключение пользователем

• Батарея заряжается

Восстановление (Resume )

Page 28: MS Swit 2012 - Windows 8 Application Lifecycle

• Alt + F4

Завершение (Close)

Page 29: MS Swit 2012 - Windows 8 Application Lifecycle

• Процесс завершается

• Нет никаких уведомлений об этом событии

Завершение (Terminate)

Page 30: MS Swit 2012 - Windows 8 Application Lifecycle

Когда возникает аварийное завершение?

• Системе нужно больше памяти• Пользователь переключает аккаунты• Завершение работы системы• Ошибка приложения

Page 31: MS Swit 2012 - Windows 8 Application Lifecycle

Сценарий

Best Practices работы с состоянием

Что делать…

Инкрементальное сохранение данных пользователяСохранить где юзер находился (например открытая страница)Восстановить сессию юзера так, как будто он не покидал приложенияНичего не делать

Работа с приложением Suspending

Activated

Resuming

Page 32: MS Swit 2012 - Windows 8 Application Lifecycle

Работа приложения

Running

App

SuspendedApp

suspending Terminated

App

Low Memory

Code gets to runNo code

runs App not running

resuming

Есть 5 сек. на обработку

Приложение не

уведомляется перед

terminate

Приложение уведомляется

о resume

Запуск приложения

Splash screen

Page 33: MS Swit 2012 - Windows 8 Application Lifecycle

Summary• Новая философия Windows базируется на

том как и когда приложения должно работать

• ОС управляет жизненным циклом приложения

• Активация приложения происходит посредством контрактов

• Сохраняйте ваше приложение живым:– Сохраняйте и восстанавливайте состояние– Используйте живые тайлы

Page 34: MS Swit 2012 - Windows 8 Application Lifecycle

Suspend best practices

• Сохраняйте состояние быстро – у вас есть всего 5 сек.

• Рассматривайте вариант завершения приложения – сохраняйте сессионные данные пользователя

• Не держите общие системные ресурсы (файлы, диски, сеть, и т.д.)

• Сохраняйте данные приложения инкрементально, до остановки

Page 35: MS Swit 2012 - Windows 8 Application Lifecycle

Activation best practices

• Активируйте приложение быстро!• Инициализируйте приложение• Отложите выполнение задач

настолько, насколько это возможно• Знайте, где пользователь находился• Показывайте расширенный splash

screen, если вам нужно более 15 сек. для активации

Page 37: MS Swit 2012 - Windows 8 Application Lifecycle

СПАСИБО!

Page 38: MS Swit 2012 - Windows 8 Application Lifecycle

КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ