SlideShare ist ein Scribd-Unternehmen logo
1 von 36
User Interface
 HTML5/CSS                        XAML                         DirectX                     Controls             Data Binding

     SVG                             Tiles                      Input                  Accessibility              Printing



                Devices                                                  Communications & Data
Geolocation      Portable      Sensors          NFC          Contracts         Local & Cloud Storage               Web


                                                                           Notifications              Streams
                 Media
                                             Visual         Background
Playback      Capture       PlayTo                                             XML               Networking        SMS
                                             Effects          Transfer



                                                        Fundamentals
Application Services        Threading/Timers           Memory Management    Authentication       Cryptography   Globalization
Metro style Apps                        Desktop Apps
  View




                              XAML                      HTML / CSS
Controller




                                                        JavaScript
 Model




                      C/C++           C#, VB                          HTML         C      C#
                                                         (Chakra)     JavaScrip   C++     VB
                                                                          t
                              Windows Runtime APIs
  System Services




                    Communication      Graphics &         Devices &
                       & Data            Media             Printing

                                    Application Model                 Internet            .NET
                                                                      Explorer
                                                                                  Win32    SL
Kern




                                       Windows Kernel Services
 el
Metro style app
                                                       Language Support
                                                      (CLR, WinJS, CRT)
             Language Projection

               UI       Pickers    Controls   Media
                                                      Web Host (HTML,
                                                      CSS, JavaScript))
 Windows      XAML      Storage    Network     …
Metadata &
Namespace
                     Windows Runtime Core              Runtime Broker


                          Windows Core
Demo
Metro style app
                                                       Language Support
                                                      (CLR, WinJS, CRT)
             Language Projection

               UI       Pickers    Controls   Media
                                                      Web Host (HTML,
                                                      CSS, JavaScript))
 Windows      XAML      Storage    Network     …
Metadata &
Namespace
                     Windows Runtime Core              Runtime Broker


                          Windows Core
Strings              HSTRING                          Avoids copying in multiple languages

Basic Types          INT32, UINT64 *                  Pointers allowed in limited cases

Enumerations         enum AsyncStatus                 Flag or non-flag styles

Structures           struct Rect;                     Can contain strings, but not interfaces

Simple Arrays        INT32 []                         For very basic collections

Interfaces           IInspectable                     Methods are defined in interfaces

Generic Interfaces   IVector<T>                       Type-generic interface

Runtime Class        Windows.Storage.StorageFile Binds interfaces to make a class
Demo
Metro style app
                                                        Language Support
                                                       (CLR, WinJS, CRT)
             Language Projection
              Language Projection

                UI       Pickers    Controls   Media       Web Host
                                                       (HTML, CSS, JavaS
 Windows       XAML      Storage    Network     …            cript))
Metadata &
Namespace
                      Windows Runtime Core              Runtime Broker


                           Windows Core
IInspectable                    Shell32.dll


        IUnknown
                              IStorageItemInformation
                              IStorageItem                      FileInformation
         Object               IStorageFile

                              Interfaces                        Runtime Class

Activation Store (Registry)                  Windows Metadata (Disk)
IInspectable                                   C++ App




                          Projectio
                              n
    IUnknown
                                                    C#/VB App




                          Projectio

                                      CLR
                              n
  Object
                                                    HTML App




                          Projectio

                                      Chakra
                              n
               Windows
               Metadata
Projection creates
                       IInspectable
      Start                               wrapper (using
                         returned
                                             metadata)                App




                     Object created by                             Projection
App asks to create                       Object bound to
                     implementation
     object                                 wrapper
                           code



                                                              WinRT Object Manager
  Pass Name to          Call DllGet-     Wrapper returned
RoActivateInstance   ActivationFactory       to App




  Find DLL using                                                  WinRT Object
                         Load DLL               End
     Catalog
IInspectable                       IInspectable
       IUnknown                           IUnknown


        Object                             Object
                 Projectio




                                                    Projectio
 Windows                     App    Windows                     App
                     n




                                                        n
Metadata v8                        Metadata v9
Demo
Collections       IVector<T>, IVectorView<T>,         Iterators, Collections and events
                  IMap<T>                             cross-language

Delegates         delegate                            Encapsulate the context to call
                  AsyncActionCompletedHandler         back to an object

Events            IApplicationLayout::LayoutChanged   Lists of callback recipients


PropertySet       interface IPropertySet              Collection of items with varying
                                                      types

Async Interface   ReceivePropertiesOperation          A way to get a delayed result
                                                      without blocking

Contracts         Windows.ApplicationModel.           Connect Apps to Windows
                  DataTransferManager                 Extension Points
C++ App
              STL-style
              Projection



  Array       IEnumerabl                 C#/VB App




                            CLR
                    e
                (T) style
               Projection

                                         HTML App




                            Chakra
              JavaScript
              Projection

Associative
Collection
var         new CameraCaptureUI
                                         new Size

var           await                     CameraCaptureUIMode

if

      var             new BitmapImage
                          await              FileAccessMode
DllImport "avicap32.dll"            "capCreateCaptureWindow"
static extern int
  string                  int
  int    int    int           int
  int             int

 DllImport "avicap32.dll"
static extern bool
  int
   MarshalAs UnmanagedType          ref string
  int
   MarshalAs UnmanagedType          ref string
  int

// more and more of the same
Demo
App
Main UI Thread                    Threadpool




 Windows
                 Windows                       Windows
    UI
                  Object                        Object
  Object




   App Code            App Code                      App Code
Projection
                                                App




                           Proxy
       RuntimeBroker.exe

IInspectable
    IUnknown


  Windows
Runtime Object
Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8
Introducing Windows Runtime in Windows 8

Weitere ähnliche Inhalte

Ähnlich wie Introducing Windows Runtime in Windows 8

Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET DevelopersMichael Collins
 
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development Naresh Kumar
 
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발Seo Jinho
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro ApplicationsMichael Collins
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone appsJose Luis Latorre Millas
 
Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11영호 라
 
Windows 8 App Developer Day
Windows 8 App Developer DayWindows 8 App Developer Day
Windows 8 App Developer DayPatric Boscolo
 
Windows Store JavaScript Apps
Windows Store JavaScript AppsWindows Store JavaScript Apps
Windows Store JavaScript AppsTomislav Mesić
 
Device+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseDevice+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseNinja Marketing
 
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)mosaicnet
 
Sharing code win8 wp8
Sharing code win8 wp8Sharing code win8 wp8
Sharing code win8 wp8matthidinger
 

Ähnlich wie Introducing Windows Runtime in Windows 8 (20)

Geek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdevGeek a-paloozaaa metro-xaml_appdev
Geek a-paloozaaa metro-xaml_appdev
 
Win8 ru
Win8 ruWin8 ru
Win8 ru
 
Windows 8 for .NET Developers
Windows 8 for .NET DevelopersWindows 8 for .NET Developers
Windows 8 for .NET Developers
 
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
Introduction to Windows 8 Development
 
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발Windows Phone 7.5  와 Windows 8 메트로 스타일 앱 개발
Windows Phone 7.5 와 Windows 8 메트로 스타일 앱 개발
 
Introduction to Metro Applications
Introduction to Metro ApplicationsIntroduction to Metro Applications
Introduction to Metro Applications
 
Shape 2013 developing multi targeting windows store and windows phone apps
Shape 2013   developing multi targeting windows store and windows phone appsShape 2013   developing multi targeting windows store and windows phone apps
Shape 2013 developing multi targeting windows store and windows phone apps
 
.Net + novas tecnologias + win8
.Net + novas tecnologias + win8.Net + novas tecnologias + win8
.Net + novas tecnologias + win8
 
Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11Tacademy techclinic-2012-07-11
Tacademy techclinic-2012-07-11
 
Windows 8 App Developer Day
Windows 8 App Developer DayWindows 8 App Developer Day
Windows 8 App Developer Day
 
Deep Dive into WinRT
Deep Dive into WinRTDeep Dive into WinRT
Deep Dive into WinRT
 
Windows Store JavaScript Apps
Windows Store JavaScript AppsWindows Store JavaScript Apps
Windows Store JavaScript Apps
 
3 000
3 0003 000
3 000
 
Device+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesseDevice+Cloud: come sviluppare App moderne ed interconnesse
Device+Cloud: come sviluppare App moderne ed interconnesse
 
Eco system apps
Eco system appsEco system apps
Eco system apps
 
NETMF
NETMFNETMF
NETMF
 
Build Windows 2012
Build Windows 2012Build Windows 2012
Build Windows 2012
 
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
실전 윈도우폰 망고 앱 디자인 & 개발 III(최종)
 
Visual studio.net
Visual studio.netVisual studio.net
Visual studio.net
 
Sharing code win8 wp8
Sharing code win8 wp8Sharing code win8 wp8
Sharing code win8 wp8
 

Mehr von Microsoft Developer Network (MSDN) - Belgium and Luxembourg

Mehr von Microsoft Developer Network (MSDN) - Belgium and Luxembourg (20)

Code in the Cloud - Ghent - 20 February 2015
Code in the Cloud - Ghent - 20 February 2015Code in the Cloud - Ghent - 20 February 2015
Code in the Cloud - Ghent - 20 February 2015
 
Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015
 
Executive Summit for ISV & Application builders - Internet of Things
Executive Summit for ISV & Application builders - Internet of ThingsExecutive Summit for ISV & Application builders - Internet of Things
Executive Summit for ISV & Application builders - Internet of Things
 
Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015Executive Summit for ISV & Application builders - January 2015
Executive Summit for ISV & Application builders - January 2015
 
Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014Code in the Cloud - December 8th 2014
Code in the Cloud - December 8th 2014
 
Adam azure presentation
Adam   azure presentationAdam   azure presentation
Adam azure presentation
 
release management
release managementrelease management
release management
 
cloud value for application development
cloud value for application developmentcloud value for application development
cloud value for application development
 
Modern lifecycle management practices
Modern lifecycle management practicesModern lifecycle management practices
Modern lifecycle management practices
 
Belgian visual studio launch 2013
Belgian visual studio launch 2013Belgian visual studio launch 2013
Belgian visual studio launch 2013
 
Windows Azure Virtually Speaking
Windows Azure Virtually SpeakingWindows Azure Virtually Speaking
Windows Azure Virtually Speaking
 
Inside the Microsoft TechDays Belgium Apps
Inside the Microsoft TechDays Belgium AppsInside the Microsoft TechDays Belgium Apps
Inside the Microsoft TechDays Belgium Apps
 
TechDays 2013 Developer Keynote
TechDays 2013 Developer KeynoteTechDays 2013 Developer Keynote
TechDays 2013 Developer Keynote
 
Windows Phone 8 Security Deep Dive
Windows Phone 8 Security Deep DiveWindows Phone 8 Security Deep Dive
Windows Phone 8 Security Deep Dive
 
Deep Dive into Entity Framework 6.0
Deep Dive into Entity Framework 6.0Deep Dive into Entity Framework 6.0
Deep Dive into Entity Framework 6.0
 
Applied MVVM in Windows 8 apps: not your typical MVVM session!
Applied MVVM in Windows 8 apps: not your typical MVVM session!Applied MVVM in Windows 8 apps: not your typical MVVM session!
Applied MVVM in Windows 8 apps: not your typical MVVM session!
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Deep Dive and Best Practices for Windows Azure Storage Services
Deep Dive and Best Practices for Windows Azure Storage ServicesDeep Dive and Best Practices for Windows Azure Storage Services
Deep Dive and Best Practices for Windows Azure Storage Services
 
Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...Building data centric applications for web, desktop and mobile with Entity Fr...
Building data centric applications for web, desktop and mobile with Entity Fr...
 
Bart De Smet Unplugged
Bart De Smet UnpluggedBart De Smet Unplugged
Bart De Smet Unplugged
 

Kürzlich hochgeladen

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

Introducing Windows Runtime in Windows 8

  • 1.
  • 2.
  • 3.
  • 4.
  • 5. User Interface HTML5/CSS XAML DirectX Controls Data Binding SVG Tiles Input Accessibility Printing Devices Communications & Data Geolocation Portable Sensors NFC Contracts Local & Cloud Storage Web Notifications Streams Media Visual Background Playback Capture PlayTo XML Networking SMS Effects Transfer Fundamentals Application Services Threading/Timers Memory Management Authentication Cryptography Globalization
  • 6. Metro style Apps Desktop Apps View XAML HTML / CSS Controller JavaScript Model C/C++ C#, VB HTML C C# (Chakra) JavaScrip C++ VB t Windows Runtime APIs System Services Communication Graphics & Devices & & Data Media Printing Application Model Internet .NET Explorer Win32 SL Kern Windows Kernel Services el
  • 7.
  • 8. Metro style app Language Support (CLR, WinJS, CRT) Language Projection UI Pickers Controls Media Web Host (HTML, CSS, JavaScript)) Windows XAML Storage Network … Metadata & Namespace Windows Runtime Core Runtime Broker Windows Core
  • 9.
  • 10.
  • 11. Demo
  • 12.
  • 13. Metro style app Language Support (CLR, WinJS, CRT) Language Projection UI Pickers Controls Media Web Host (HTML, CSS, JavaScript)) Windows XAML Storage Network … Metadata & Namespace Windows Runtime Core Runtime Broker Windows Core
  • 14.
  • 15.
  • 16. Strings HSTRING Avoids copying in multiple languages Basic Types INT32, UINT64 * Pointers allowed in limited cases Enumerations enum AsyncStatus Flag or non-flag styles Structures struct Rect; Can contain strings, but not interfaces Simple Arrays INT32 [] For very basic collections Interfaces IInspectable Methods are defined in interfaces Generic Interfaces IVector<T> Type-generic interface Runtime Class Windows.Storage.StorageFile Binds interfaces to make a class
  • 17. Demo
  • 18.
  • 19. Metro style app Language Support (CLR, WinJS, CRT) Language Projection Language Projection UI Pickers Controls Media Web Host (HTML, CSS, JavaS Windows XAML Storage Network … cript)) Metadata & Namespace Windows Runtime Core Runtime Broker Windows Core
  • 20. IInspectable Shell32.dll IUnknown IStorageItemInformation IStorageItem FileInformation Object IStorageFile Interfaces Runtime Class Activation Store (Registry) Windows Metadata (Disk)
  • 21. IInspectable C++ App Projectio n IUnknown C#/VB App Projectio CLR n Object HTML App Projectio Chakra n Windows Metadata
  • 22. Projection creates IInspectable Start wrapper (using returned metadata) App Object created by Projection App asks to create Object bound to implementation object wrapper code WinRT Object Manager Pass Name to Call DllGet- Wrapper returned RoActivateInstance ActivationFactory to App Find DLL using WinRT Object Load DLL End Catalog
  • 23. IInspectable IInspectable IUnknown IUnknown Object Object Projectio Projectio Windows App Windows App n n Metadata v8 Metadata v9
  • 24. Demo
  • 25. Collections IVector<T>, IVectorView<T>, Iterators, Collections and events IMap<T> cross-language Delegates delegate Encapsulate the context to call AsyncActionCompletedHandler back to an object Events IApplicationLayout::LayoutChanged Lists of callback recipients PropertySet interface IPropertySet Collection of items with varying types Async Interface ReceivePropertiesOperation A way to get a delayed result without blocking Contracts Windows.ApplicationModel. Connect Apps to Windows DataTransferManager Extension Points
  • 26. C++ App STL-style Projection Array IEnumerabl C#/VB App CLR e (T) style Projection HTML App Chakra JavaScript Projection Associative Collection
  • 27.
  • 28. var new CameraCaptureUI new Size var await CameraCaptureUIMode if var new BitmapImage await FileAccessMode
  • 29. DllImport "avicap32.dll" "capCreateCaptureWindow" static extern int string int int int int int int int DllImport "avicap32.dll" static extern bool int MarshalAs UnmanagedType ref string int MarshalAs UnmanagedType ref string int // more and more of the same
  • 30. Demo
  • 31. App Main UI Thread Threadpool Windows Windows Windows UI Object Object Object App Code App Code App Code
  • 32.
  • 33. Projection App Proxy RuntimeBroker.exe IInspectable IUnknown Windows Runtime Object

Hinweis der Redaktion

  1. varfpd = new Windows.Storage.Pickers.FileOpenPicker();fpd.fileTypeFilter.push(“.jpg”);fpd.fileTypeFilter.push(“.png”);fpd.pickSingleFileAsync().then(function (f) {img.src = window.URL.createObjectURL(f, false);});
  2. Rich metadata – compare to windows.h; no relation between APIs
  3. Private catalog – sharing between apps only through OS contracts
  4. Thin projection layer for performance  HSTRING storyInterface-based system; also for versioning; don’t want to say it day-to-day, so we got runtime classes (may evolve) = collection of functionality (can grow) based on a set of interfacesAlso generic interfaces, e.g. for vectors (type-safety for collections)
  5. Don’t have to see the interfaces for regular purposes
  6. C++ @ compile time, native code talks directly to the OS, no metadata read at runtimeC#/VB – mixture of metadata at runtime and compile time; RCWs generated by CLRJS – using metadata at runtime (dynamic language)
  7. App doesn’t have to know much – everything happens behind the scenes (projection, WinRT)
  8. Interface tied back to version of WindowsNew version of a class may have more interfacesTools can surface only the interfaces that are available in targeted OS versions for the app
  9. Responsive, fluid platform
  10. Not straightforward; P/Invoke, COM interop; rocket science
  11. Compare to JS (apart from web workers), single-threaded environmentWork is done in background thread and in async operations
  12. E.g. webcam promptSame for pickersConfidence for the user
  13. API set, but also coreInterface-basedProjectionsUnderpins whole Windows platformThis level of detail is not needed to use it (debugging, etc.)One Windows API for each thingNatural and familiar in your language