SlideShare uma empresa Scribd logo
1 de 38
КРУПНЕЙШАЯ ТЕХНИЧЕСКАЯ КОНФЕРЕНЦИЯ 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
Меняются правила игры

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




Пользователь управляет      Система управляет
  жизненным циклом          жизненным циклом
Жизненный цикл приложения
Запуск (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 В УКРАИНЕ

Mais conteúdo relacionado

Destaque

MS DevDay - SQLServer 2014 for Developers
MS DevDay - SQLServer 2014 for DevelopersMS DevDay - SQLServer 2014 for Developers
MS DevDay - SQLServer 2014 for DevelopersДенис Резник
 
TechEd 2012 - Сценарии хранения и обработки данных в windows azure
TechEd 2012 - Сценарии хранения и обработки данных в windows azureTechEd 2012 - Сценарии хранения и обработки данных в windows azure
TechEd 2012 - Сценарии хранения и обработки данных в windows azureДенис Резник
 
масштабирование в Sql azure
масштабирование в Sql azureмасштабирование в Sql azure
масштабирование в Sql azureДенис Резник
 

Destaque (8)

MS DevDay - SQLServer 2014 for Developers
MS DevDay - SQLServer 2014 for DevelopersMS DevDay - SQLServer 2014 for Developers
MS DevDay - SQLServer 2014 for Developers
 
TechEd 2012 - Сценарии хранения и обработки данных в windows azure
TechEd 2012 - Сценарии хранения и обработки данных в windows azureTechEd 2012 - Сценарии хранения и обработки данных в windows azure
TechEd 2012 - Сценарии хранения и обработки данных в windows azure
 
MS Swit 2012 - SQL Server 2012
MS Swit 2012 - SQL Server 2012MS Swit 2012 - SQL Server 2012
MS Swit 2012 - SQL Server 2012
 
масштабирование в Sql azure
масштабирование в Sql azureмасштабирование в Sql azure
масштабирование в Sql azure
 
Sql rally 2013 columnstore indexes
Sql rally 2013   columnstore indexesSql rally 2013   columnstore indexes
Sql rally 2013 columnstore indexes
 
SQL Server 2012 Deep Dive (rus)
SQL Server 2012 Deep Dive (rus)SQL Server 2012 Deep Dive (rus)
SQL Server 2012 Deep Dive (rus)
 
SqlSaturday199 - Deadlocks
SqlSaturday199 - DeadlocksSqlSaturday199 - Deadlocks
SqlSaturday199 - Deadlocks
 
iForum 2015: SQL vs. NoSQL
iForum 2015: SQL vs. NoSQLiForum 2015: SQL vs. NoSQL
iForum 2015: SQL vs. NoSQL
 

Semelhante a MS Swit 2012 - Windows 8 Application Lifecycle

И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоStanfy
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений Mykhail Galushko
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложенийЭкосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложенийIT Weekend
 
Михаил Галушко - Разработка WinRT приложений для Windows 8: реальный опыт
Михаил Галушко -  Разработка WinRT приложений для Windows 8: реальный опытМихаил Галушко -  Разработка WinRT приложений для Windows 8: реальный опыт
Михаил Галушко - Разработка WinRT приложений для Windows 8: реальный опытUA Mobile
 
C# Desktop. Занятие 15.
C# Desktop. Занятие 15.C# Desktop. Занятие 15.
C# Desktop. Занятие 15.Igor Shkulipa
 
Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptDenis Latushkin
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, SkypeOntico
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rusCineSoft
 
Continuous integration testing of mobile SDK
Continuous integration testing of mobile SDKContinuous integration testing of mobile SDK
Continuous integration testing of mobile SDKTestableapple
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Ontico
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaAlex Chistyakov
 
Тестовая инфраструктура в облаке
Тестовая инфраструктура в облакеТестовая инфраструктура в облаке
Тестовая инфраструктура в облакеSQALab
 
В offline и обратно
В offline и обратноВ offline и обратно
В offline и обратноDen Ilin
 
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...HappyDev-lite
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Aleksey Bragin
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with SeleniumOSLL
 
Redux и изоморфные приложения
Redux и изоморфные приложенияRedux и изоморфные приложения
Redux и изоморфные приложенияJohn Wezel
 
Azure Mobile Backend
Azure Mobile BackendAzure Mobile Backend
Azure Mobile BackendVitaly Baum
 

Semelhante a MS Swit 2012 - Windows 8 Application Lifecycle (20)

И снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел ТайкалоИ снова разработка под iOS. Павел Тайкало
И снова разработка под iOS. Павел Тайкало
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений
 
Экосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложенийЭкосистема Windows 8 и практика разработки приложений
Экосистема Windows 8 и практика разработки приложений
 
Михаил Галушко - Разработка WinRT приложений для Windows 8: реальный опыт
Михаил Галушко -  Разработка WinRT приложений для Windows 8: реальный опытМихаил Галушко -  Разработка WinRT приложений для Windows 8: реальный опыт
Михаил Галушко - Разработка WinRT приложений для Windows 8: реальный опыт
 
C# Desktop. Занятие 15.
C# Desktop. Занятие 15.C# Desktop. Занятие 15.
C# Desktop. Занятие 15.
 
Обзор возможностей HTML5
Обзор возможностей HTML5Обзор возможностей HTML5
Обзор возможностей HTML5
 
Обзор возможностей HTML5
Обзор возможностей HTML5Обзор возможностей HTML5
Обзор возможностей HTML5
 
Отладка веб-приложений на Javascript
Отладка веб-приложений на JavascriptОтладка веб-приложений на Javascript
Отладка веб-приложений на Javascript
 
Павел Брылов, Skype
Павел Брылов, SkypeПавел Брылов, Skype
Павел Брылов, Skype
 
Cerebro general overiew rus
Cerebro general overiew rusCerebro general overiew rus
Cerebro general overiew rus
 
Continuous integration testing of mobile SDK
Continuous integration testing of mobile SDKContinuous integration testing of mobile SDK
Continuous integration testing of mobile SDK
 
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
Хорошо поддерживаемое в продакшне приложение / Николай Сивко (okmeter.io)
 
Оптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на JavaОптимизация производительности нагруженных веб-систем на Java
Оптимизация производительности нагруженных веб-систем на Java
 
Тестовая инфраструктура в облаке
Тестовая инфраструктура в облакеТестовая инфраструктура в облаке
Тестовая инфраструктура в облаке
 
В offline и обратно
В offline и обратноВ offline и обратно
В offline и обратно
 
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
HappyDev-lite-2016-весна 12 Николай Морозов. Особенности нагрузочного тестир...
 
Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4Операционные системы 2015, лекция № 4
Операционные системы 2015, лекция № 4
 
Testing with Selenium
Testing with SeleniumTesting with Selenium
Testing with Selenium
 
Redux и изоморфные приложения
Redux и изоморфные приложенияRedux и изоморфные приложения
Redux и изоморфные приложения
 
Azure Mobile Backend
Azure Mobile BackendAzure Mobile Backend
Azure Mobile Backend
 

Mais de Денис Резник

Mais de Денис Резник (12)

SqlSaturday199 - Columnstore Indexes
SqlSaturday199 - Columnstore IndexesSqlSaturday199 - Columnstore Indexes
SqlSaturday199 - Columnstore Indexes
 
24 hop - Deadlocks
24 hop - Deadlocks24 hop - Deadlocks
24 hop - Deadlocks
 
Масштабирование в SQL Azure - SQL Azure Federations
Масштабирование в SQL Azure - SQL Azure FederationsМасштабирование в SQL Azure - SQL Azure Federations
Масштабирование в SQL Azure - SQL Azure Federations
 
Масштабирование в SQL Azure - SQL Azure Federations
Масштабирование в SQL Azure - SQL Azure FederationsМасштабирование в SQL Azure - SQL Azure Federations
Масштабирование в SQL Azure - SQL Azure Federations
 
SQL Server Denali
SQL Server DenaliSQL Server Denali
SQL Server Denali
 
Sql azure и все, все, все...
Sql azure и все, все, все...Sql azure и все, все, все...
Sql azure и все, все, все...
 
начинаем работать с Sql server compact
начинаем работать с Sql server compactначинаем работать с Sql server compact
начинаем работать с Sql server compact
 
Sql server 2011
Sql server 2011Sql server 2011
Sql server 2011
 
MS Swit 2010
MS Swit 2010MS Swit 2010
MS Swit 2010
 
WebMatrix
WebMatrixWebMatrix
WebMatrix
 
ASP.NET MVC 3
ASP.NET MVC 3ASP.NET MVC 3
ASP.NET MVC 3
 
SQL Server StreamIinsight - data processing in real time
SQL Server StreamIinsight - data processing in real timeSQL Server StreamIinsight - data processing in real time
SQL Server StreamIinsight - data processing in real time
 

Último (9)

Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 

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
  • 5.
  • 6. Меняются правила игры Активно много Активно одно приложение Пользователь управляет Система управляет жизненным циклом жизненным циклом
  • 8.
  • 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