top | item 44766131

(no title)

muhehe | 7 months ago

I already lost count how many UI frameworks are in windows. It looks like complete chaos and mess.

I really wonder what they expect from open-sourcing it. Just to pretend how open they are? Or is there any real benefit to developers who target windows?

discuss

order

cheschire|7 months ago

WinUI is an evolution of UWP which is an evolution of WinRT. WinUI has been around for years.

MAUI is not exactly a competing product and is more about enabling cross platform UI development. Different intent.

WinUI is actually ok tech. It’s evolved over the years through a few iterations, now on WinUI 3.

Im mostly with you though. Until they rebuild the entire OS in it, including all of the administrative controls and tools, I don’t trust the longevity.

DiabloD3|7 months ago

They already do, though. The big UI refresh in Win10 is all XAML, and the new Win11 taskbar (the one we all hate) is now a totally normal XAML app.

WinUI 3's big changes (to get a 3.0 version number) is not with the XAML stack itself, but its new ability to be called by unmanaged apps as a normal UI toolkit, so it can finally be used by all apps. No more using Shell UI like we're writing Win 3.1 apps.

And yes, some stuff in Win11 still isn't WinUI, which is kind of annoying, but some of those dialogs hidden away in Windows are at least 20 years old, and probably would need to be entirely rewritten, not merely have their UI's updated.

Also, fun fact: The Win8/10 taskbar's code predates Avalon (the prototype/codename for WPF), and trying to change/fix it at all usually ended up breaking it. It's one of the few binaries on Windows that would not be recompiled to build a new release image in fear of breaking it. Rewriting the taskbar made sense, GETTING RID OF SMALL MODE DID NOT, GODDAMNIT MICROSOFT.

crinkly|7 months ago

Still writing win32 stuff like it’s 1995 here. We have bits of ATL/MFC hanging out which are throughly abandoned.

I don’t trust WinUI at all.

I was surprised, when I spoke to a former colleague, to find that an internal tool I wrote 25 years ago is still being maintained. Win32 as well.

tcfhgj|7 months ago

I think only WinUI2 (deprecated) is an evolution of UWP (uses WinRT APIs). WinUI3 is something different.

pjmlp|7 months ago

Hardly an evolution, that is how it is sold, reality is something else, trailing behind UWP with half the tooling.

qcnguy|7 months ago

WinRT came out of UWP I think. UWP was their first attempt to move beyond .NET

flohofwoe|7 months ago

They probably started something new and shiny (Now with AI!) and want to get rid of the old baggage without causing too much of a user revolt (all dozens of them) ;)

octo888|7 months ago

I genuinely thought a lot of these sibling comments were satire at first! The acronyms, the lengthy and confused explanations of versions, frameworks etc:

> WinUI is an evolution of UWP which is an evolution of WinRT

> WinUI 3

> WinUI 3 still supports WinRT

> XAML

> Shell UI

> Avalon

> WPF

> WPF = WinUI 1.0

> Project Reunion

> UWP

> Win2D

> ATL/MFC

> Just go for MFC FTW

> wxWidgets as it is kinda MFC-y

> Or go with Qt

> MFC/Win32 + XAML Islands

pjmlp|7 months ago

I can produce similar lists on other domains in the industry, it is a matter of being part of the ecosystem.

deaddodo|7 months ago

There are three UI frameworks in Windows, and only two actively used/developed.

All the other "countless" frameworks are iterations of one of two lines: Win32/Native (WinAPI, MFC, WinRT, WinUI3, etc) and WPF/Managed (Avalon, WinUI2-3, etc). WinUI3 exists to bridge the gap.

madduci|7 months ago

Just go for MFC FTW, it is in feature freeze but I will last probably for the next 20 years yet.

badsectoracula|7 months ago

You could also go for wxWidgets as it is kinda MFC-y but better and cross-platform, though like MFC you can combine it with Win32 API code (almost) seamlessly.

Or go with Qt, though that doesn't use native controls.

criddell|7 months ago

MFC/Win32 + XAML Islands (through the Windows App SDK) is a pretty nice combination for stability and access to new features.

shortrounddev2|7 months ago

Maybe people can cannibalize some of the rendering code and extrapolate the controls to a better class library than they already have. Like a kind of winforms but using modern rendering APIs. I know you already can create such controls but they often end up being very verbose and just look like xaml but in C#

bobmcnamara|7 months ago

> Maybe people can cannibalize some of the rendering code and extrapolate the controls to a better class library than they already have.

This just sounds like another Microsoft UI stack