Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В
УКРАИНЕ
Денис Резник, Digital Cloud Technologies

ЖИЗНЕННЫЙ ЦИКЛ
METRO STYLE ПРИЛОЖЕНИЙ
О Себе
• Руководитель департамента веб-разработки
  компании Digital Cloud Technologies
• Тренер Microsoft Innovation Center
• Microsoft MVP
• Microsoft Certified Trainer
• Блог: http://reznik.uneta.com.ua
• Твиттер: @DenisReznik
• Email: DenisReznik@live.ru
Windows 8
MS Swit 2012 - Windows 8 Application Lifecycle
Меняются правила игры

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




Пользователь управляет      Система управляет
  жизненным циклом          жизненным циклом
Жизненный цикл приложения
MS Swit 2012 - Windows 8 Application Lifecycle
Запуск (Launch)

• Процесс не был
  запущен
• Показывается
  SplashScreen
Demo
Splash Screen
Splash Screens в процессе активации
• Система предоставляет этот
  механизм для более цельного
  процесса перехода к
  приложению
• Показывается в то время, пока
  операционка запускает ваше
  приложение
• Отображается на протяжении
  процесса активации
• Цвет и картинка указываются в
  app manifest
• Приложение должно запуститься
  в течении 15 сек. Иначе оно
  будет завершено
Расширенный Splash Screens

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




 Пользователь    activated      Приложение
  кликает по       event         запущено
    тайлу


args.Kind       Показывается
                Splash Screen
Изменение способа запуска приложения

Запуск с помощью ярлыка   Запуск через тайл, поиск,
                                 шару, и т.д.
Контракты

             App




   Windows         App
Активация через контракты
•   Приложение активируется
    через контракт
    • Запуск, поиск, ShareTarget,    запуск
      и т.д..
•   Приложение должно                 launch
    инициализировать                               activated
    специфические для
    контракта действия              shareTarget
•   Предоставляется контекст                      Running App
                                      search
Активация (Activation)

•   Launch
•   Search
•   Share target
•   Cached file
•   Camera
•   Contact picker
•   Device
Активация (Activation)

•   File
•   File open picker
•   File save picker
•   Print task
•   Protocol
Активация приложения
async protected override void
OnLaunched(LaunchActivatedEventArgs args)
{
    switch (args.Kind)
    {
        case ActivationKind.Launch:
        break;
        case ActivationKind.Search:
        break;
        case ActivationKind.ShareTarget:
        break;
    }
}
Demo
Search
Остановка (Suspend)

• Переключение пользователем
• Низкий заряд батареи
Suspend – взгляд изнутри

• Suspended приложения не
  обслуживаются ядром системы
• Никакого потребления ресурсов CPU,
  Disk или Network
• Все потоки приостанавливаются
Suspend – взгляд изнутри

• Приложение остаѐтся в памяти
• Система проверяет что приложение не
  находится в критической секции, что
  может привести к возникновению
  взаимоблокировок
• Приложение немедленно возобновляет
  свою работу, когда пользователь
  активирует его
Данные приложения (Application Data)

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

• Локальное хранилище
 • Settings
 • Files
• Удалѐнное хранилище (roaming)
• Временное хранилище
Demo
Suspend
Восстановление (Resume )

• Переключение
  пользователем
• Батарея
  заряжается
Завершение (Close)

• Alt + F4
Завершение (Terminate)

• Процесс
  завершается
• Нет никаких
  уведомлений об
  этом событии
Когда возникает аварийное завершение?

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


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



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




Splash
screen
Summary
• Новая философия Windows базируется на
  том как и когда приложения должно работать
• ОС управляет жизненным циклом
  приложения
• Активация приложения происходит
  посредством контрактов
• Сохраняйте ваше приложение живым:
  – Сохраняйте и восстанавливайте состояние
  – Используйте живые тайлы
Suspend best practices
• Сохраняйте состояние быстро – у вас
  есть всего 5 сек.
• Рассматривайте вариант завершения
  приложения – сохраняйте сессионные
  данные пользователя
• Не держите общие системные ресурсы
  (файлы, диски, сеть, и т.д.)
• Сохраняйте данные приложения
  инкрементально, до остановки
Activation best practices
• Активируйте приложение быстро!
• Инициализируйте приложение
• Отложите выполнение задач
  настолько, насколько это возможно
• Знайте, где пользователь находился
• Показывайте расширенный splash
  screen, если вам нужно более 15 сек.
  для активации
Полезные ссылки
• Жизненный цикл приложения (MSDN)
• http://www.buildwindows.com/
• Building Metro style apps forum
СПАСИБО!
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ MICROSOFT В УКРАИНЕ

More Related Content

MS Swit 2012 - Windows 8 Application Lifecycle

  • 2. Денис Резник, Digital Cloud Technologies ЖИЗНЕННЫЙ ЦИКЛ METRO STYLE ПРИЛОЖЕНИЙ
  • 3. О Себе • Руководитель департамента веб-разработки компании Digital Cloud Technologies • Тренер Microsoft Innovation Center • Microsoft MVP • Microsoft Certified Trainer • Блог: http://reznik.uneta.com.ua • Твиттер: @DenisReznik • Email: DenisReznik@live.ru
  • 6. Меняются правила игры Активно много Активно одно приложение Пользователь управляет Система управляет жизненным циклом жизненным циклом
  • 9. Запуск (Launch) • Процесс не был запущен • Показывается SplashScreen
  • 11. Splash Screens в процессе активации • Система предоставляет этот механизм для более цельного процесса перехода к приложению • Показывается в то время, пока операционка запускает ваше приложение • Отображается на протяжении процесса активации • Цвет и картинка указываются в app manifest • Приложение должно запуститься в течении 15 сек. Иначе оно будет завершено
  • 12. Расширенный Splash Screens • Некоторые приложения грузятся дольше • Создавайте своѐ первое представление идентичное сплэш скрину • Splash Screen API может использоваться для рендеринга сплэш скрина вручную
  • 13. Активация запуском через тайл Пользователь activated Приложение кликает по event запущено тайлу args.Kind Показывается Splash Screen
  • 14. Изменение способа запуска приложения Запуск с помощью ярлыка Запуск через тайл, поиск, шару, и т.д.
  • 15. Контракты App Windows App
  • 16. Активация через контракты • Приложение активируется через контракт • Запуск, поиск, ShareTarget, запуск и т.д.. • Приложение должно launch инициализировать activated специфические для контракта действия shareTarget • Предоставляется контекст Running App search
  • 17. Активация (Activation) • Launch • Search • Share target • Cached file • Camera • Contact picker • Device
  • 18. Активация (Activation) • File • File open picker • File save picker • Print task • Protocol
  • 19. Активация приложения async protected override void OnLaunched(LaunchActivatedEventArgs args) { switch (args.Kind) { case ActivationKind.Launch: break; case ActivationKind.Search: break; case ActivationKind.ShareTarget: break; } }
  • 21. Остановка (Suspend) • Переключение пользователем • Низкий заряд батареи
  • 22. Suspend – взгляд изнутри • Suspended приложения не обслуживаются ядром системы • Никакого потребления ресурсов CPU, Disk или Network • Все потоки приостанавливаются
  • 23. Suspend – взгляд изнутри • Приложение остаѐтся в памяти • Система проверяет что приложение не находится в критической секции, что может привести к возникновению взаимоблокировок • Приложение немедленно возобновляет свою работу, когда пользователь активирует его
  • 24. Данные приложения (Application Data) • Сессионные данные • Настройки пользователя • И т.д.
  • 25. Хранение данных приложения • Локальное хранилище • Settings • Files • Удалѐнное хранилище (roaming) • Временное хранилище
  • 27. Восстановление (Resume ) • Переключение пользователем • Батарея заряжается
  • 29. Завершение (Terminate) • Процесс завершается • Нет никаких уведомлений об этом событии
  • 30. Когда возникает аварийное завершение? • Системе нужно больше памяти • Пользователь переключает аккаунты • Завершение работы системы • Ошибка приложения
  • 31. Best Practices работы с состоянием Сценарий Что делать… Работа с приложением Инкрементальное сохранение данных пользователя Suspending Сохранить где юзер находился (например открытая страница) Activated Восстановить сессию юзера так, как будто он не покидал приложения Resuming Ничего не делать
  • 33. Summary • Новая философия Windows базируется на том как и когда приложения должно работать • ОС управляет жизненным циклом приложения • Активация приложения происходит посредством контрактов • Сохраняйте ваше приложение живым: – Сохраняйте и восстанавливайте состояние – Используйте живые тайлы
  • 34. Suspend best practices • Сохраняйте состояние быстро – у вас есть всего 5 сек. • Рассматривайте вариант завершения приложения – сохраняйте сессионные данные пользователя • Не держите общие системные ресурсы (файлы, диски, сеть, и т.д.) • Сохраняйте данные приложения инкрементально, до остановки
  • 35. Activation best practices • Активируйте приложение быстро! • Инициализируйте приложение • Отложите выполнение задач настолько, насколько это возможно • Знайте, где пользователь находился • Показывайте расширенный splash screen, если вам нужно более 15 сек. для активации
  • 36. Полезные ссылки • Жизненный цикл приложения (MSDN) • http://www.buildwindows.com/ • Building Metro style apps forum