windows 8 hot or not
DESCRIPTION
Windows 8 as seen by developer. Overview of Metro style app development.TRANSCRIPT
Windows 8Hot or Not
Piotr Włodek
Agenda
MetroCharm
sContract
s WinRT
App Execution Environment
Motion Summary
Metro UI
Metro Design
Metro Design
• Typography• Motion• Content not Chrome
Photoshop METRO’ified
• Tile notification– Square or wide– Badge (number or glypth)
• Toast notification– Standard toast, 7 sec (e-mail, IM, social
media)– Long duration toast, 30 sec (person
waiting)
• Push notification–Windows Push Notification Services
Notification
WIN 8 LOOK’N’FEEL
Charms
• Search• Share• Start• Devices• Settings
Contracts
• Web of Applications–Sharing Contract–Picker Contract–Search Contract–More!
What is Windows Runtime ?
• OO API for writing Metro style applications• Written in native C++• Tuned for performance• Supports type reflection through
metadata• Supports many languages though
projections• Part of Windows, build each time OS is
compiled
Language SupportC#
XAML 5
apps
C++ Direct
X 2 apps
JS HTML
22 apps
• 29 apps in total• In Dev Preview: –75% JS, –17% C#, –8% C++
Windows Runtime
Is .NET dead ?
.NET Framework 4.5
• Preinstalled in Windows 8• No support for Windows XP
WinRT vs Silverlight
SL5
WinRT4396
1582
607
• Type comparison
WinRT vs Silverlight
SL5WinRT
10375
651
• Member comparison
4222
.NET Metro Profile
• Subset of Client Profile• No Remoting• No System.Data• No System.Web• No server side WCF• No private reflection, no Emit• Some API only in async version
DEMO – METRO IN C++
What is included in WinRT ?
Windows::UI
• Comparable set to Silverlight
• Lots of new controls:– WebView– MediaElement– MediaPlayer– GridView– FlipView– ApplicationBar
Windows::UI:Input
• Gone– Mouse events– Touch events– Stylus events
• Still There– Keyboard events– Manipulation events
• New– Pointer events– Tap, DoubleTab, RightTap
Windows::UI::Media::Animations::Transition
• Transitions for UIElement, Panel, ContentControl, and ItemsControl–Entrance Transition–Reposition Transition–Reorder Transition–AddDelete Transitions–Content Transitions
Windows::Storage::Pickers
• 2 types of pickers:–File Picker–Folder Picker
• Your app can show its content in either of these pickers
DEMO – METRO IN C#
Custom WinRT objects
• Share objects across all languages• Languages– C++/CX : speed– C#/VB : Ease of use
• Restrictions apply– Sealed classes– Exposed through an interface– Public API can only expose WinRT objects
DEMO – WINRT OBJECT IN C#
Application Execution Environment
App.exe WinRTAPIs OS
Direct API calls
BrokerBrokered API calls
Your App
App Container + Signed & verified code
Process state transition
Running App
Suspended App
Suspending
Resuming
Terminated
App
Low resources
What is not supported ?
• No { DynamicResource }• Poor WritableBitmap• Poor data binding• No default implementation for
IObservableVector<T>• 2 manifestations of INPC• No overlapping windows (no
MessageBox)
Common pitfals
• Code behind namespaces• XAML namespaces• DP• Custom controls and styles• ObservableCollectionxmlns:views=”using:My.Custom.Views”
Getting Windows 8 Dev Prev
• Windows 8 Developer Preview with developer tools English, 64-bit (x64)– 4.8 GB – DVD dual layer or pendrive 8GB– VS 2011 Express– Blend 5 Preview (Works only with HTML5/CSS)
• Windows 8 Developer Preview English, 64-bit• Windows 8 Developer Preview English, 32-bit• Visual Studio 2011 Ultimate Dev Prev
Reference
• MSDN Metro Guide:– http://msdn.microsoft.com/en-us/windows/apps
• Building Windows 8 Blog:– http://blogs.msdn.com/b/b8/
• BUILD Videos:– http://www.buildwindows.com/
• WinRT Transitions– http://bit.ly/vZU4fd
• WinRT vs SL5 comparison– http://bit.ly/spEtNE
Piotr Włodek
mail: [email protected] blog: http://pwlodek.blogspot.com twitter: @pwlodek