SlideShare a Scribd company logo
И что?
Это просто компьютер внутри стола?


                     Почти…
                     Но не совсем так
Розничные                            Финансовые
            Развлечения   Автопром                Здравоохранение
 продажи                               услуги
Приложения Surface

WPF API   Core API (XNA)       Shell UI & APIs

 Система отображения         Интеграция с ОС

              Windows Vista SP1

Microsoft Surface – аппаратная часть и драйверы
XAML
 <Window>
 <s:SurfaceWindow>
           Mouse.MouseDown=“OnMouseDown“>
  <Canvas s:Contacts.ContactDown=“OnContactDown“>
   <Button Click=“OnButtonClick”/>
   <s:SurfaceButton Click=“OnButtonClick”/>
  </Canvas>
 </Window>
 </s:SurfaceWindow>

Code
 void OnContactDown(objectsender, ContactEventArgse)
       OnMouseDown(object sender, MouseEventArgs e)
 { // ...
 }
 void OnButtonClick(object sender, RoutedEventArgs e)
 { // ...
 }
SurfaceWindow
  • Всегда в режиме fullscreen
• Расположено к запустившему
   приложение пользователю
         SurfaceMenu
     SurfaceContextMenu
       SurfaceMenuItem
 • Несколько элементов могут
использоваться одновременно
        SurfaceButton
     SurfaceRadioButton
       SurfaceCheckBox
     SurfaceToggleButton
 • Событие “click” возникнет
только тогда, когда все другие
  контакты с поверхностью
         прекратятся
SurfaceListBox
      SurfaceScrollViewer
• Различает прокрутку и выбор
    • Контрол инерциален


          SurfaceSlider
         SurfaceScrollBar
     • Контрол инерциален
• Бегунок едва различим, когда
    контрол не используется


        SurfaceTextBox
      SurfacePasswordBox
   • При нажатии запускает
   виртуальную клавиатуру,
расположенную к пользователю
Постоянно
                                обходить стол
                                   вокруг?
                 Это и правда
                                Неприкольно…
                    просто
                 компьютер?




  Зачем мне
 нужно ждать
своей очереди?


                                                Сколько у нас
                                                  на часах?
                                                   17:44?
Это просто
мегакомпьютер


                                 Ух ты! Прикольная
                                       штука!




                Мы с друзьями
                                                   Ага, я вижу
                не мешаем друг
                                                 сколько сейчас
                     другу
                                                    времени!
Byte Tags
                Contact.Tag.Byte
                256 уникальных значений


                                                                 Byte Tag



Identity Tags
                Contact.Tag.Identity
                >340 282 366 920 938 000 000 000 000 000 000 000 000
                уникальных значений
Multi-Touch
                     Surface
                   Multi-Touch
                    Controls
                   Multi-Touch
                  Controls & API
                  Controls &API




Multi-Touch API
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface
Microsoft NUI - Surface

More Related Content

Viewers also liked

Масштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с NginxМасштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с Nginx
GetDev.NET
 
Использование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииИспользование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииGetDev.NET
 
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)
hackdemocracy
 
HackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium IntroductionHackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium Introduction
hackdemocracy
 
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
hackdemocracy
 
Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3
hackdemocracy
 
Pirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the AnonymousPirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the Anonymous
hackdemocracy
 
Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?
hackdemocracy
 
FairObserver by Fabian Neuen
FairObserver by Fabian NeuenFairObserver by Fabian Neuen
FairObserver by Fabian Neuen
hackdemocracy
 
iRail and OpenData
iRail and OpenDataiRail and OpenData
iRail and OpenData
hackdemocracy
 
Online and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movementOnline and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movementhackdemocracy
 
HackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice ProceduresHackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice Procedures
hackdemocracy
 
NewEurAsia by Christopher Schwartz
NewEurAsia by Christopher SchwartzNewEurAsia by Christopher Schwartz
NewEurAsia by Christopher Schwartz
hackdemocracy
 
Citizen Media Meetup
Citizen Media MeetupCitizen Media Meetup
Citizen Media Meetup
hackdemocracy
 
AngularJS
AngularJSAngularJS
AngularJS
GetDev.NET
 
Microsoft NUI - Kinect
Microsoft NUI - KinectMicrosoft NUI - Kinect
Microsoft NUI - Kinect
GetDev.NET
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
GetDev.NET
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервис
GetDev.NET
 
Первое знакомство с MODx revolution
Первое знакомство с MODx revolutionПервое знакомство с MODx revolution
Первое знакомство с MODx revolution
GetDev.NET
 
Web deployment
Web deploymentWeb deployment
Web deployment
GetDev.NET
 

Viewers also liked (20)

Масштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с NginxМасштабирование и отказоустойчивость с Nginx
Масштабирование и отказоустойчивость с Nginx
 
Использование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестированииИспользование Mock объектов в модульном тестировании
Использование Mock объектов в модульном тестировании
 
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)Political Memory - Memopol Toolkit  (HackDemocracy Meetup 5)
Political Memory - Memopol Toolkit (HackDemocracy Meetup 5)
 
HackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium IntroductionHackDemocracy 4: Open Data in Belgium Introduction
HackDemocracy 4: Open Data in Belgium Introduction
 
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
Introduction HackDemocracy Meetup 5: Citizen Platforms for Political Accounta...
 
Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3Introduction to HackDemocracy Brussels Meetup 3
Introduction to HackDemocracy Brussels Meetup 3
 
Pirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the AnonymousPirate Party, Wikileaks & the Anonymous
Pirate Party, Wikileaks & the Anonymous
 
Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?Wikileaks: secure dropbox or leaking dropbox?
Wikileaks: secure dropbox or leaking dropbox?
 
FairObserver by Fabian Neuen
FairObserver by Fabian NeuenFairObserver by Fabian Neuen
FairObserver by Fabian Neuen
 
iRail and OpenData
iRail and OpenDataiRail and OpenData
iRail and OpenData
 
Online and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movementOnline and Offline Activism with the Indignados/Occupy movement
Online and Offline Activism with the Indignados/Occupy movement
 
HackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice ProceduresHackDemocracy Brussels 3: Using technology to improve School Choice Procedures
HackDemocracy Brussels 3: Using technology to improve School Choice Procedures
 
NewEurAsia by Christopher Schwartz
NewEurAsia by Christopher SchwartzNewEurAsia by Christopher Schwartz
NewEurAsia by Christopher Schwartz
 
Citizen Media Meetup
Citizen Media MeetupCitizen Media Meetup
Citizen Media Meetup
 
AngularJS
AngularJSAngularJS
AngularJS
 
Microsoft NUI - Kinect
Microsoft NUI - KinectMicrosoft NUI - Kinect
Microsoft NUI - Kinect
 
Windows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиковWindows 10 для пользователей и разработчиков
Windows 10 для пользователей и разработчиков
 
Roslyn - компилятор как сервис
Roslyn - компилятор как сервисRoslyn - компилятор как сервис
Roslyn - компилятор как сервис
 
Первое знакомство с MODx revolution
Первое знакомство с MODx revolutionПервое знакомство с MODx revolution
Первое знакомство с MODx revolution
 
Web deployment
Web deploymentWeb deployment
Web deployment
 

More from GetDev.NET

Go
GoGo
Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущее
GetDev.NET
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
GetDev.NET
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучше
GetDev.NET
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
GetDev.NET
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
GetDev.NET
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
GetDev.NET
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
GetDev.NET
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
GetDev.NET
 
TypeScript
TypeScriptTypeScript
TypeScript
GetDev.NET
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
GetDev.NET
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego Mindstorms
GetDev.NET
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
GetDev.NET
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
GetDev.NET
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложений
GetDev.NET
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
GetDev.NET
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
GetDev.NET
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
GetDev.NET
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
GetDev.NET
 
Обзор рекомендаций W3C
Обзор рекомендаций W3CОбзор рекомендаций W3C
Обзор рекомендаций W3CGetDev.NET
 

More from GetDev.NET (20)

Go
GoGo
Go
 
Leap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущееLeap Motion - игрушка с заделом на будущее
Leap Motion - игрушка с заделом на будущее
 
Гирлянда для программистов
Гирлянда для программистовГирлянда для программистов
Гирлянда для программистов
 
Mind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучшеMind Mapping, или как заставить свой мозг работать лучше
Mind Mapping, или как заставить свой мозг работать лучше
 
Что нового в Visual Studio 2015
Что нового в Visual Studio 2015Что нового в Visual Studio 2015
Что нового в Visual Studio 2015
 
Docker контейнерная революция
Docker контейнерная революцияDocker контейнерная революция
Docker контейнерная революция
 
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗКPhoneGap для мобильного разработчика - глубокое погружение без ОЗК
PhoneGap для мобильного разработчика - глубокое погружение без ОЗК
 
ASP.NET Web API
ASP.NET Web APIASP.NET Web API
ASP.NET Web API
 
Что нового в Visual Studio 2013
Что нового в Visual Studio 2013Что нового в Visual Studio 2013
Что нового в Visual Studio 2013
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
Создание повторно используемых бизнес моделей с помощью технологии Domain Com...
 
Lego Mindstorms
Lego MindstormsLego Mindstorms
Lego Mindstorms
 
Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8Особенности мобильной платформы Windows Phone 8
Особенности мобильной платформы Windows Phone 8
 
Async Javascript
Async JavascriptAsync Javascript
Async Javascript
 
XAML - язык разметки приложений
XAML - язык разметки приложенийXAML - язык разметки приложений
XAML - язык разметки приложений
 
Dynamic Language Runtime
Dynamic Language RuntimeDynamic Language Runtime
Dynamic Language Runtime
 
JavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработкиJavaScript: хороший тон клиентской разработки
JavaScript: хороший тон клиентской разработки
 
ASP.NET MVC 4
ASP.NET MVC 4ASP.NET MVC 4
ASP.NET MVC 4
 
ASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVCASP.NET, MVC, ASP.NET MVC
ASP.NET, MVC, ASP.NET MVC
 
Обзор рекомендаций W3C
Обзор рекомендаций W3CОбзор рекомендаций W3C
Обзор рекомендаций W3C
 

Microsoft NUI - Surface

  • 1.
  • 2.
  • 3.
  • 4. И что? Это просто компьютер внутри стола? Почти… Но не совсем так
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. Розничные Финансовые Развлечения Автопром Здравоохранение продажи услуги
  • 10.
  • 11.
  • 12. Приложения Surface WPF API Core API (XNA) Shell UI & APIs Система отображения Интеграция с ОС Windows Vista SP1 Microsoft Surface – аппаратная часть и драйверы
  • 13.
  • 14.
  • 15. XAML <Window> <s:SurfaceWindow> Mouse.MouseDown=“OnMouseDown“> <Canvas s:Contacts.ContactDown=“OnContactDown“> <Button Click=“OnButtonClick”/> <s:SurfaceButton Click=“OnButtonClick”/> </Canvas> </Window> </s:SurfaceWindow> Code void OnContactDown(objectsender, ContactEventArgse) OnMouseDown(object sender, MouseEventArgs e) { // ... } void OnButtonClick(object sender, RoutedEventArgs e) { // ... }
  • 16. SurfaceWindow • Всегда в режиме fullscreen • Расположено к запустившему приложение пользователю SurfaceMenu SurfaceContextMenu SurfaceMenuItem • Несколько элементов могут использоваться одновременно SurfaceButton SurfaceRadioButton SurfaceCheckBox SurfaceToggleButton • Событие “click” возникнет только тогда, когда все другие контакты с поверхностью прекратятся
  • 17. SurfaceListBox SurfaceScrollViewer • Различает прокрутку и выбор • Контрол инерциален SurfaceSlider SurfaceScrollBar • Контрол инерциален • Бегунок едва различим, когда контрол не используется SurfaceTextBox SurfacePasswordBox • При нажатии запускает виртуальную клавиатуру, расположенную к пользователю
  • 18.
  • 19. Постоянно обходить стол вокруг? Это и правда Неприкольно… просто компьютер? Зачем мне нужно ждать своей очереди? Сколько у нас на часах? 17:44?
  • 20.
  • 21. Это просто мегакомпьютер Ух ты! Прикольная штука! Мы с друзьями Ага, я вижу не мешаем друг сколько сейчас другу времени!
  • 22. Byte Tags Contact.Tag.Byte 256 уникальных значений Byte Tag Identity Tags Contact.Tag.Identity >340 282 366 920 938 000 000 000 000 000 000 000 000 уникальных значений
  • 23.
  • 24. Multi-Touch Surface Multi-Touch Controls Multi-Touch Controls & API Controls &API Multi-Touch API

Editor's Notes

  1. Microsoft Surface – совокупность аппаратных и программных средств, объединенных в единый продукт, который позволяет пользователю или группе пользователей управлять цифровым содержимым, используя жесты, движения, прикосновения пальцев или физических объектов.
  2. Светлое настоящее
  3. Переделать какое-нибудь простое WPF-приложение и запустить его на эмуляторе Microsoft Surface. Желательно чтобы мышиных обработчиков там не присутствовало, а то будет долго Для этого надо сделать 3 действия:Убрать размеры окна (атрибуты Width и Height в корневом теге Window и добавить атрибут WindowStyleсо значением “None”)Добавить в проект ссылку на сбору Microsoft.Surface.Presentationи и соответствующее описание неймспейса (xmlns:s=“http://schemas.microsoft.com/surface/2008”) в тэг Window в xaml-файле, описывающем главное окно приложения.Заменить описание всех стандартных контролов в xaml-файле на описание контролов из соответствующего неймспейса (Quick Replace -&gt; заменить с помощью регулярного выражения «{[&lt;/]}{(Window|Button|ScrollViewer|ListBox)[&gt; ]}» на «\\1s:Surface\\2»)
  4. Очень круто, если слайд приводит в пример то приложение, которое только что переделывалось с Windows WPF на Surface WPF
  5. Демонстрация переделанного примера приложения из прошлой демонстрации
  6. Очень круто, если слайд приводит в пример то приложение, которое только что переделывалось с Windows WPF на Surface WPF
  7. Друзья! Обязательно отдайте какой-нибудь сувенир тому, что сможет правильно назвать число уникальныхIdentity Tags!340 ундециллионов 282 додециллиона 366 нониллиона 920 октиллионов 938 септиллионов 