SlideShare a Scribd company logo
1 of 44
1
Константин Кичинский
Эксперт по стратегическим технологиям, Microsoft
@kichinsky, konkich@microsoft.com
Windows 10 и Project
Westminster: когда
сайты превращаются в
приложения, а JavaScript
получает доступ в систему
2
3
dev.modern.ie
4
Preview/Release Planned/Under Discussion
5
Chakra
Возможности железа
Многопоточность JIT
Многоуровневая компиляция
Оптимизация
Реальные сценарии (минификация)
Встраивание функций
Работа с массивами
Сборка мусора
Asm.js
ES’15 I18N
SIMD
ES’16
6
Benchmarks
0
20
40
60
80
100
120
140
160
Internet Explorer
11
Microsoft Edge Chrome Canary
43.0.2369.0
Firefox Alpha
40.0a1(04-14)
JetStream
0
5000
10000
15000
20000
25000
Internet Explorer
11
Microsoft Edge Chrome Canary
43.0.2369.0
Firefox Alpha
40.0a1(04-14)
Octane 2.0
7
about:flags
8
Сайты превращаются…
Веб-приложения
EdgeHTML.dll Chakra
10
Зачем это нужно
Магазины + веб
Адаптивность (форм-факторы)
Экономия
Новые сценарии
11
Веб-сайт
HTML
CSS
JS ОС
12
Упакованные приложения
Packaged Apps
13
HTML
CSS
JS
ОС
app
HTA (1999)
Prizm (2007)
CEF (2009)
WinRT + UWP
Electron
NW.js
Это началось не сегодня…
14
HTML
CSS
JS
ОС
app
HTA (1999)
Prizm (2007)
CEF (2009)
WinRT + UWP
Electron
NW.js
Windows
FirefoxOS
ChromeOS
…TV
Apache
Cordova
Store
15
HTML
CSS
JS
ОС
app
HTA (1999)
Prizm (2007)
CEF (2009)
WinRT + UWP
Electron
NW.js
Windows
FirefoxOS
ChromeOS
…TV
Apache
Cordova
Windows
16
Хостящиеся приложения
Hosted Apps
17
Веб-сайт
HTML
CSS
JS ОС
Веб-стандарты
Закрепление сайтов
Расширения
Плагины и т.п.
18
Веб-сайт
HTML
CSS
JS ОС
Веб-стандарты
Закрепление сайтов
Расширения
Manifest for Web Apps
http://w3c.github.io/manifest/
Лобби веб-стандартов
19
W3C Standard
Manifest for Web Apps
Единое место для описания
метаданных, связанных с веб-
приложением
<link rel="manifest" href="manifest.json">
Спецификация
http://w3c.github.io/manifest/
{
"name": "Super Web App",
"short_name": "SuperWA",
"start_url": "http://www.exampl
"icons": [
{
"src": "tiny.png",
"sizes": "70x70"
},
{
"src": "square.png",
"sizes": "150x150"
}
],
"display": "standalone",
"orientation": "landscape"
}
20
Веб-сайт
HTML
CSS
JS ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Сдвиг границы
21
Веб-сайт
HTML
CSS
JS ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Сдвиг границы
22
Веб-сайт
HTML
CSS
JS
.appx
ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Windows 8.1 & Windows Phone 8.1
Web Application Template (WAT)
http://wat.codeplex.com/
WAT
23
Веб-сайт
HTML
CSS
JS
.appx
ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Windows 8.1 & Windows Phone 8.1 + Android
Web Application Template (WAT)
http://wat.codeplex.com/
WAT
24
Веб-сайт
HTML
CSS
JS
.appx
ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Windows 8.1 & Windows Phone 8.1 + Android
Web Application Template (WAT)
http://wat.codeplex.com/
WebView
Custom Bridge
Native Code
Ограниченный
доступ к WinRT
WAT
25
Веб-сайт
HTML
CSS
JS
.appx
ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Windows 10
Universal Windows Platform
Безопасный прямой
доступ к WinRT
CSP, Manifest Rules
WebView
Native Code Windows APIs
Project
Westminster
26
HTML
CSS
JS
.appx
ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Windows 10 (UWP)
🗓
Windows APIs
if (window.Windows) {
// Create an appointment
Windows.ApplicationModel.Appointments.Appointment();
}
Trip to Barcelona
3/25/2015 All Day
Notes: Return to work
Безопасный прямой
доступ к WinRT
CSP, Manifest Rules
Project
Westminster
27
Мозговые волны 
28
Как это работает
29
Манифест приложения
<Application
Id="App"
StartPage="http://codepen.io/kichinsky/pen/rVMBOm">
…
</Application>
30
Манифест приложения
<uap:ApplicationContentUriRules>
<uap:Rule Type="include"
WindowsRuntimeAccess="allowForWebOnly"
Match="http://codepen.io/kichinsky/"/>
<uap:Rule Type="include"
WindowsRuntimeAccess="allowForWebOnly"
Match="http://s.codepen.io/"/>
</uap:ApplicationContentUriRules>
31
Проверка доступности API на сайте
// Feature Detection
if (window.Windows != undefined &&
window.MindWaveController != undefined)
{
log("Windows context + MindWave");
} else {
log("No Windows context");
}
32
Как это работает
33
Доступ к API
MindWaveController.MindWaveDevice
.getFirstConnectedMindDeviceAsync()
.then(function (foundDevice) {
mindDevice = foundDevice;
mindDevice.onstatechangedevent =
stateChangedHandler;
mindDevice.onvaluechangedevent =
valueChangedHandler;
});
34
Обработка данных
function valueChangedHandler(reading) {
if (mindDevice.currentState == "ConnectedWithData") {
attentionBar.value = reading.attention;
meditationBar.value = reading.meditation;
…
}
}
35
Веб-сайт
HTML
CSS
JS
.appx
ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Windows 10 (UWP)
WebView API
addWebAllowedObject
clearTemporaryWebDataAsync
Безопасный прямой
доступ к WinRT
CSP, Manifest Rules
WebView
Native Code Windows APIs
"MSWebViewNewWindowRequested"
"MSWebViewPermissionRequested"
36
Я не хочу завязываться на WinRT?
И как же веб-стандарты?
Что если…
37
Веб-сайт
HTML
CSS
JS
.appx
ОС
Manifest for Web Apps
http://w3c.github.io/manifest/
Windows 10
Apache Cordova + UWP
“Project Westminster”
Безопасный прямой
доступ к WinRT
CSP, Manifest Rules
Native
Code
Windows
APIs
38
Текущий процесс для обновления контента
Code
Visual Studio
Notepad++
Brackets
Vim
ATOM
Sublime Text
Emacs
Push
Git
SVN
Visual Studio Online
GitHub
Bitbucket
Gitlab
Host
Amazon WS
Heroku
Parse
Private Cloud
Microsoft Azure
Release
39
В ОСНОВЕ
ВАШ САЙТ
РАСШИРЕНИЕ
ОПЫТА
ПРОЦЕСС
РАЗРАБОТКИ
Доступ к UWP APIs
и нативному коду
в «оболочке»
Практически без
изменений
Вы управляете
кодом приложения
в любой момент
EdgeHTML.dll Chakra
EdgeHTML.dll Chakraweb-технологии
Нативное
приложение
на HTML/JS
Веб-приложение
с нативными
возможностями
«Сервер + браузер» «Собственный User Agent»
42
Ресурсы
Windows 10 Preview (Microsoft Edge)
Windows Insider insider.windows.com
Visual Studio (incl. Cordova)
visualstudio.com
Microsoft Edge
Портал для разработчиков dev.modern.ie
Твиттер @MSEdgeDev
Блог Microsoft Edge Dev Blog
Hosted Web Apps
Hosted web apps and web platform innovations
СЛАЙДЫ
43
Константин Кичинский
Эксперт по стратегическим технологиям, Microsoft
@kichinsky, konkich@microsoft.com
Windows 10 и
Project Westminster:
когда сайты превращаются
в приложения, а JavaScript
получает доступ в систему
44
©2015 Microsoft Corporation. All rights reserved. Microsoft, Windows, Office, Azure, System Center, Dynamics and other product names are or may be registered trademarks and/or
trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this
presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee
the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN
THIS PRESENTATION.

More Related Content

Similar to Moscow.JS Windows 10 и Project Westminster

Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутриАлександр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри404fest
 
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveЭволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveReturn on Intelligence
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...it-people
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET CoreAndrew Gubskiy
 
FrontEndConf 2015: Microsoft Edge and Web Apps Platfrom in Windows 10
FrontEndConf  2015: Microsoft Edge and Web Apps Platfrom in Windows 10FrontEndConf  2015: Microsoft Edge and Web Apps Platfrom in Windows 10
FrontEndConf 2015: Microsoft Edge and Web Apps Platfrom in Windows 10Constantin Kichinsky
 
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Ontico
 
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере" Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"MskDotNet Community
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014Yandex
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - ПроизводительностьAlexander Demidov
 
Governance of content
Governance of contentGovernance of content
Governance of contentrglab
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized WebYandex
 
Vladimir Unev
Vladimir UnevVladimir Unev
Vladimir UnevArchiOFF
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложенийОлег Винников
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime Community
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Uptime community
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5Provectus
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиковMedia Gorod
 

Similar to Moscow.JS Windows 10 и Project Westminster (20)

Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутриАлександр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
Александр Сербул – Разработка и эксплуатация облачных сервисов Битрикс изнутри
 
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehaveЭволюция к Behavior Driven Development на примере популярного фреймворка JBehave
Эволюция к Behavior Driven Development на примере популярного фреймворка JBehave
 
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
DUMP-2013 Serverside - Архитектура Битрикс24 в Amazon Web Services – изнутри ...
 
Микросервисы в .NET Core
Микросервисы в .NET CoreМикросервисы в .NET Core
Микросервисы в .NET Core
 
FrontEndConf 2015: Microsoft Edge and Web Apps Platfrom in Windows 10
FrontEndConf  2015: Microsoft Edge and Web Apps Platfrom in Windows 10FrontEndConf  2015: Microsoft Edge and Web Apps Platfrom in Windows 10
FrontEndConf 2015: Microsoft Edge and Web Apps Platfrom in Windows 10
 
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
Microsoft Edge и платформа веб-приложений в Windows 10 / Константин Кичинский...
 
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере" Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
Даниил Соколюк "ReactJS.NET — опыт рендеринга на сервере"
 
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
CodeFest 2012. Сошников Д. — Разработка мобильных приложений на платформе Mic...
 
State of the Standardized Web. YaC 2014
State of theStandardized Web. YaC 2014State of theStandardized Web. YaC 2014
State of the Standardized Web. YaC 2014
 
1С-Битрикс - Производительность
1С-Битрикс - Производительность1С-Битрикс - Производительность
1С-Битрикс - Производительность
 
Governance of content
Governance of contentGovernance of content
Governance of content
 
Что нового в 11.0?
Что нового в 11.0?Что нового в 11.0?
Что нового в 11.0?
 
State of the Standardized Web
State of the Standardized WebState of the Standardized Web
State of the Standardized Web
 
Vladimir Unev
Vladimir UnevVladimir Unev
Vladimir Unev
 
разработка Metro style приложений
разработка Metro style приложенийразработка Metro style приложений
разработка Metro style приложений
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
Как жить в облаке почти без админов: мониторинг и эксплуатация сотен виртуаль...
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
Битрикс-Framework
Битрикс-FrameworkБитрикс-Framework
Битрикс-Framework
 
битрикс Framework сергей рыжиков
битрикс Framework   сергей рыжиковбитрикс Framework   сергей рыжиков
битрикс Framework сергей рыжиков
 

Moscow.JS Windows 10 и Project Westminster

Editor's Notes

  1. CEF = Chromium Embedded Framework
  2. CEF = Chromium Embedded Framework
  3. CEF = Chromium Embedded Framework
  4. Project Westminster
  5. Project Westminster
  6. Project Westminster
  7. Project Westminster