Windows 8

Preview:

DESCRIPTION

This presentation gives you insight into world of Windows 8. It primarily focused on internals of Windows Runtime and how it all works together.

Citation preview

ALEXEI SKACHYKHINiTechArt Group, 2012

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 8Developer Preview

September 13

Windows 8Consumer Preview

February 29

Windows 8Release Preview

May 31

Windows Phone 8,

Xbox 720

Windows 8Release

October 26

Windows 8RTM

August 1

TWO WORLDSOF WINDOWS 8

METRO CLASSIC

Hardware & Devices

TARGETEDPLATFORMS

Windows 8 is effective combination of mobile and desktop OSAll of the versions of Windows 8 have shared core

TARGETEDPLATFORMS

Desktop PCs

TARGETEDPLATFORMS

Tablets

TARGETEDPLATFORMS

Phones

TARGETEDPLATFORMS

Gaming Consoles

MICROSOFT SURFACE

SONY VAIO TAP 20

DELL XPS DUO 12

Versioning

VERSIONS

Windows 8 ProAdvanced version of Windows 8 for businessRuns on PC and x86-based tabletsEnhanced virtualization, file system encryption

Windows 8Baseline version of Windows 8 for consumersRuns on PC and x86-based tablets

Windows RTSpecial version of Windows 8 for ARMRuns only on ARM-based tablets and PCsSupports only METRO part of the OSCannot be purchased, preinstalled on device

Windows Phone 8Special version of Windows 8 for mobile phonesSupports only METRO part of the OSStill has a lot of differences despite shared OS coreCannot be purchased, preinstalled on device

Windows 8 EnterpriseAdvanced version of Windows 8 for enterpriseRuns on PCEnhanced virtualization, advanced securityPC management and deploymentWindows To Go

Hardware Features

HARDWAREFEATURES

Support for System-on-ChipWindows 8 support SoC architectures, including ARMSupport for low-power SoC

HARDWAREFEATURES

UEFIWindows 8 support UEFI and UEFI Secure Boot featureSufficient hardware foundation for next-gen devices Reduces risk of boot loader attacks

HARDWAREFEATURES

VirtualizationHyper-V virtualization build into baseline Windows 8Dynamic, reliable, scalable virtualization platform

HARDWAREFEATURES

Kernel HibernationWindows 8 saves kernel memory on hard disk on shutdownDramatically reduced boot timeWorks in conjunction with multi-core boot

Architectural Idioms

ARCHITECTURALIDIOMS

Cloud-connected Operating SystemWindows 8 uses cloud as file storageWindows 8 uses cloud as synchronization hub Windows 8 uses cloud as authentication service Windows 8 uses cloud as computing platform

ARCHITECTURALIDIOMS

Everything is hardware acceleratedHardware accelerated UI by Direct2D and Direct3DHardware accelerated computations by DirectComputeHardware accelerated kernel routines by DirectCompute

ARCHITECTURALIDIOMS

Asynchrony on the Operating System levelEverything that may take longer then 50msec made asynchronousConcept of “futures” on the Operating System levelFast and fluid UI is primary objective

HTMLJS

CC++

C#VB

Desktop Apps

Win32.NET SL

Internet

Explorer

Communication & Data

Application Model

Devices & Printing

Windows Runtime APIs

Graphics & Media

Syst

em

Serv

ices

JavaScript(Chakra)

C/C++ C#, VB

Metro style Apps

XAML HTML / CSSVie

wM

odel

Contr

olle

r

Windows Kernel ServicesKern

el

User Interface

WHAT IS METRO

Typography based design language by MicrosoftFirst appearance on Windows Phone 7

METRO DESIGN

Content-centric UIFocus on what`s really mattersNo useless graphicsFeels light and responsive

METRO DESIGN

Touch-basedTouch-based design languageEverything should be easily reachableAlmost everything is clickable

METRO DESIGNElements of METRO style UI are aligned to 20px grid

METRO DESIGN

Make your application feels like canvas with

lots of things to explore

METRO DESIGNDesign made easy with clear guidelines Microsoft has clear guidelines on everythingFonts, colors and positioning are driven by guidelinesGuideline not a rule

Visit next resourcesFont guidelines

Color guidelinesLayout guidelines

REVOLUTION OF START MENU

Applications

WINDOWS STORE APPLICATIONSKey characteristics

Immersive Full screenTouch-optimizedGood for both mobile and desktop

WINDOWS STOREAPPLICATIONS

How they got distributed?

Windows Store

WINDOWS STORE APPLICATIONSLayout

Snapped Filled Full Screen

RunningApp

Suspended

App

suspendingTerminated

AppLow

Memoryresuming

App gets 5 seconds to work after suspend

message

Apps are not notified before they are

terminated

Apps are notified when they have been

resumed

User Launche

s App

WINDOWS STORE APPLICATIONSApplication Lifetime

WINDOWSINTEGRATION

ContractsApplications play together via ContractsApplication and OS play together via ExtensionsContract is a well-defined interface that app can implementContracts are managed by WinRT through system registry

WINDOWSINTEGRATION

How user interacts with contracts?

Charms Bar

WINDOWSINTEGRATION

ExtensionsAgreement between app and WindowsAllows to customize standard featuresUsually require no user interaction

WINDOWS STORE APPLICATIONSProgramming Alternatives

C++/CX

Development

WINDOWS 8METRO

How it all works?

Windows Runtime

The Windows Runtime is the solid, efficient foundation for building great Metro style apps

WINDOWSRUNTIME

WINDOWSRUNTIMEFrom regular developers standpointWindows Runtime is set of API for writing Metro style appsFrom OS architects standpointWindows Runtime is a platform that handles low level and high level details of Metro style apps

WINDOWS RUNTIMEDESIGN PRINCIPLESMajor improvement to developer experienceGreat Intellisense and toolingResponsive and FluidAsync API where they are needed

App-centric PlatformWell managed app-to-app contract

WINRTINTERNALSCommunication TechnologyInternally WinRT use COM for class instantiation

Native BitsWindows Runtime is written in C++ and completely unmanaged

WrapperWindows Runtime works on top of kernel services and effectively wraps part of Windows API for ease of use in modern languages

SecurityRelies only on secure part of Windows API and disallows access to unsecure API

Windows Metadata & Namespace

Language Projection

Windows Core

Windows Runtime Core

XAMLStorag

e…Network

UI Pickers MediaControls

Metro style app

Runtime Broker

Language Support (CLR, WinJS, CRT)

Web Host (HTML, CSS, JavaScript))

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

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

WINRT TYPESYSTEM

Windows Metadata & Namespace

Language Projection

Windows Core

Windows Runtime Core

XAMLStorag

e…Network

UI Pickers MediaControls

Metro style app

Runtime Broker

Language Support (CLR, WinJS, CRT)

Web Host (HTML, CSS, JavaScript))

Shell32.dll

Object

IInspectableIUnknown

IStorageItemInformationIStorageItemIStorageFile

Interfaces

FileInformation

Runtime Class

Activation Store (Registry)

Windows Metadata (Disk)

WINRT OBJECT

Object

IInspectableIUnknown

Windows Metadata

C++ App

Pro

jecti

on

CLR

C#/VB App

Pro

jecti

on

HTML AppC

hakr

aP

roje

cti

on

PROJECTIONS

Array

IInspectableIUnknown

IVector<T>

IVectorView<T>

IObservableVector<T>

Associative Collection

IInspectableIUnknown

IMap<T>

IMapView<T>

IObservableMap<T>

C++ AppSTL-style Projection

CLR

C#/VB AppIEnumerable

(T) style Projection

HTML App

Chakra

JavaScriptProjection

PROJECTIONS EXAMPLE

Start

App asks to create object

Pass Name to RoActivateInst

ance

Find DLL using Catalog Load DLL

Call DllGet-ActivationFact

ory

Object created by

implementation code

IInspectable returned

Projection creates wrapper (using

metadata)

Object bound to wrapper

Wrapper returned to

App

End

App

Projection

WinRT Object

Manager

WinRT Object

OBJECT CREATION

Object

IInspectableIUnknown

Windows Metadata

v8

App

Pro

jecti

on

Future Window

sW

indows 8

Object

IInspectableIUnknown

Windows Metadata

v9

App

Pro

jecti

on

VERSIONING

WINDOWS RUNTIMEASYNCHRONYBasic requirements for apps

Always responsive, readyLong running API must be delivered as async

Asynchrony on WinRT levelEverything that takes more than 50msec made asyncIAsyncOperation, IAsyncOperation<T> as “futures”

Programming LanguagesDeep support of “futures” through language projectionsAsync/await keyword in C# 5.0 / VB 11Promises in C#

DevicesSensor

sGeolocatio

nPortabl

eNFC

Communications & DataContracts

XML

Web

SMSNetworking

Notifications

Local & Cloud Storage

Streams

Background Transfer

User InterfaceHTML5/CSS XAML DirectX Controls

Input Accessibility Printing

Data Binding

TilesSVG

FundamentalsApplication

ServicesAuthenticatio

nCryptography

Globalization

Memory Management

Threading/Timers

MediaVisual Effects

Playback

PlayToCapture

WINRT APIs

THANK YOUFeedback & questions onWIKI

Recommended