universal windows platformprogramando para todos y todas

Post on 07-Feb-2017

27 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Lagash SystemsMariano Sánchez – Software

Architectmarianos@lagash.com

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

Universal Windows PlatformProgramando para todos y todas

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

Introducing the UWP

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

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

Universal Windows Platform The refactored Windows common core

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

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform A single API surface

A guaranteed API surface The same on all devices

PhoneDevice

XboxDevice

DesktopDevice

Windows Core

Universal Windows Platform

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"/>

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

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

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

Developer experience

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

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

Developer unlock

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

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

Adaptive design & code

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

Adaptive designPhone (portrait)

Tablet (landscape) / Desktop

Tailored designPhone (portrait)

Tablet (landscape) / Desktop

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

W 8.1 / WP 8.1 Shared Projects

WindowsBinary Phone

Binary

Not all APIs were available everywhere

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

Testing for capabilities

IsApiContractPresentIsEnumNamedValuePresentIsEventPresentIsMethodPresentIsPropertyPresentIsReadOnlyPropertyPresentIsTypePresentIsWriteablePropertyPresent

Windows.Foundation.Metadata.ApiInformation.

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;} 

demoHello World!

.NET Native

.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

.NET Native There is no runtime

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

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

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

Bridging technologies

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

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

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

Preguntas?

Muchas Gracias

Mariano Sánchez – Software Architect

marianos@lagash.com@marianosz

http://weblogs.asp.net/marianos

top related