Template Setup Guides & Guidelines

Mariano Sánchez – Software Architect
marianos@lagash.com
@marianosz
http://weblogs.asp.net/marianos





Introducing the UWP
Developer experience
Adaptive design & code
.NET Native
Bridging technologies
Unified core
and app platform
Converged
OS kernel
Converged
app model
Windows 10
Easy for users to
get & stay current
One Windows Platform
One Windows
Desktop
Mobile
Xbox
Xbox
IoT
PC
Tablet
Band
2 in 1
Phablet
Raspberry Pi
Phone
Home
Automation
Surface Hub
Surface Hub
Holographic
HoloLens
Windows Core
Desktop
Phone
Xbox
Device
Device
Device
Universal Windows Platform
Windows Core
Desktop
Phone
Xbox
Device
Device
Device
<TargetPlatform
Name="Microsoft.Universal"
minVersion="10.0.10069.0"
maxVersionTested="10.0.10190.0"/>
Windows App
Universal Windows Platform
Windows Core
Desktop
Phone
Xbox
Device
Device
Device
Windows App
Desktop
Phone
Xbox
extension
extension
extension
Universal Windows Platform
Windows Core
Desktop
Phone
Xbox
Device
Device
Device
Supported Programming Languages
• Visual C# and XAML
• Visual Basic and XAML
• Visual C++ and DirectX, DirectX/XAML
• JavaScript and HTML5
Tablet (landscape) / Desktop
Phone (portrait)
Tablet (landscape) / Desktop
Phone (portrait)
W 8.1 / WP 8.1 Shared Projects
Windows
Binary
Phone
Binary
Not all APIs were available everywhere
Compilation Directives
C# 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
Windows.Foundation.Metadata.ApiInformation.
IsApiContractPresent
IsEnumNamedValuePresent
IsEventPresent
IsMethodPresent
IsPropertyPresent
IsReadOnlyPropertyPresent
IsTypePresent
IsWriteablePropertyPresent
var api = "Windows.Phone.UI.Input.HardwareButtons";
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(api))
{
Windows.Phone.UI.Input.HardwareButtons.CameraPressed
+= CameraButtonPressed;
}
Hello World!
.NET Native
Bridging technologies
WPF
WF
MFC
XAML
DirectX
.Net
.Net
C++
languages
languages
& CX
HTML
WWA
C++
.Net
runtime
Obj.C
Java
Web
Win32
iOS
Android
hosted
desktop
Bridging technologies
Universal Windows Platform
Windows 10
operating system
https://dev.windows.com/en-us/uwp-bridges/ios
https://dev.windows.com/en-us/uwp-bridges/project-astoria
https://dev.windows.com/en-us/uwp-bridges/web-apps
https://projectipreviewsignup.windows.com
Muchas Gracias
Mariano Sánchez – Software Architect
marianos@lagash.com
@marianosz
http://weblogs.asp.net/marianos