Not the Stephen Toub blog post I was waiting for, but I have no complaints.
(Stephen Toub writes the yearly "Performance improvements in .NET x" post, always before the GA release in November)
Well, for starters, WinUI 3 is Windows only (correct me if I'm wrong), while Avalonia supports Windows, MacOS, Linux, Android, iOS and WebAssembly.
The cross-platform solution that Microsoft advocates for is MAUI, which doesn't support Linux. And it uses native controls, meaning you may encounter platform-specific bugs, while Avalonia renders the controls the same way everywhere using Skia (same approach with Flutter).
My bad, the link I sent was not about NativeAOT, just bundling all the dependencies together (also, it's 4 years old). After a quick search, here's a recent SO question that mentions that you can build .exe files
As for the filesize... please recheck the post under which we are commenting. :D
Does it effectively output a single binary?
Yes, that's one of the points of NativeAOT, a self-contained single binary, exactly as Go does it.
Does it create some kind of clusterf*k and awkward packaging formats like other MS solutions such as UWP?
No, you can create .exe files.
Will it actually be deployable to a random fresh install of Debian 12 or Windows 10?
Yes, NativeAOT supports Windows, Linux and MacOS, x64 and Arm64.
What about compatibility with older systems?
Not sure about that, I suppose it depends on the targets each .NET version support. For example, .NET 8 will drop RHEL 7 and only RHEL 8 and later.
And to play devil's advocate: this won't work for all existing .NET applications. If you use reflection (which is AOT unfriendly), chances are that you will have to rework a ton of stuff in order to get to a point where NativeAOT works. There's a middle solution though, called ReadyToRun, which has some advantages compared to running fully with the JIT compiler.
Some talks from yesterday have not yet been uploaded as separate videos, but they will probably be added in the playlist soon.