mike taulty microsoft ltd - sdd...
TRANSCRIPT
HTML
Win32
JavaScript Code
WinRT
C++ Code C# Code
HTML XAML XAML
Windows XAML
WinJS .NET for Windows Store
Windows 8.1 – app platform
common between Windows (8.1)/Phone (8.0)
C# Code
Windows App Windows Phone App
.NET APIs Common
Available Subset
WinRT APIs Common
Available Subset
Win32 APIs CAS callable on Phone 8.0 via custom WinRT components
.NET portable class libraries
binary assembly targets a set of platforms can only make use of APIs available on all of the targeted platforms
Windows 8.1 App Windows Phone App
architecting for portability today...
XAML View XAML View
XAML View XAML View
XAML View XAML View
XAML View XAML View
Portable Class Libraries
ViewModel ViewModel
ViewModel
ViewModel Model
ViewModel ViewModel
Service Interface
ViewModel ViewModel Portable Algorithms etc
binds binds
Service Implementation Service
Implementation Service Implementation
injected at runtime
Service Implementation Service
Implementation Service Implementation
injected at runtime
update for all phones running 8.0 runs all existing apps and games continue to rev/publish 8.0 code new UI models, runtimes & APIs for 8.1
Cortana voice assistant Action center Start screen personalization Lock screen personalization Word Flow keyboard Calendaring Music, Video, Podcasts Data Sense, Storage Sense, WiFi Sense Enterprise features – VPN, etc. Project your phone display Many, many more
WinRT Win32
Windows Phone 8.1 – platform changes
WinRT WinRT WinRT Silverlight .NET
App/game targeting 8.1
.NET for Windows Store
HTML
Win32
JavaScript Code
Windows & Phone 8.1 apps
WinRT
C++ Code C# Code
HTML XAML XAML
Windows XAML
WinJS .NET for Windows Store
Windows/Phone is still two apps, sharing more
Windows Phone 8.1 App Windows 8.1 App
XAML View Phone UI
XAML View Windows UI
Portable Code
WinRT
Windows/Phone is still two apps, sharing more
Windows Phone 8.1 App Windows 8.1 App
XAML View XAML UI
XAML View XAML UI
C# Code
WinRT Win32 .NET
different form factors/usage patterns
single user device primary use is “on the go” input is touch, voice, camera variety of small, high-res screens common set of sensors (GPS etc) battery is critical limited memory/storage limited hardware extensibility
multi-user device mobile is one mode of use many combined modes of input diversity of screen sizes, resolutions diversity of sensors battery is important more memory, storage full hardware extensibility
“XAML” User Interface for Windows/Phone 8.1
same variant of XAML
same libraries, same controls (where common)
same rendering engine
“XAML” controls on Windows/Phone 8.1
common, same rendering
Button
Slider
ToggleSwitch
ProgressBar
etc (many more)
common, similar rendering, different content
Hub
ListView GridView etc.
common, different rendering
DatePicker
TimePicker CommandBar AppBar etc.
unique
SearchBox
Pivot ContentDialog AutoSuggestBox etc.
WinRT across Windows/Phone 8.1
Windows Phone 8.1 Windows 8.1
some common APIs may have different behaviour across Windows/Phone
e.g. search contract e.g. multiple windows e.g. resizable windows e.g. printing support
e.g. action center e.g. phone dialler
e.g. of unified WinRT APIs for Windows/Phone
files & settings: local, temp, roaming, pickers…
network: http, websockets, sockets…
notifications: tiles, toasts, badges, push
store: app purchases, receipts…
sensors: gps, geofencing, gyro, compass…
lifecycle: launch, suspend, resume, background tasks
localisation: resource resolution from XAML/code…
dealing with platform-specific code
conditional compilation partial classes/methods inheritance extensions
packaging/publishing Windows/Phone 8.1 apps
unified developer registration, agreement & submission policy
separate Stores/submission for Windows/Phone 8.1 apps
unified application packaging format (appx)
unified Store capabilities (pricing, trials, purchases etc)
enterprise options for Windows/Phone 8.1 app deployment
unified application update policy (default: auto update)
naming/linking of Windows/Phone 8.1 apps
unique app name across Windows/Phone stores
developer can choose to link their Windows/Phone apps via package name
app bought once durable in-app purchases bought once app state roams across all devices
summary
build apps with .NET, JavaScript, C++
greater unification of the Windows/Phone 8.1 platforms
commonality of Store across Windows/Phone 8.1
common APIs across Windows/Phone 8.1
existing “MVVM” approach still valid – good practice and opens the door to porting to other platforms