windows 8 and metro design applications
DESCRIPTION
Will discuss new version of Windows OS. New application design and layout. New ways to develop applications for Windows 8. Visual Studio 2011 review.TRANSCRIPT
Windows 8, життєвий цикл додаткуKorniyenkoKonstyantyn
Зміна правил гри
Активний лише один додаток
Система управляє життєвим циклом
Багато активних додатків
Користувач управляє життєвим циклом
Життєвий цикл додатку
App 1 App 2 App 3Running
Suspended
Terminated
… App N
Ринок продажу
Чому це важливо ???
• Процес не був запущений
• показується SplashScreen
Запуск (Launch)
DemoSplash Screen
Splash Screens в процесі активації
• Система надає цей механізм для більш цілісного процесу переходу до додатка
• Показується в той час, поки операційка запускає ваш додаток
• Відображається протягом процесу активації
• Колір і картинка вказуються в app manifest
• Додаток має запуститися за 15 сек. Інакше він буде завершений
Розширений Splash Screens
• Деякі програми завантажуються довше
• Створюйте його ідентичним сплеш скріну
• Splash Screen API може використовуватися для візуалізації сплеш скріна вручну
Додаток запущено
Активация запуском через тайл
Юзер клікає по тайлу
args.KindПоказується Splash Screen
activated event
Зміна способу запуску додатку
Запуск за допомогою ярлика
Запуск через тайл, пошук, шара, и т.д.
Контракти
App
AppWindows
Активація через контракти
• Додаток активується через контракт
• Запуск, пошук, ShareTarget, і т.д..
• Додаток повинен ініціалізувати специфічні для контракту дії
• надається контекст
Running App
launch
shareTarget
activated
search
• Launch• Search• Share target• Cached file• Camera• Contact picker• Device
Активация (Activation)
• File• File open picker• File save picker• Print task• Protocol
Активация (Activation)
Активация додаткуasync protected override void OnLaunched(LaunchActivatedEventArgs args){ switch (args.Kind) { case ActivationKind.Launch: break; case ActivationKind.Search: break; case ActivationKind.ShareTarget: break; }}
DemoSearch
• Перемикання користувачем• Низький заряд батареї
Зупинення(Suspend)
Suspend – погляд з середини
• Suspended додатки не обслуговуються ядром системи
• Ніякого споживання ресурсів CPU, Disk або Network
• Всі потоки призупиняються
Suspend – погляд з середини
• Додаток залишається в пам'яті• Система перевіряє чи додаток не
знаходиться в критичній секції, що може привести до виникнення взаємоблокування
• Додаток негайно відновлює свою роботу, коли користувач активує його
• Сесійні дані• Налаштування користувача• І т.д.
Дані додатку (Application Data)
• Локальне сховище• Settings• Files
• Віддалене сховище (roaming)
• Тимчасове сховище
Збереження даних додатку
DemoSave Settings
• Переключення користувачем
• Батарея заряжаєтся
Відновлення(Resume )
• Alt + F4
Завершення (Close)
• Процес завершується
• Немає жодних повідомлень про цю подію
Завершення (Terminate)
Коли виникає аварійне завершення ?
• Системі потрібно більше пам'яті• Користувач перемикає акаунти• Завершення роботи системи• Помилка додатка
Сценарій
Best Practices работи із станом
Що робити…
Інкрементальне збереження даних користувачаЗберегти місце перебування юзера(наприклад відкрита сторінка)Відновити сесію юзера так, як ніби він не залишав програмиНічого не робити
Работа з додатком Suspending
Activated
Resuming
Работа додатку
Running
App
SuspendedApp
suspendingTerminate
dApp
Low Memory
Code gets to runNo code
runs App not running
resuming
5 сек. на обробку
Додаток не повідомляєть
ся перед terminate
Додаток повідомлюєтьс
я про відновлення
Старт додат
ку
Splash screen
Summary Нова філософія Windows базується на
тому як і коли програми має працювати ОС управляє життєвим циклом додатка Активація програми відбувається за
допомогою контрактів Зберігайте ваш додаток живим:
Зберігайте і відновлюйте стан Використовуйте живі тайли
Suspend best practices Зберігайте стан швидко - у вас є
всього 5 сек. Розглядайте варіант завершення
програми - зберігайте сесійні дані користувача
Не тримайте загальні системні ресурси (файли, диски, мережа, і т.д.)
Зберігайте дані програми інкрементально, до зупинки
Activation best practices Активуйте додаток швидко! Ініціалізуйте додаток Відкладіть виконання завдань
настільки, наскільки це можливо Запамятовуйте, де користувач
знаходився Показуйте розширений splash screen,
якщо вам потрібно більше 15 сек. для активації
Корисні посилання Життєвий цикл додатку (MSDN) http://www.buildwindows.com/ Building Metro style apps forum
Дякую