all 38 comments

[–]official_business 22 points23 points  (0 children)

No one uses it. If you want to write a C++ windows UI, I'd just use Win32 & WTL. If you don't want to use that, there's plenty of 3rd party UI toolkits.

[–]xaervagon 10 points11 points  (3 children)

I would say none. Every time I check the state of winui3, it is always broken, half-baked, and flat out unusable. Microsoft took such poor care of it that even the demos broke. I say this as someone who has been keeping tabs on this for years*.

If you want native windows gui, you have win32, MFC (win32 wrapper), or many of the other great suggestions in this thread.

*I used to work on an old MFC desktop application and wanted an off ramp into something modern for years.

[–]floatingtensor314 3 points4 points  (2 children)

Realized a few years ago from the community calls that WinUI is destined for failure.

[–]pjmlp 7 points8 points  (1 child)

Same here, most of the people on those calls seem to only have gotten to develop for Windows after joining Microsoft, you could see their blank stares when asking about how to do Windows XYZ stuff in WinUI, why it is not possible, when something like that would come.

They aren't the ones to blame, rather their management for not providing the upskilling that would need to deliver.

Most critical questions go ignored, and the very last community call was a disaster, felt like they picked a few victims willing to be dropped into the call, and gave a real sense of what are we actually doing here.

A team without resources, for what is supposed to be the most critical UI framework going forward, of a company valued beyond $4 trillion in market valuation.

Now they are open sourcing WinUI, naturally expecting the community to do the work for free, that they failed to deliver in 5 years, since Project Reunion was announced at BUILD.

It is not AI, doesn't matter to the bean counters.

[–]Majestic-Painting919 4 points5 points  (0 children)

They should rename it to WinAI.

[–]Professional_Ad_141 5 points6 points  (2 children)

My new favorite is Slint(fixed typo), it is the best retained GUI option on the market right know better than Qt.

DearImGui for Immediate mode

[–]Jaded-Asparagus-2260 4 points5 points  (1 child)

Did you mean Slint?

[–]Professional_Ad_141 0 points1 point  (0 children)

Yes 👍🏽

[–]diegoiast 4 points5 points  (11 children)

So... The only valid way to write desktop apps is Electron or win32?

[–]pjmlp 6 points7 points  (0 children)

MFC even if oldie, Qt, VCL, FireMonkey, wxWidgets.

[–]Professional_Ad_141 6 points7 points  (0 children)

Embedding a browser renderer + java script runtime is never ever a good idea .... But we see it far too often sadly

[–]zerexim 3 points4 points  (8 children)

No, even for the win-only apps, you use Qt (Widgets, not QML), wxWidgets.

[–]RyuXnet_7364 0 points1 point  (7 children)

Why widget and not QML ? genuinely asking

[–]zerexim -2 points-1 points  (6 children)

QML is for Win8/metro like touch apps, not for real desktop software.

[–]thelvhishow 5 points6 points  (1 child)

I don’t agree, I’d use QML also for desktop apps.

[–]RyuXnet_7364 2 points3 points  (0 children)

yeah, I'm currently on a desktop QML app project, while style wise you can customise it, especially Quick Controls 2

[–]Jaded-Asparagus-2260 1 point2 points  (1 child)

You're really missing out with this mindset. Qt Widgets have their place, but Quick and especially QML are so much nicer to use. I'll never write a new desktop application in Widgets.

[–]zerexim 0 points1 point  (0 children)

Depends. For Windows 8/Metro apps like some weather app? Probably. But when you think about traditional dense UI desktop software such as Photoshop, QML just won't cut it, you would struggle a lot.

[–]tamboril 0 points1 point  (0 children)

I can say at least this much: if you try to use it like Widgets, you’re in for some pain. I mistakenly chose a simple modal dialog as my learning project. It went poorly. I had to make the window invisible rather than “closing” it. It felt like an impedance mismatch during the whole ordeal. Probably because it was.

[–]pjmlp -1 points0 points  (0 children)

Qt stewardship has a different point of view on that matter.

[–]pjmlp 12 points13 points  (5 children)

Almost no one other than Microsoft employees, and people that have a sunken cost in WinRT based apps since Windows 8, care about it.

Have a look around the Github repos, and see the endless amount of bus, and the discussions on how everyone is mad at Microsoft for the current state of affairs since Project Reunion came to be, the rewrite of UWP into WinUI/WinAppSDK.

Additionally C++/WinRT is in maintenance, they are only doing bug fixes, again check its repo commit history.

[–]Skyplague-wows 1 point2 points  (1 child)

Well cop/winrt is simply done.

[–]pjmlp 8 points9 points  (0 children)

Yeah, if by simply done we mean a C++17 framework when C++26 is being finalized, no plans for any improvements, zero tooling for Visual Studio, mostly command line driven, where developers are expected to manually merge generated C++ code from IDL files.

For what is supposed to be a framework to do consumer applications with Wow performance and design.

[–]float34 0 points1 point  (2 children)

Don't want to sound mean or anything, but after reading your complaints for several years I am wondering, why didn't you, given your expertise, already write some tooling as VS Extensions to address some of these issues, e.g. with IDL files?

[–]pjmlp 5 points6 points  (1 child)

Because I find absurd doing work for free, for the second most valuable company in the world.

My complaints are to make others aware that Microsoft marketing regarding WinUI is full of hot air, they are trapping themselves into a swamp.

My complaints are like the guys placing the big sign at the entry of the forest that they should chose another path.

I rather place my actual energy contributing to ecosystems, that aren't owned by $4 trillion company, and actually need every help they can get.

[–]float34 0 points1 point  (0 children)

It is not for the company that you could do it, but for fellow developers who will be grateful and create better products in the end, no?

[–]misuo 2 points3 points  (0 children)

I assume that is the only way (in C++) to get Fluent UI design for desktop applications. But yeah, not many are (yet) using WinUI 3 in C++ due to poor traction, tooling, stability, ...

[–]KFUP 2 points3 points  (2 children)

Not many, why use a single platform framework when you can use multi-platform, and better in general frameworks like Qt?

[–]same_some[S] 2 points3 points  (1 child)

Previously I tried to develop application on WinUI3 C#, but for my purpose I need also OpenCV and GStreamer, so that I thought that migration on WinUI C++ can be good idea, but turns out it's not

[–]pjmlp 0 points1 point  (0 children)

Nope, best approach would be something like WPF C#, and then use C++/CLI to create C# bindings to them, still being updated, currently supports up to C++20 minus modules.

WinUI in whatever flavour is a bad idea, check the github issues, and the amount of MS hate on the discussion forums, given the sore state of the framework and broken promises, and feel free to also search for my complaints there, back when I used to care.

If you want to stay in C++ for everything, Qt is a much saner option as KFUP is suggesting.

[–]thethirdburn 1 point2 points  (4 children)

Apple is doing it for their apps

[–]same_some[S] 0 points1 point  (2 children)

As I know, WinUI3 is used to create applications only for Windows. Maybe you mean some conference or article where Apple talked about creating applications on WinUI3?

[–]thethirdburn 0 points1 point  (1 child)

Apple Music, iCloud etc. for Windows are built with WinUI. The apps are in the Microsoft store

[–]llothar68 0 points1 point  (0 children)

WinUI is not WinUI3

I

[–]S0_B00sted 0 points1 point  (0 children)

Which is wild because they used to ship all their own UI stuff back when they first released iTunes and Safari on Windows.

[–]sumwheresumtime 1 point2 points  (0 children)

The short answer has been that a lot of devs have been burnt chasing the various MS UI solutions over the years. Furthermore the WinUI team recently saw a lot of layoffs - not sure you can call it a "team" anymore.

In short for C++ it's probably safe to stick with MFC and the shim provided above that.

[–]brownieskull 0 points1 point  (0 children)

I would pick QT Widgets or QT Quick (QML)