March 8, 2016

Why UWP must die

MS has not been keeping .NET non-UWP up to date. For example, the desktop Cortana APIs are UWP locked. But, you can use “Cortana” via azure in a convoluted way, or you can use straightforward APIs within UWP. But, you can’t use Cortana in a straighforward way in .NET.

Even when the API is in both UWP and .NET, the documentation is not updated for .NET. I’ve run into cases where the docs are UWP only, and the .NET version of the API has a different calling convention.

UWP detracts from .NET improvement. MS is using too much developer time keeping two forked APIs that do the same thing. Nothing is stopping MS from updating .NET and bringing it to all platforms. Nothing is stopping MS from making store APIs part of .NET. .NET already supports strong cryptography, include strong-name signed dlls — everything that UWP is supposed to solve, .NET already provides.

I hate developing UWP. So much, that I’ve abandoned .NET development. All new dev work I do is in NodeJS. This is because UWP keeps creeping into things. Starting VS? You get pestered with ,”Where’s this month’s license?” even in VS community.

I love C# and .NET — really, I do. I *want* to develop in the MS stack. UWP has driven me away. I can’t trust APIs I want are present. I can’t trust the API docs. I can’t get away from hassles. Don’t get me started the annoyance of things like NuGet ( how do you debug a NuGet package deployment failure? That’s a nightmare… npm is so easy — rd /s /q node_modules and npm install… ) and the reducing number of devs.

To get me to reconsider the MS platform as a serious developer platform, UWP must die.