Windows 8 Hot or Not Piotr Włodek
Agenda MetroCharms Contracts WinRT App Execution Environment Motion Summary
Metro UI
Metro Design
Typography Motion Content not Chrome
Photoshop METRO’ified
WIN 8 LOOK’N’FEEL
Application layout Display orientation –Landscape –Portrait –Flipped Application layout –Fullscreen –Fill –Snapped
Application layout Fullscreen view (100 %)
Application layout Snapped view (25 %) Fill view (75 %)
Tile notification (live tiles) –Square or wide –Badge (number or glypth) Notification
Toast notification –Standard toast, 7 sec ( , IM, social media) –Long duration toast, 30 sec (person waiting) Notification
Push notification –Windows Push Notification Services (WNS) Notification
Windows 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
Windows Runtime
Language Support 29 apps in total In Dev Preview: –75% JS, –17% C#, –8% C++
Is.NET dead ?
.NET Framework 4.5 Preinstalled in Windows 8 No support for Windows XP WPF 4.5 –Ribbon out of the box –Binding to static properties –Collections on non-UI thread –Async validation (INotifyDataErrorInfo) –Huge VirtualizingStackPanel perf improvements
WinRT vs Silverlight SL5 WinRT Type comparison
WinRT vs Silverlight SL5 WinRT Member compariso n 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 –AppBar
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::Picker s 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 primitive types and WinRT objects
DEMO – WINRT OBJECT IN C#
Application Execution Environment App.exe WinR T APIs OS Direct API calls Broker Brokered 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 2 manifestations of INPC No overlapping windows (no MessageBox)
Common pitfals Code behind namespaces XAML namespaces DP Custom controls and styles ObservableCollection xmlns:views=”using:My.Custom.Views”
Getting Windows 8 DP 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: – Building Windows 8 Blog: – BUILD Videos: – WinRT Transitions – WinRT vs SL5 comparison –
Piotr Włodek blog: