iTechArt Group, 2012
ALEXEI SKACHYKHIN
WHAT IS
WINDOWS 8
Next version of Microsoft Windows
Next-generation development platform
New way of thinking about UI and UX
The most revolutionary software Microsoft ever shipped
ROADMAP OF
WINDOWS 8

    2011                                    2012                                        2013

    Windows 8           Windows 8         Windows 8       Windows 8    Windows 8     Windows Phone 8,
 Developer Preview   Consumer Preview   Release Preview     RTM         Release         Xbox 720


    September 13        February 29         May 31          August 1    October 26
TWO WORLDS
OF WINDOWS 8



METRO          CLASSIC
Hardware & Devices
TARGETED
PLATFORMS
 Windows 8 is effective combination of mobile and desktop OS
      All of the versions of Windows 8 have shared core
TARGETED
PLATFORMS

  Desktop PCs
TARGETED
PLATFORMS




            Tablets
TARGETED
PLATFORMS




            Phones
TARGETED
PLATFORMS




            Gaming Consoles
MICROSOFT
SURFACE
SONY VAIO
TAP 20
DELL XPS DUO 12
Versioning
VERSIONS
Windows 8                                         Windows RT
Baseline version of Windows 8 for consumers       Special version of Windows 8 for ARM
Runs on PC and x86-based tablets                  Runs only on ARM-based tablets and PCs
                                                  Supports only METRO part of the OS
Windows 8 Pro                                     Cannot be purchased, preinstalled on device
Advanced version of Windows 8 for business
Runs on PC and x86-based tablets                  Windows Phone 8
Enhanced virtualization, file system encryption   Special version of Windows 8 for mobile phones
                                                  Supports only METRO part of the OS
                                                  Still has a lot of differences despite shared OS core
Windows 8 Enterprise                              Cannot be purchased, preinstalled on device
Advanced version of Windows 8 for enterprise
Runs on PC
Enhanced virtualization, advanced security
PC management and deployment
Windows To Go
Hardware Features
HARDWARE
FEATURES
Support for System-on-Chip
Windows 8 support SoC architectures, including ARM
Support for low-power SoC
HARDWARE
FEATURES



           UEFI
           Windows 8 support UEFI and UEFI Secure Boot feature
           Sufficient hardware foundation for next-gen devices
           Reduces risk of boot loader attacks
HARDWARE
FEATURES
           Virtualization
           Hyper-V virtualization build into baseline Windows 8
           Dynamic, reliable, scalable virtualization platform
HARDWARE
FEATURES



Kernel Hibernation
Windows 8 saves kernel memory on hard disk on shutdown
Dramatically reduced boot time
Works in conjunction with multi-core boot
Architectural Idioms
ARCHITECTURAL
IDIOMS
     Cloud-connected Operating System
     Windows 8 uses cloud as file storage
     Windows 8 uses cloud as synchronization hub
     Windows 8 uses cloud as authentication service
     Windows 8 uses cloud as computing platform
ARCHITECTURAL
IDIOMS
     Everything is hardware accelerated
     Hardware accelerated UI by Direct2D and Direct3D
     Hardware accelerated computations by DirectCompute
     Hardware accelerated kernel routines by DirectCompute
ARCHITECTURAL
IDIOMS
     Asynchrony on the Operating System level
     Everything that may take longer then 50msec made asynchronous
     Concept of “futures” on the Operating System level
     Fast and fluid UI is primary objective
Metro style Apps                        Desktop Apps

                               XAML                     HTML / CSS
  View




                                                        JavaScript
Controller
 Model




                      C/C++            C#, VB                          HTML
                                                                                  C      C#
                                                         (Chakra)       JS
                                                                                 C++     VB

                              Windows Runtime APIs
  System Services




                    Communication       Graphics &        Devices &
                       & Data             Media            Printing
                                                                                         .NE
                                    Application Model                 Internet
                                                                                 Win32    T
                                                                      Explorer
                                                                                          SL

                                    Windows Kernel Services
  Kernel
User Interface
WHAT IS
METRO
Typography based design language by Microsoft
First appearance on Windows Phone 7
METRO
DESIGN
Content-centric UI
Focus on what`s really matters
No useless graphics
Feels light and responsive
METRO
DESIGN


         Touch-based
         Touch-based design language
         Everything should be easily reachable
         Almost everything is clickable
METRO
DESIGN
 Elements of METRO style UI are aligned to 20px grid
METRO    Make your application feels
             like canvas with lots of
DESIGN             things to explore
METRO
DESIGN
Design made easy with clear guidelines
Microsoft has clear guidelines on everything
Fonts, colors and positioning are driven by guidelines
Guideline not a rule



                                                         Visit next resources
                                                                  Font guidelines
                                                                 Color guidelines
                                                                Layout guidelines
REVOLUTION OF
START MENU
Applications
WINDOWS STORE
APPLICATIONS
Key characteristics
Immersive
Full screen
Touch-optimized
Good for both mobile and desktop
WINDOWS STORE
APPLICATIONS

                How they got distributed?
                Windows Store
WINDOWS STORE
APPLICATIONS
Layout
WINDOWS STORE
     APPLICATIONS
     Application Lifetime

                            App gets 5 seconds to work                Apps are not notified
                              after suspend message                     before they are
                                                                          terminated

  User                          suspending
              Running                                     Suspended                           Terminated
Launches                                                                Low Memory
                App                                          App                                 App
  App                              resuming
                            Apps are notified when they
                               have been resumed
WINDOWS
INTEGRATION
Contracts
Applications play together via Contracts
Application and OS play together via Extensions
Contract is a well-defined interface that app can implement
Contracts are managed by WinRT through system registry
WINDOWS
INTEGRATION

      How user interacts with contracts?
            Charms Bar
WINDOWS
INTEGRATION



              Extensions
              Agreement between app and Windows
              Allows to customize standard features
              Usually require no user interaction
WINDOWS STORE
APPLICATIONS
Programming Alternatives




                           C++/CX
Development
WINDOWS 8
METRO
            How it all works?

      Windows Runtime
WINDOWS
RUNTIME

The Windows Runtime is the solid, efficient foundation for building
                   great Metro style apps
WINDOWS
RUNTIME
From regular developers standpoint
Windows Runtime is set of API for writing Metro style apps

From OS architects standpoint
Windows Runtime is a platform that handles low level and
high level details of Metro style apps
WINDOWS RUNTIME
DESIGN PRINCIPLES
Major improvement to developer experience
Great Intellisense and tooling

Responsive and Fluid
Async API where they are needed

App-centric Platform
Well managed app-to-app contract
WINRT
INTERNALS
Communication Technology                           Wrapper
Internally WinRT use COM for class instantiation   Windows Runtime works on top of kernel
                                                   services and effectively wraps part of Windows
Native Bits                                        API for ease of use in modern languages
Windows Runtime is written in C++ and completely
unmanaged                                          Security
                                                   Relies only on secure part of Windows API and
                                                   disallows access to unsecure API
Language
                     Metro style app
                                                                Support
                                                            (CLR, WinJS, CRT
                   Language Projection                             )

                      UI      Pickers    Controls   Media      Web Host
                                                            (HTML, CSS, Java
Windows Metadata     XAML    Storage     Network     …          Script))
  & Namespace


                            Windows Runtime Core            Runtime Broker


                               Windows Core
WINDOWS
METADATA
Concise, complete description of the Windows Runtime
Generated natively from C++ or C#/VB Compiler
Efficient binary format derived CLI Metadata
Milti-language projection generation
Full intellisense on statically known information
WINDOWS
NAMESPACE
Windows.* Runtime objects are in simple unified, hierarchical
namespace
Great Intellisense and browsing in Visual Studio
One Clear type for each function
Your apps can add objects that can be seen from any WinRT
language
WINRT TYPESYSTEM
Strings      HSTRING         Avoids copying in multiple languages
Basic        INT32,          Pointers allowed in limited cases
Types        UINT64 *
Enumerati    enum            Flag or non-flag styles
ons          AsyncStatus

Structures   struct Rect;    Can contain strings, but not interfaces

Simple       INT32 []        For very basic collections
Arrays
Interfaces   IInspectable    Methods are defined in interfaces

Generic      IVector<T>      Type-generic interface
Interfaces
Runtime      Windows.Sto     Binds interfaces to make a class
Class        rage.StorageF
             ile
Language
                     Metro style app
                                                                Support
                                                            (CLR, WinJS, CRT
                   Language Projection                             )

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


                            Windows Runtime Core            Runtime Broker


                               Windows Core
WINRT OBJECT
                              Shell32.dll




       Object




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




                      Projection
                                               C#/VB App




                      Projection


                                   CLR
  Object
                                               HTML App




                                   Chakra
                      Projection
           Windows
           Metadata
PROJECTIONS EXAMPLE
                                C++ App
                 STL-style
                 Projection



  Array                                C#/VB App
                IEnumerable




                              CLR
                  (T) style
                 Projection



                                       HTML App




                              Chakra
                 JavaScript
                 Projection

Associative
Collection
OBJECT CREATION
                                         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
                        Load DLL                End              WinRT Object
     Catalog
VERSIONING


      Object                           Object




 Windows                    App   Windows                    App
               Projection




                                                Projection
 Metadata                         Metadata
    v8                               v9
WINDOWS RUNTIME
ASYNCHRONY
Basic requirements for apps
Always responsive, ready
Long running API must be delivered as async


Asynchrony on WinRT level
Everything that takes more than 50msec made async
IAsyncOperation, IAsyncOperation<T> as “futures”

Programming Languages
Deep support of “futures” through language projections
Async/await keyword in C# 5.0 / VB 11
Promises in C#
WINRT APIs
                                                         User Interface
  HTML5/CSS                           XAML                      DirectX                        Controls                  Data Binding


      SVG                             Tiles                      Input                       Accessibility                  Printing




                  Devices                                                   Communications & Data
                   Portabl      Sensor
Geolocation                                      NFC          Contracts            Local & Cloud Storage                    Web
                     e            s


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



                                                         Fundamentals
 Application Services        Threading/Timers           Memory Management      Authentication             Cryptography   Globalization
THANK YOU
Feedback & questions on WIKI

Windows 8

  • 1.
  • 2.
    WHAT IS WINDOWS 8 Nextversion of Microsoft Windows Next-generation development platform New way of thinking about UI and UX The most revolutionary software Microsoft ever shipped
  • 3.
    ROADMAP OF WINDOWS 8 2011 2012 2013 Windows 8 Windows 8 Windows 8 Windows 8 Windows 8 Windows Phone 8, Developer Preview Consumer Preview Release Preview RTM Release Xbox 720 September 13 February 29 May 31 August 1 October 26
  • 4.
    TWO WORLDS OF WINDOWS8 METRO CLASSIC
  • 5.
  • 6.
    TARGETED PLATFORMS Windows 8is effective combination of mobile and desktop OS All of the versions of Windows 8 have shared core
  • 7.
  • 8.
  • 9.
  • 10.
    TARGETED PLATFORMS Gaming Consoles
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    VERSIONS Windows 8 Windows RT Baseline version of Windows 8 for consumers Special version of Windows 8 for ARM Runs on PC and x86-based tablets Runs only on ARM-based tablets and PCs Supports only METRO part of the OS Windows 8 Pro Cannot be purchased, preinstalled on device Advanced version of Windows 8 for business Runs on PC and x86-based tablets Windows Phone 8 Enhanced virtualization, file system encryption Special version of Windows 8 for mobile phones Supports only METRO part of the OS Still has a lot of differences despite shared OS core Windows 8 Enterprise Cannot be purchased, preinstalled on device Advanced version of Windows 8 for enterprise Runs on PC Enhanced virtualization, advanced security PC management and deployment Windows To Go
  • 16.
  • 17.
    HARDWARE FEATURES Support for System-on-Chip Windows8 support SoC architectures, including ARM Support for low-power SoC
  • 18.
    HARDWARE FEATURES UEFI Windows 8 support UEFI and UEFI Secure Boot feature Sufficient hardware foundation for next-gen devices Reduces risk of boot loader attacks
  • 19.
    HARDWARE FEATURES Virtualization Hyper-V virtualization build into baseline Windows 8 Dynamic, reliable, scalable virtualization platform
  • 20.
    HARDWARE FEATURES Kernel Hibernation Windows 8saves kernel memory on hard disk on shutdown Dramatically reduced boot time Works in conjunction with multi-core boot
  • 21.
  • 22.
    ARCHITECTURAL IDIOMS Cloud-connected Operating System Windows 8 uses cloud as file storage Windows 8 uses cloud as synchronization hub Windows 8 uses cloud as authentication service Windows 8 uses cloud as computing platform
  • 23.
    ARCHITECTURAL IDIOMS Everything is hardware accelerated Hardware accelerated UI by Direct2D and Direct3D Hardware accelerated computations by DirectCompute Hardware accelerated kernel routines by DirectCompute
  • 24.
    ARCHITECTURAL IDIOMS Asynchrony on the Operating System level Everything that may take longer then 50msec made asynchronous Concept of “futures” on the Operating System level Fast and fluid UI is primary objective
  • 25.
    Metro style Apps Desktop Apps XAML HTML / CSS View JavaScript Controller Model C/C++ C#, VB HTML C C# (Chakra) JS C++ VB Windows Runtime APIs System Services Communication Graphics & Devices & & Data Media Printing .NE Application Model Internet Win32 T Explorer SL Windows Kernel Services Kernel
  • 26.
  • 28.
    WHAT IS METRO Typography baseddesign language by Microsoft First appearance on Windows Phone 7
  • 29.
    METRO DESIGN Content-centric UI Focus onwhat`s really matters No useless graphics Feels light and responsive
  • 30.
    METRO DESIGN Touch-based Touch-based design language Everything should be easily reachable Almost everything is clickable
  • 31.
    METRO DESIGN Elements ofMETRO style UI are aligned to 20px grid
  • 32.
    METRO Make your application feels like canvas with lots of DESIGN things to explore
  • 33.
    METRO DESIGN Design made easywith clear guidelines Microsoft has clear guidelines on everything Fonts, colors and positioning are driven by guidelines Guideline not a rule Visit next resources Font guidelines Color guidelines Layout guidelines
  • 34.
  • 35.
  • 36.
    WINDOWS STORE APPLICATIONS Key characteristics Immersive Fullscreen Touch-optimized Good for both mobile and desktop
  • 37.
    WINDOWS STORE APPLICATIONS How they got distributed? Windows Store
  • 38.
  • 39.
    WINDOWS STORE APPLICATIONS Application Lifetime App gets 5 seconds to work Apps are not notified after suspend message before they are terminated User suspending Running Suspended Terminated Launches Low Memory App App App App resuming Apps are notified when they have been resumed
  • 40.
    WINDOWS INTEGRATION Contracts Applications play togethervia Contracts Application and OS play together via Extensions Contract is a well-defined interface that app can implement Contracts are managed by WinRT through system registry
  • 41.
    WINDOWS INTEGRATION How user interacts with contracts? Charms Bar
  • 42.
    WINDOWS INTEGRATION Extensions Agreement between app and Windows Allows to customize standard features Usually require no user interaction
  • 43.
  • 44.
  • 45.
    WINDOWS 8 METRO How it all works? Windows Runtime
  • 46.
    WINDOWS RUNTIME The Windows Runtimeis the solid, efficient foundation for building great Metro style apps
  • 47.
    WINDOWS RUNTIME From regular developersstandpoint Windows Runtime is set of API for writing Metro style apps From OS architects standpoint Windows Runtime is a platform that handles low level and high level details of Metro style apps
  • 48.
    WINDOWS RUNTIME DESIGN PRINCIPLES Majorimprovement to developer experience Great Intellisense and tooling Responsive and Fluid Async API where they are needed App-centric Platform Well managed app-to-app contract
  • 49.
    WINRT INTERNALS Communication Technology Wrapper Internally WinRT use COM for class instantiation Windows Runtime works on top of kernel services and effectively wraps part of Windows Native Bits API for ease of use in modern languages Windows Runtime is written in C++ and completely unmanaged Security Relies only on secure part of Windows API and disallows access to unsecure API
  • 50.
    Language Metro style app Support (CLR, WinJS, CRT Language Projection ) UI Pickers Controls Media Web Host (HTML, CSS, Java Windows Metadata XAML Storage Network … Script)) & Namespace Windows Runtime Core Runtime Broker Windows Core
  • 51.
    WINDOWS METADATA Concise, complete descriptionof the Windows Runtime Generated natively from C++ or C#/VB Compiler Efficient binary format derived CLI Metadata Milti-language projection generation Full intellisense on statically known information
  • 52.
    WINDOWS NAMESPACE Windows.* Runtime objectsare in simple unified, hierarchical namespace Great Intellisense and browsing in Visual Studio One Clear type for each function Your apps can add objects that can be seen from any WinRT language
  • 53.
    WINRT TYPESYSTEM Strings HSTRING Avoids copying in multiple languages Basic INT32, Pointers allowed in limited cases Types UINT64 * Enumerati enum Flag or non-flag styles ons AsyncStatus Structures struct Rect; Can contain strings, but not interfaces Simple INT32 [] For very basic collections Arrays Interfaces IInspectable Methods are defined in interfaces Generic IVector<T> Type-generic interface Interfaces Runtime Windows.Sto Binds interfaces to make a class Class rage.StorageF ile
  • 54.
    Language Metro style app Support (CLR, WinJS, CRT Language Projection ) UI Pickers Controls Media Web Host (HTML, CSS, Windows Metadata XAML Storage Network … JavaScript)) & Namespace Windows Runtime Core Runtime Broker Windows Core
  • 55.
    WINRT OBJECT Shell32.dll Object Activation Store (Registry) Windows Metadata (Disk)
  • 56.
    PROJECTIONS C++ App Projection C#/VB App Projection CLR Object HTML App Chakra Projection Windows Metadata
  • 57.
    PROJECTIONS EXAMPLE C++ App STL-style Projection Array C#/VB App IEnumerable CLR (T) style Projection HTML App Chakra JavaScript Projection Associative Collection
  • 58.
    OBJECT CREATION 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 Load DLL End WinRT Object Catalog
  • 59.
    VERSIONING Object Object Windows App Windows App Projection Projection Metadata Metadata v8 v9
  • 60.
    WINDOWS RUNTIME ASYNCHRONY Basic requirementsfor apps Always responsive, ready Long running API must be delivered as async Asynchrony on WinRT level Everything that takes more than 50msec made async IAsyncOperation, IAsyncOperation<T> as “futures” Programming Languages Deep support of “futures” through language projections Async/await keyword in C# 5.0 / VB 11 Promises in C#
  • 61.
    WINRT APIs User Interface HTML5/CSS XAML DirectX Controls Data Binding SVG Tiles Input Accessibility Printing Devices Communications & Data Portabl Sensor Geolocation NFC Contracts Local & Cloud Storage Web e s Notifications Streams Media Playbac Visual Background Capture PlayTo XML Networking SMS k Effects Transfer Fundamentals Application Services Threading/Timers Memory Management Authentication Cryptography Globalization
  • 62.
    THANK YOU Feedback &questions on WIKI