SlideShare a Scribd company logo
1 of 36
Windows 10
2
UAP = Universal App Platform
3
UAP
Windows Core Windows Core Windows Core Windows Core
UAP UAP UAP
Desktop Mobile Xbox More…
UAP = Universal App Platform
4
Windows Phone 7.5/7.8
Windows Phone 8.0
Windows Phone 8.1*
Портировать UI Silverlight на Windows
XAML
Переписать код под UAP APIs*
Адаптировать UX под разрешения
Windows 10
Windows Phone Silverlight Apps
5
Немного изменить код под
UAP
Минимально
адаптировать UX
Windows 10
Universal app
6
Необходимо поменять файл проекта и манифест
package.appxmanifest
Но средств в Visual Studio пока еще нет 
…но уже есть написанный Powershell скрипт,
который может это сделать
Вот он - http://aka.ms/W10P-ProjectUpgradeUtility
Миграция проекта
7
Поддерживаемые директивы:
1. WINDOWS_APP
2. WINDOWS_PHONE_APP
3. WINDOWS_UAP (new)
Shared project
8
Новые SDK
9
IsApiContractPresent
IsEnumNamedValuePresent
IsEventPresent
IsMethodPresent
IsPropertyPresent
IsReadOnlyPropertyPresent
IsTypePresent
IsWriteablePropertyPresent
Windows.Foundation.Metadata.ApiInformation
Как определить с чем работаем?
10
var ns = "Windows.Phone.UI.Input.HardwareButtons";
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(ns))
{
Windows.Phone.UI.Input.HardwareButtons
.BackPressed += Back_BackPressed;
}
Что получается в итоге?
11
SplitView
Your Windows App
SplitView
13
<SplitView>
<SplitView.Pane>
<StackPanel>
<RadioButton />
<RadioButton />
</StackPanel>
</SplitView.Pane>
</SplitView>
SplitView.Pane
14
<SplitView>
<SplitView.Pane />
<SplitView.Content>
<Frame/>
</SplitView.Content>
</SplitView>
SplitView.Content
15
SplitView.PaneDisplayMode
16
Windows XAML layout controls
Grid
Stack
Panel
Canvas
Scroll
Viewer
Border View Box Wrap Grid Relative
Panel
Relative Panel это XAML контрол. Контент
располагается на основе отношения между
детьми.
RelativePanel
17
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width=“200" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.RightOf="BlueRect"
RelativePanel.AlignVerticalCenterWith="BlueRect" />
</RelativePanel>
RelativePanel
18
<RelativePanel>
<Rectangle x:Name="BlueRect"
Height="100" Width=“200" Fill="Blue" />
<Rectangle x:Name="RedRect"
Height="100" Width="100" Fill="Red"
RelativePanel.Below="BlueRect"
RelativePanel.AlignRightWith="BlueRect" />
</RelativePanel>
RelativePanel
19
<VisualState x:Name="LandscapeState">
<VisualState.Setters>
<Setter Target="RedRectangle.(RelativePanel.AlignHorizontalCenterWith)"
Value="BlueRect" />
<Setter Target="RedRectangle.(RelativePanel.Right)"
Value="BlueRectangle" />
</VisualState.Setters>
</VisualState>
<VisualState x:Name="PortraitState">
<VisualState.Setters>
<Setter Target="RedRectangle.(RelativePanel.AlignVerticalCenterWith)"
Value="BlueRect" />
<Setter Target="RedRectangle.(RelativePanel.Below)"
Value="BlueRectangle" />
</VisualState.Setters>
</VisualState>
Visual State Manager
20
<VisualState x:Name="wideState">
<VisualState.Setters>
<Setter Target="myPanel.Orientation" Value="Horizontal" />
</VisualState.Setters>
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="600"/>
</VisualState.StateTriggers>
</VisualState>
Adaptive trigger
21
Depth
OffsetY
OffsetX
TranslateZ+
TranslateZ-
Transform3d
22
<Grid Width="300" Height="200">
<Grid.Transform3D>
<PerspectiveTransform3D OffsetX="-150" OffsetY="-100" Depth="1000" />
</Grid.Transform3D>
<Grid Background="Red">
<Grid.Transform3D>
<CompositeTransform3D RotationY="30" TranslateZ="1"/>
</Grid.Transform3D>
</Grid>
<Grid Background="Blue">
<Grid.Transform3D>
<CompositeTransform3D RotationX="-30" TranslateZ="-1"/>
</Grid.Transform3D>
</Grid>
</Grid>
Transform3d
23
Проекция на плоскости
24
Перспектива и параллакс
25
Отправить токен файла
Запустить *определенное* прил.
App Services
Дождаться результатов запуска
Взаимодействие между приложениями
26
Запуск определенного приложения
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriAsync(launchUri, options);
var queryUri = new Uri("instapaper:");
await Launcher.QueryUriSupportAsync(queryUri, LaunchUriType.LaunchUri);
27
Хранилище для «шаринга»
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.InstapaperIt";
var token = SharedStorageAccessManager.AddFile (gpxFile);
ValueSet inputData = new ValueSet();
inputData.Add("Token", token);
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriAsync(launchUri, options, inputData);
28
// первое приложение
var options = new LauncherOptions();
options.TargetApplicationPackageFamilyName = "24919.Instap";
var launchUri = new Uri("instapaper:?AddUrl=http%3A%2F%2Fbing.com");
await Launcher.LaunchUriForResultsAsync(launchUri, options, data);
// второе приложение
var resultData = new ValueSet();
resultData.Add("Result", value);
operation.ProtocolForResultsOperation.ReportCompleted(resultData);
Получение ответа
29
<Package>
<Extensions>
<Extension Category="windows.publisherCacheFolder">
<PublisherCacheFolder>
<Folder Name="Folder1">
</PublisherCacheFolder>
</Extension>
</Extensions>
</Package>
Общая папка для одного автора
30
Доступ к папке “fonts”
Windows.Storage.ApplicationData.Current
.GetPublisherCacheFolder("fonts");
Очистить общую папку
Windows.Storage.ApplicationData.Current
.ClearPublisherCacheFolderAsync();
Общая папка для одного автора
31
Action center
32
Action center
- Максимум 20 уведомлений на приложение;
- Можно удалять одно или несколько уведомлений;
- Ставить «срок годности» уведомлениям;
- Заменять уведомления другими;
- Задавать уведомления св-ва Group или Tag;
- Отлавливать изменения в action center при
помощи специально триггера. Реализуется через
BackgroundTask.
…..
33
• Карты (новый общий контрол)
• АПИ батареи
• CalendarPicker
• LaunchFolder
• InkCanvas
• App Services
• Распознавание речи
Еще новенького
34
Выводы
Windows 10 SDK

More Related Content

Similar to Windows 10 SDK

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...JSib
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidDataArt
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5Technopark
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Kuban Dzhakipov
 
Разработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiРазработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiSoftengi
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”GlobalLogic Ukraine
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"oelifantiev
 
Дмитрий Семенов "Архитектура Upwork"
Дмитрий Семенов "Архитектура Upwork"Дмитрий Семенов "Архитектура Upwork"
Дмитрий Семенов "Архитектура Upwork"Fwdays
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYYMail.ru Group
 
PureMVC в картинках - часть 1
PureMVC в картинках - часть 1PureMVC в картинках - часть 1
PureMVC в картинках - часть 1Rostyslav Siryk
 
Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...
Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...
Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...Yandex
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Yandex
 
Node.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.uaNode.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.uaEugene Khvedchenya
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеAlex Tumanoff
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Yandex
 
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.jsОмские ИТ-субботники
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаMikhail Chinkov
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remotingKewpaN
 

Similar to Windows 10 SDK (20)

#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
#3 "Webpack и Vue.JS: Создание больших приложений и их расширение" Кирилл Кай...
 
Антон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в androidАнтон Валюх - Использование паттерна Mvvm в android
Антон Валюх - Использование паттерна Mvvm в android
 
Java осень 2012 лекция 5
Java осень 2012 лекция 5Java осень 2012 лекция 5
Java осень 2012 лекция 5
 
Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?Android: Как создать свое первое приложение?
Android: Как создать свое первое приложение?
 
Разработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары SoftengiРазработка Web-приложений на Angular JS. Архитектурные семинары Softengi
Разработка Web-приложений на Angular JS. Архитектурные семинары Softengi
 
Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”Online TechTalk “Flutter Mobile Development”
Online TechTalk “Flutter Mobile Development”
 
JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"JavaScript-модули "из прошлого в будущее"
JavaScript-модули "из прошлого в будущее"
 
Дмитрий Семенов "Архитектура Upwork"
Дмитрий Семенов "Архитектура Upwork"Дмитрий Семенов "Архитектура Upwork"
Дмитрий Семенов "Архитектура Upwork"
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
«Как я научился не волноваться и полюбил Android-MVP», Никита Бартишок, ABBYY
 
PureMVC в картинках - часть 1
PureMVC в картинках - часть 1PureMVC в картинках - часть 1
PureMVC в картинках - часть 1
 
Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...
Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...
Архитектура высоконагруженного сервиса на примере бэкенда Яндекс.Store — Андр...
 
Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"Леонид Васильев "Python в инфраструктуре поиска"
Леонид Васильев "Python в инфраструктуре поиска"
 
Node.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.uaNode.js and C++ #foss-sea.org.ua
Node.js and C++ #foss-sea.org.ua
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Silverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопеSilverlight 4, есть ли жизнь на десктопе
Silverlight 4, есть ли жизнь на десктопе
 
Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"Михаил Давыдов "Масштабируемые JavaScript-приложения"
Михаил Давыдов "Масштабируемые JavaScript-приложения"
 
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
2014-08-02 03 Дмитрий Шматко. Первые впечатления от Node.js
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting6 создание распределенных приложений по технологии remoting
6 создание распределенных приложений по технологии remoting
 

Windows 10 SDK