Download - Windows 8
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