62
ALEXEI SKACHYKHIN iTechArt Group, 2012

Windows 8

Embed Size (px)

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

Page 1: Windows 8

ALEXEI SKACHYKHINiTechArt Group, 2012

Page 2: Windows 8

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

Page 3: Windows 8

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

Page 4: Windows 8

TWO WORLDSOF WINDOWS 8

METRO CLASSIC

Page 5: Windows 8

Hardware & Devices

Page 6: Windows 8

TARGETEDPLATFORMS

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

Page 7: Windows 8

TARGETEDPLATFORMS

Desktop PCs

Page 8: Windows 8

TARGETEDPLATFORMS

Tablets

Page 9: Windows 8

TARGETEDPLATFORMS

Phones

Page 10: Windows 8

TARGETEDPLATFORMS

Gaming Consoles

Page 11: Windows 8

MICROSOFT SURFACE

Page 12: Windows 8

SONY VAIO TAP 20

Page 13: Windows 8

DELL XPS DUO 12

Page 14: Windows 8

Versioning

Page 15: Windows 8

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

Page 16: Windows 8

Hardware Features

Page 17: Windows 8

HARDWAREFEATURES

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

Page 18: Windows 8

HARDWAREFEATURES

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

Page 19: Windows 8

HARDWAREFEATURES

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

Page 20: Windows 8

HARDWAREFEATURES

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

Page 21: Windows 8

Architectural Idioms

Page 22: Windows 8

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

Page 23: Windows 8

ARCHITECTURALIDIOMS

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

Page 24: Windows 8

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

Page 25: Windows 8

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

Page 26: Windows 8

User Interface

Page 27: Windows 8
Page 28: Windows 8

WHAT IS METRO

Typography based design language by MicrosoftFirst appearance on Windows Phone 7

Page 29: Windows 8

METRO DESIGN

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

Page 30: Windows 8

METRO DESIGN

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

Page 31: Windows 8

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

Page 32: Windows 8

METRO DESIGN

Make your application feels like canvas with

lots of things to explore

Page 33: Windows 8

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

Page 34: Windows 8

REVOLUTION OF START MENU

Page 35: Windows 8

Applications

Page 36: Windows 8

WINDOWS STORE APPLICATIONSKey characteristics

Immersive Full screenTouch-optimizedGood for both mobile and desktop

Page 37: Windows 8

WINDOWS STOREAPPLICATIONS

How they got distributed?

Windows Store

Page 38: Windows 8

WINDOWS STORE APPLICATIONSLayout

Snapped Filled Full Screen

Page 39: Windows 8

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

Page 40: Windows 8

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

Page 41: Windows 8

WINDOWSINTEGRATION

How user interacts with contracts?

Charms Bar

Page 42: Windows 8

WINDOWSINTEGRATION

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

Page 43: Windows 8

WINDOWS STORE APPLICATIONSProgramming Alternatives

C++/CX

Page 44: Windows 8

Development

Page 45: Windows 8

WINDOWS 8METRO

How it all works?

Windows Runtime

Page 46: Windows 8

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

WINDOWSRUNTIME

Page 47: Windows 8

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

Page 48: Windows 8

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

Page 49: Windows 8

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

Page 50: Windows 8

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))

Page 51: Windows 8

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

Page 52: Windows 8

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

Page 53: Windows 8

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

Page 54: Windows 8

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))

Page 55: Windows 8

Shell32.dll

Object

IInspectableIUnknown

IStorageItemInformationIStorageItemIStorageFile

Interfaces

FileInformation

Runtime Class

Activation Store (Registry)

Windows Metadata (Disk)

WINRT OBJECT

Page 56: Windows 8

Object

IInspectableIUnknown

Windows Metadata

C++ App

Pro

jecti

on

CLR

C#/VB App

Pro

jecti

on

HTML AppC

hakr

aP

roje

cti

on

PROJECTIONS

Page 57: Windows 8

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

Page 58: Windows 8

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

Page 59: Windows 8

Object

IInspectableIUnknown

Windows Metadata

v8

App

Pro

jecti

on

Future Window

sW

indows 8

Object

IInspectableIUnknown

Windows Metadata

v9

App

Pro

jecti

on

VERSIONING

Page 60: Windows 8

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#

Page 61: Windows 8

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

Page 62: Windows 8

THANK YOUFeedback & questions onWIKI