2. 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
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
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
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
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
32. METRO Make your application feels
like canvas with lots of
DESIGN things to explore
33. 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
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 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
47. 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
48. 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
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 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
52. 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
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 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#
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