Shared Windows Core
Enterprise-class computing
to mobile devices
• Windows 8, Windows RT, Windows
Phone 8, Windows 8 Embedded, and
Windows Server 2012
• Running reliably on 1.3+ billion
computing devices
Windows Phone 8
800x480, 1280x720, 1280x768
Portrait, Landscape
<5 inch screen
Design a native UX for each platform!
LayoutAwarePage : Page
GridView
FlipView
ListView
AppBar
(“second” PivotPage
here)
LongListSelector
ApplicationBar
Pivot
PhoneApplicationPage
Windows 8
Windows Phone 8
C# / VB /
C++
C++ JS
XAML
DirectX 11.1
HTML5 &
CSS3
MVVM* www*
WinJS
LanguageUILayerFrameworks
MVVM: (Model, View, ViewModel) : Okra, MVVMLight, Caliburn.Micro … http://nuget.org/
WWW: jQuery, Cordova, Backbone, Knockout …
3
Portability to iOS, MacOS,
Linux, Android
Windows 8
Windows Phone 8
C# / VB /
C++
C++ JS
XAML
DirectX 11.1
HTML5 &
CSS3
MVVM* www*
LanguageUILayerFrameworks
Xamarin
http://xamarin.com/
Monogame
http://monogame.net/
Cordova/PhoneGap
http://phonegap.com/
x
Toolkits
View
ViewModel
CommandsData
Binding
Events
/Messages
View
ViewModel
Messages,
Callbacks
Model
Windows 8 Programming APIs
Windows Phone 8
supports:
 Managed app dev using the
WP7.1, WP8.0 .NET and
Windows Phone Runtime APIs
 Native app dev using Windows
Runtime and Win32
 Games dev using the WP7.1
XNA framework
 Games dev using Direct3D or
DirectX
Windows Phone 8 Programming APIs
.NET API for
Windows
Phone
Windows
Runtime
Win32 &
COM
Managed Managed &
Native
Native
WP7.1 XAML & C#/VB
WP8.0 XAML & C#/VB
WP8.0 Games DirectX/Direct 3D & C++
WP7.1 XNA & C#/VB
WP8.0 XAML & C#/VB with Direct3D Graphics
+ C++
+ C++

Technical windows 8 and windows phone 8 apps

Editor's Notes

  • #2 Enterprise class > windows NT kernel into phone (same as server, windows deskltop…) 1.3b devices today! Driver model == same
  • #3 Common UX!
  • #4 Form factors are a major concern when designing the UI for a cross-platform app. You need to consider the different screen resolutions, screen sizes, and default device orientations. This will significantly impact how your app should display information to the user. It may not make sense to include all features of your Windows 8 app in your Windows Phone 8 app.
  • #5 This is a comparative list of some significant differences that impact the UX on the two platforms. All of these considerations mean that each platform requires a separate UX design.
  • #6 Each library of controls is optimized for that platform. It is also recommended that you design your own user controls separately for each platform. Not only does this maintain a consistent user-experience on each platform, but it reduces the likelihood of bugs from porting the XAML. Note: Visual Studio templates create a LayoutAwarePage, a subclass of the Page class in the raw API. LayoutAwarePage is a subclass of Page (the raw API) and provides some nice additional features: Application view state to visual state mapping GoBack, GoForward, and GoHome event handlers Mouse and keyboard shortcuts for navigation State management for navigation and process lifetime management A default view model
  • #7 Each library of controls is optimized for that platform. It is also recommended that you design your own user controls separately for each platform. Not only does this maintain a consistent user-experience on each platform, but it reduces the likelihood of bugs from porting the XAML. Note: Visual Studio templates create a LayoutAwarePage, a subclass of the Page class in the raw API. LayoutAwarePage is a subclass of Page (the raw API) and provides some nice additional features: Application view state to visual state mapping GoBack, GoForward, and GoHome event handlers Mouse and keyboard shortcuts for navigation State management for navigation and process lifetime management A default view model
  • #10 ViewModels act as converters between the way data is stored in the Model and the way data is presented in the View. MVVM is a variation of the MVC (Model-View-controller) pattern. One of the key distinctions between MVVM and MVC is that MVVM includes data binding. Message passing is a good way to communicate between ViewModels within an app. Using a Mutex can help synchronize communication between the ViewModels and the Model.
  • #12 WP7 : Silverlight & XNA WP8: (+WP7) plus moar 100,000 apps already wp7 .. Didn’t throw them away C++ example is SQLite