universal windows platformprogramando para todos y todas

42
Lagash Systems Mariano Sánchez – Software Architect [email protected] @marianosz http://weblogs.asp.net/ marianos

Upload: mariano-sanchez

Post on 07-Feb-2017

27 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Universal Windows PlatformProgramando para todos y todas

Lagash SystemsMariano Sánchez – Software

[email protected]

@marianoszhttp://weblogs.asp.net/marianos

Page 2: Universal Windows PlatformProgramando para todos y todas

Universal Windows PlatformProgramando para todos y todas

Page 3: Universal Windows PlatformProgramando para todos y todas

Agenda Introducing the UWP Developer experience Adaptive design & code .NET Native Bridging technologies

Page 4: Universal Windows PlatformProgramando para todos y todas

Introducing the UWP

Page 5: Universal Windows PlatformProgramando para todos y todas

Easy for users to get & stay

current

Unified core and app platform

The convergence journey…

Windows Phone 7.5

Windows Phone 8Windows Phone 8.1

Windows 8

Xbox One

Windows on Devices

Xbox 360

Windows 8.1

Windows 10

ConvergedOS kernel

Convergedapp model

Page 6: Universal Windows PlatformProgramando para todos y todas

One Windows

Desktop

PC

2 in 1

Mobile

Tablet

Phablet

Phone

Xbox

Xbox

IoT

Band

Raspberry Pi

Home Automatio

n

Surface Hub

Surface Hub

Holographic

HoloLens

One Windows Platform

Page 7: Universal Windows PlatformProgramando para todos y todas
Page 8: Universal Windows PlatformProgramando para todos y todas
Page 9: Universal Windows PlatformProgramando para todos y todas

Universal Windows Platform The refactored Windows common core

One hardware platform Universal hardware driver Standard network and I/O

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Page 10: Universal Windows PlatformProgramando para todos y todas

Universal Windows Platform A single API surface

A guaranteed API surface The same on all devices

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform

Page 11: Universal Windows PlatformProgramando para todos y todas

Universal Windows PlatformApps don't target Windows 10, apps target the platform:<TargetPlatform Name="Microsoft.Universal" minVersion="10.0.10069.0"

maxVersionTested="10.0.10190.0"/>

Page 12: Universal Windows PlatformProgramando para todos y todas

Universal Windows Platform Windows App: A single binary

Running on any device Testing for capabilities Adjusting to devices

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform

Windows App

Page 13: Universal Windows PlatformProgramando para todos y todas

Universal Windows Platform Platform extensions for Device-specific API

Family-specific capabilities Compatible across devices Unique update cadence Extensions don't invalidate

binaries on other devices

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform

Windows App

Phoneextension

Xboxextension

Desktopextension

Page 14: Universal Windows PlatformProgramando para todos y todas

Universal Windows Platform One Operating System

One Windows core for all devices One App Platform

Apps run across every family One Dev Center

Single submission flow and dashboard One Store

Global reach, local monetization Consumers, Business & Education

Page 15: Universal Windows PlatformProgramando para todos y todas

Developer experience

Page 16: Universal Windows PlatformProgramando para todos y todas

The developer story When writing for iOS,

A developer writes for iPad & iPhone When writing for Android,

A developer writes for all supported devices When writing for Windows 8,

A developer writes for each devices When writing for Windows 10,

A developer writes for every device

Page 17: Universal Windows PlatformProgramando para todos y todas

Visual Studio IDE Every project type

Desktop, Windows, Phone, Service, Web, Game, More… Every developer task

Code edit, Architecture design, UX design, Debug, Profile, Review, Test, More…

Every development language C++/CX, C#, Visual Basic, JavaScript, XAML, HTML, More…

Visual Studio Online Source repository, project management, bug tracking, More…

Blend for Visual Studio The XAML Developer’s IDE

Page 18: Universal Windows PlatformProgramando para todos y todas

Developer unlock

Page 19: Universal Windows PlatformProgramando para todos y todas

Where can I develop? Windows 10

Requires Visual Studio 2015 Windows 8.1 & Windows Server 2012 R2

The Visual Studio designer does not function Debugging requires a Windows 10 device or Remote Debugging

Tools

Page 20: Universal Windows PlatformProgramando para todos y todas

Supported Programming Languages• Visual C# and XAML• Visual Basic and XAML• Visual C++ and DirectX, DirectX/XAML• JavaScript and HTML5

Page 21: Universal Windows PlatformProgramando para todos y todas

Adaptive design & code

Page 22: Universal Windows PlatformProgramando para todos y todas

Adaptive design Responsive design

Flexible layout responds to small changes Many controls handle basic responsiveness

Adaptive design Smart layout adjusts to large changes Features like visual states aid in this design

Tailored design A device-specific app can simplify design Some devices have unique design languages

Page 23: Universal Windows PlatformProgramando para todos y todas

Adaptive designPhone (portrait)

Tablet (landscape) / Desktop

Page 24: Universal Windows PlatformProgramando para todos y todas

Tailored designPhone (portrait)

Tablet (landscape) / Desktop

Page 25: Universal Windows PlatformProgramando para todos y todas

Adaptive code A compatible binary across devices

Universal API with device-specific implementation Light up our app with capabilities

Testing for capabilities and namespaces The device families you choose determines which APIs you can call freely

Page 26: Universal Windows PlatformProgramando para todos y todas

W 8.1 / WP 8.1 Shared Projects

WindowsBinary Phone

Binary

Page 27: Universal Windows PlatformProgramando para todos y todas

Not all APIs were available everywhere

Page 28: Universal Windows PlatformProgramando para todos y todas

Compilation DirectivesC# Syntax

#if WINDOWS_PHONE_APP Windows.Phone.UI.Input.HardwareButtons

.BackPressed += this.HardwareButtons_BackPressed;#endif

C++ Syntax

#if WINAPI_FAMILY==WINAPI_FAMILY_PHONE_APP_backPressedEventToken = HardwareButtons::BackPressed += ref new EventHandler

<BackPressedEventArgs^> (this, &NavigationHelper::HardwareButton_BackPressed);

#endif

Page 29: Universal Windows PlatformProgramando para todos y todas

Testing for capabilities

IsApiContractPresentIsEnumNamedValuePresentIsEventPresentIsMethodPresentIsPropertyPresentIsReadOnlyPropertyPresentIsTypePresentIsWriteablePropertyPresent

Windows.Foundation.Metadata.ApiInformation.

Page 30: Universal Windows PlatformProgramando para todos y todas

Test capabilities at runtime Use Adaptive Code to light-up your app on specific devices

var api = "Windows.Phone.UI.Input.HardwareButtons";if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(api)){

Windows.Phone.UI.Input.HardwareButtons.CameraPressed += CameraButtonPressed;} 

Page 31: Universal Windows PlatformProgramando para todos y todas

demoHello World!

Page 32: Universal Windows PlatformProgramando para todos y todas

.NET Native

Page 33: Universal Windows PlatformProgramando para todos y todas

.NET Native Managed languages are more efficient than ever

Next generation compiler in the cloud Every Windows apps, only Windows app (right now)

Apps use the standard C++ optimizer As optimizer performance improves, so does .Net native

Apps with .Net bootstrapper Includes garbage collection

Page 34: Universal Windows PlatformProgramando para todos y todas

.NET Native There is no runtime

This is machine code Every Windows app will be compiled with .Net Native

Page 35: Universal Windows PlatformProgramando para todos y todas

Benefits with .NET Native Up to 60% performance improvement on cold startup times, 40% on warm startup times

Less memory consumption No dependencies on the .NET Runtime on the system

Page 36: Universal Windows PlatformProgramando para todos y todas

Benefits with .NET Native Performance benefits associated with native code (think C++ performance)

You can still take advantage of the .NET programming model using C# or VB and the existing tools

Page 37: Universal Windows PlatformProgramando para todos y todas

Bridging technologies

Page 38: Universal Windows PlatformProgramando para todos y todas

Windows 10operating system

Bridging technologies

Win32

desktop

Webhosted

JavaAndroid

Obj.CiOS

Universal Windows Platform

WWAC++& CX

.Netlanguages

HTMLDirectXXAML

C++

.Netlanguages

MFCWFWPF

.Netruntime

Traditional Microsoft technologies are not the only way to create Windows apps

Page 39: Universal Windows PlatformProgramando para todos y todas

Bridging technologies Objective-C

iOS code can be reused in a Windows app Android

Android code can be reused in a Windows app to run on Windows Phone

Web Websites can be wrapped to run on Windows

Win32 Classic Windows Apps (CWA) can be packaged as an Appx

Page 40: Universal Windows PlatformProgramando para todos y todas

Bridging technologies Project Islandwood – IOS Bridge

https://dev.windows.com/en-us/uwp-bridges/ios Project Astoria – Android Bridge

https://dev.windows.com/en-us/uwp-bridges/project-astoria Project Westminster – Web Bridge

https://dev.windows.com/en-us/uwp-bridges/web-apps Project Centennial – Win32 Bridge

https://projectipreviewsignup.windows.com

Page 41: Universal Windows PlatformProgramando para todos y todas

Preguntas?

Page 42: Universal Windows PlatformProgramando para todos y todas

Muchas Gracias

Mariano Sánchez – Software Architect

[email protected]@marianosz

http://weblogs.asp.net/marianos