Hacker News
points by Scharkenberg 3 days ago | 0 comments
While Win32 tends to deliver the most resource-efficient and responsive apps if the complexity is not high, I have settled on the latest .NET + C# + Windows App SDK / WinUI 3. Making an app look good and fit into the modern Windows look is extremely hard with Win32 C/C++ and writing and maintaining it requires energy that I'd rather spend elsewhere. Besides, modern frameworks are making great strides in speed, efficiency and QoL features. .NET 11 is full of optimizations, for example.
[–] lloydatkinson 3 days ago
I've tried this and found the WinUI deployment model frustrating and user hostile. There are like 5 open issues on GitHub where people seem deeply confused (I'm one of them) as to if it's possible to build a plain .NET .exe. Some people have tried it and it "works", others try it and get obscure errors, it's a real mess.
[–] WorldMaker 2 days ago
It's definitely possible to build a self-contained EXE. It's not easy or the default for a number of reasons, including the fact that going back even to DOS the PC application deployment model for applications is folders full of shared library DLLs and a smaller EXE that makes use of them. (The Win32 page model was built on it.) Modern .NET excels in that, including in the classic DOS installer model of "just copy the files, no installer required (but you'll probably build one anyway for extra branding opportunities and a few bonuses)".

Some .NET versions <= 4 installed a lot of their DLLs globally in Windows and if you were exact version tolerant enough (and GAC binding magic lucky enough) you could distribute a single EXE without an installer and expect some number of Windows users it would "just work" with only the EXE (and other users you would get complex dances of Windows Updates and .NET Installers to debug). Modern .NET decided on the classic DOS style "folder of DLLs" model over "global DLL cache and DLL Hell". You can no longer assume that the output EXE can "just work" on some supported Windows machines, but can better assume that the output folder of DLLs and EXE will work as intended generally on every supported Windows machine.

[–] Scharkenberg 2 days ago
Not everything is flowers and sunshine (got a couple of open issues myself... in .NET MAUI too), but whether one can build a single, compact, self-contained exe does not define the hostility of a framework or platform, IMO. .NET was conceived as an enterprise-friendly development framework and that's where it shines the most. Quick-and-dirty/mean-and-lean/distribute-and-forget development was never its forte. I would appreciate that feature too, but it's largely a non-issue.
[–] lloydatkinson 1 day ago
Both replies totally misunderstand my comment.
[–] 72deluxe 2 days ago
Why not use something like wxWidgets?
[–] Scharkenberg 1 day ago
Apart from deeper technical issues: I don't like how wxWidgets look and that touch is seemingly not considered a first-class citizen like mouse+keyboard (yet).
[–] 72deluxe 23 hours ago
But wxwidgets is just the actual native user interface?
[–] 72deluxe 20 hours ago
Replying to myself as I cannot edit now: and therefore since wxWidgets is the native user interface, it has no "look"