mike taulty microsoft ltd - sdd...

40
Mike Taulty Developer/Evangelist Microsoft Ltd

Upload: others

Post on 19-Jun-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Mike Taulty Developer/Evangelist Microsoft Ltd

Windows/Phone app building today

Windows Phone Devices Windows Devices

Silverlight XAML

WinRT Win32 Silverlight .NET

C# Code

Windows Phone 8.0 – app platform

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

Silverlight apps on an 8.1 runtime

WinRT

Silverlight XAML

Win32 Silverlight .NET

C# Code

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

sharing across Windows/Phone

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

adapting for form factor – e.g. OneNote

different UX, specialised for form factor

“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

dealing with platform-specific code

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

describing Windows/Phone 8.1 apps

Windows/Phone app manifest files have differences

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