Universal Windows Platform

Windows, prior to the release of Windows 8 (and Windows runtime), exposed a flat set of Windows APIs and COM extensions, allowing developers to access system-level functions. .NET modules that rely on these functions, included the invokes to this API layer in order to make use of the operating system-level functionality.

Windows Runtime (WinRT) provided a more accessible and managed development interface that is available for a wide range of development languages. WinRT can be used in common .NET languages (C# and VB), as well as C++ and JavaScript.

Using the common ground WinRT created, UWP provided the much needed convergence of multiple platforms within the Microsoft ecosystem. Developers were able to create applications using the same SDK for various devices, which were esoteric targets. Using the UWP development tools, applications with shared modules and user interfaces can target desktop devices, game consoles, and augmented reality devices, as well as mobile and IoT implementations:

Each device family allows a subset of APIs that are available within the UWP, and it is up to the developer to decide the platform he or she wants to implement. Additionally, each platform brings in extension APIs that are only available for that platform. These differences between the device families are handled with platform extensions that can be included in your projects at compile time, as well as possible device family checks that can be executed at runtime.

UWP should not only be evaluated as a set of development tools, but truly an application platform. As a platform, it imposes certain security policies on how the applications should be handled by the runtime environment. More specifically, the application sandbox model, which is a common concept on other mobile platforms, is also imposed by UWP. Even desktop applications written for UWP should abide by the installation and execution policies to standardize the installation process for the users and protect the runtime by compartmentalizing the applications. Finally, as a result of this platform standardization, the common application store can be used for multiple platforms.