No, UWP - it's a great api, which is aimed at a different model windows, replaced most of the traditional winapi. You get dependent .NETCore, because the project templates in VS choose it. For a good reason, you can get the U in the UWP (Universal Windows Platform) only .NETCore, devices such as phones and Hololens, do not have the full version of the .NET framework. Trying to be competitive in mobile applications has been the main reason for the UWP.
UWP - api is based on the COM, the main reason why it works with languages such as Javascript and C ++. Otherwise, very well hidden, traditional COM type library format has been replaced by .winmd, a format that is largely based on the .NET metadata format. It can emulate the functions that COM can not support, such as generics, static methods and implementation inheritance. The language projection needed to get this emulation is built into the CLR. Not only that they can do to make exceptions better.
You can also use UWP api in a desktop application. Microsoft does not encourage it, so you do not get any help from the project template. It is easy to fix with a text editor, add the <TargetPlatformVersion>10.0.10586.0</TargetPlatformVersion> in your .csproj file, and now you can use the Project> Add Reference and select the contract UWP. Conveniently use space device names.
source share