Programmers' Toolbox

What's Old in Windows App SDK 1.2

submitted on 2022-11-18

The WinUI team just celebrated the release of the new Windows App SDK 1.2.

While Microsoft's blog focus on what is new, I would rather summarize where the project is still standing since Project Reunion was announced in 2020.

Still no designer is available on Visual Studio that can match the tooling available for Windows Forms, WPF, and UWP developers.

The CsWinRT and C++/WinRT frameworks represent a big regressation in developer experience when compared with the .NET Native and C++/CX tooling available in Visual Studio.

The C# developers while using CsWinRT have to manually write export sets of API, invoke a command line tool, and then integrate the resulting build into the project, hardly modern when compared with .NET Native taking care for us under the covers.

The C++ developers, have to manually write IDL files, which to this day keep lacking Visual Studio tooling for code completion and syntax highlighting. They have to manually merge generated code into the existing project, master lots of low level details that the C++/CX runtime used to take care for us, hardly modern when compared with Qt/QML or C++ Builder offer to C++ developers.

The cherry on the already bad C++/WiNRT developer experience is that the team doesn't seem to care to improve it past C++17, so not even C++20 modules are planned for it, hardly modern.

The Windows 11 widgets just announced, require developers to use C++ and COM, just like in the old days before .NET. Hardly a modern experience when compared with Apple and Google developer experience to create OS widgets.

The recently announced support for AppNotificationBuilder, is only for C# developers. Those that are stuck with C++, have to write XML payloads as part of strings, parse it on the fly, before calling the notification APIs, hardly a modern experience.

The issues on the respective Github repositories for all projects just keep increasing.

After all this time, it looks like the team is fighting the last war, trying to make WinUI 3.0 reach feature parity with where UWP was in 2019, while Apple platforms keep improving SwiftUI, Google keeps improving Jetpack Compose, both using modern managed languages, with design tooling, without any messy C++ macros and bare bones COM, as if coding Windows UI from the last century.

Actually in that sense, Windows Forms, WPF and even MFC, are more modern in developer experience than Windows App SDK 1.2 is capable of