Universal Windows Platform (UWP) es la propuesta de Microsoft para poder desarrollar una única aplicación que corra en toda la plataforma Windows (IOT, PC, Mobile, Xbox, HoloLens) utilizando una nueva API existente en todos los dispositivos con Windows 10. En esta sesión revisaremos los fundamentos de esta tecnología.
5. Easy for users to
get & stay current
Unified core
and app platform
Windows 10
Converged
OS kernel
Converged
app model
6. One Windows
Desktop
PC
2 in 1
Mobile
Tablet
Phablet
Phone
Xbox
Xbox
IoT
Band
Raspberry Pi
Home
Automation
Surface Hub
Surface Hub
Holographic
HoloLens
One Windows Platform
30. var api = "Windows.Phone.UI.Input.HardwareButtons";
if (Windows.Foundation.Metadata.ApiInformation.IsTypePresent(api))
{
Windows.Phone.UI.Input.HardwareButtons.CameraPressed
+= CameraButtonPressed;
}
38. Windows 10
operating system
Bridging technologies
Win32
desktop
Web
hosted
Java
Android
Obj.C
iOS
Universal Windows Platform
WWAC++
& CX
.Net
languages
HTML
DirectX
XAML
C++
.Net
languages
MFCWFWPF
.Net
runtime
Platform convergence has been a journey which ends today with Windows 10
We started by bringing Internet Explorer to Windows Phone 7.5 and even Xbox 360. With the release of Windows 8 we laid the foundation with the windows kernel, drivers etc. Windows Phone 8 took advantage of this. Xbox One was built on top of Windows 8 and even used the same runtime so developer could write apps in HTML/WinJS the same framework as available on Windows 8.
With the release of Windows Phone 8.1 the runtimes from Windows 8.1 and phone came together as well. Over 90% API convergence and things like Windows Notification Services, sharing contracts, live tiles etc started to come together.
Our endpoint Threshold brings together everything, the foundation is the same, kernel, drivers etc. The application platform is the same and we will go into a little bit more detail later in this presentation.
Here’s an example of an app that used adaptive controls on:
a Phone -- [click to build slide]
a Tablet in portrait -- [click to build slide]
and a PC in landscape
The same elements are present across all three, but the layout has adapted. – [click to build slide]
For example, we can see the command bar across all three screens:
On the phone, space is limited and the command pbar is collapsed to a menu icon on the left to show the commands and a search icon on the right.
On the tablet, there is enough room to show the commands along with a search icon
And on the PC, the coamand bart has enough space to adapt to show all the commands plus a full search box
[next slide]
Adaptive controls are great, but we know there will be cases where the app designer wants to do something more custom or more tailored than the adaptive controls will allow.
This desire might be motivated by hardware differences. For example, an app that will run on an Xbox might want to create some customizations for navigation using a game controller.
Or it might be motivated by screen size and usability. A designer might want to position a menu at the bottom of a phone screen to make it more usable with a single hand.
For these cases, we enable developers to create what we call a tailored user experience. In this case, the code is the same, but the developer creates custom XAML to deliver the desired design on the right device or in the right set of conditions.
Tailored design goes beyond Adaptive UX
Developers can create custom experiences for certain devices
The code is the same, but custom XAML can deliver the experience a developer wants
Or perhaps you could use the IsEventPresent to test for events such as:
CameraHalfPressed Occurs when the user presses the hardware camera button halfway.
CameraPressed Occurs when the user presses the hardware camera button.
CameraReleased Occurs when the user releases the hardware camera button.
.NET Native is a precompilation technology for building Universal Windows apps in Visual Studio 2015. The .NET Native toolchain will compile your managed IL binaries into native binaries. Every managed (C# or VB) Universal Windows app will utilize this new technology. The applications are automatically compiled to native code before they reach consumer devices. If you’d like to dive deeper in how it works, I highly recommend reading more on it at MSDN.
How does .NET Native impact me and my app?
Your mileage likely will vary, but for most cases your app will start up faster, perform better, and consume fewer system resources.
.NET Native is a precompilation technology for building Universal Windows apps in Visual Studio 2015. The .NET Native toolchain will compile your managed IL binaries into native binaries. Every managed (C# or VB) Universal Windows app will utilize this new technology. The applications are automatically compiled to native code before they reach consumer devices. If you’d like to dive deeper in how it works, I highly recommend reading more on it at MSDN.
How does .NET Native impact me and my app?
Your mileage likely will vary, but for most cases your app will start up faster, perform better, and consume fewer system resources.
Up to 60% performance improvement on cold startup times
Up to 40% performance improvement on warm startup times
Less memory consumption of your app when compiled natively
No dependencies on the desktop .NET Runtime installed on the system
Since your app is compiled natively, you get the performance benefits associated with native code (think C++ performance)
You can still take advantage of the industry-leading C# or VB programming languages, and the tools associated with them
You can continue to use the comprehensive and consistent programming model available with .NET– with extensive APIs to write business logic, built-in memory management, and exception handling.
You get the best of both worlds, managed development experience with C++ performance. How cool is that?
Up to 60% performance improvement on cold startup times
Up to 40% performance improvement on warm startup times
Less memory consumption of your app when compiled natively
No dependencies on the desktop .NET Runtime installed on the system
Since your app is compiled natively, you get the performance benefits associated with native code (think C++ performance)
You can still take advantage of the industry-leading C# or VB programming languages, and the tools associated with them
You can continue to use the comprehensive and consistent programming model available with .NET– with extensive APIs to write business logic, built-in memory management, and exception handling.
You get the best of both worlds, managed development experience with C++ performance. How cool is that?