Networking Proximity In-App Purchase Sensors Location File System Core app model Threading Windows Phone 8
Networking Proximity In-App Purchase Sensors Location File System Core app model Threading Windows Phone 8
Model View (XAML) ViewModel
Model View (XAML) ViewModel
Portable Class Libraries Windows 8 Windows Phone 8 Services ViewModels (limited or abstract) Models Views (XAML) App Lifecycle Navigation Views (XAML) Converters Shared ViewModels (Add as Link) Storage, Alerts
Portable Class Libraries Windows 8 Windows Phone 8 Services ViewModels (limited or abstract) Models Views (XAML) App Lifecycle Navigation Views (XAML) Converters Shared ViewModels (Add as Link) Storage, Alerts Model View (XAML) ViewModel
Portable Class Libraries Windows 8 Windows Phone 8 Services ViewModels (limited or abstract) Models Views (XAML) App Lifecycle Navigation Views (XAML) Converters Shared ViewModels (Add as Link) Storage, Alerts Model View (XAML) ViewModel
Portable Class Libraries Services ViewModels (limited or abstract) Models
Shared ViewModels (Add as Link) Storage, Alerts Portable Class Libraries Services ViewModels (limited or abstract) Models
DispatcherTimer _dt; _dt = new DispatcherTimer(); _dt.Interval = new TimeSpan(0, 0, 0, 1); _dt.Tick += _dt_Tick; _dt.Start(); // Windows 8 void _dt_Tick(object sender, object e) { … } // Windows Phone 8 void _dt_Tick(object sender, EventArgs e) { … }
DispatcherTimer _dt; _dt = new DispatcherTimer(); _dt.Interval = new TimeSpan(0, 0, 0, 1); #if NETFX_CORE _dt.Tick += _dt_Tick_Win8; #elif WINDOWS_PHONE _dt.Tick += _dt_Tick_WinPhone; #endif _dt.Start(); void _dt_Tick_Win8(object sender, object e) { … } void _dt_Tick_WinPhone(object sender, EventArgs e) { … }
Windows 8 Windows Phone 8 Views (XAML) App Lifecycle Navigation Views (XAML) Converters Shared ViewModels (Add as Link) Storage, Alerts Portable Class Libraries Services ViewModels (limited or abstract) Models
Windows 8 XAMLWindows Phone 8 XAML
<Slider Value="{Binding HueLight1.Red, Mode=TwoWay}“ PointerExited="OnPointerExited1" /> private void OnPointerExited1(object sender, PointerRoutedEventArgs e) { ((HueClientViewModel)this.DataContext).UpdateLight1.Execute(null); } XAML XAML.CS
Windows Phone 8 800x480, 1280x720, 1280x768 Portrait, Landscape <5 inch screen Windows x768 - huge Landscape, Portrait, Snapped +10 inch screens
Semantic Zoom Pivot
GridView LongListSelector
Portable Class Libraries Windows 8 Windows Phone 8 Services ViewModels (limited or abstract) Models Views (XAML) App Lifecycle Navigation Views (XAML) Converters Shared ViewModels (Add as Link) Storage, Alerts Platform Specific Different XAML Different Controls Same DataBindings Same Commands for Key Interactions Converters
Portable Class Libraries Windows 8 Windows Phone 8 Services ViewModels (limited or abstract) Models Views (XAML) App Lifecycle Navigation Views (XAML) Converters Shared ViewModels (Add as Link) Storage, Alerts Model View (XAML) ViewModel