Help Choosing Between WPF, WinUI3, and Avalonia for Commercial Windows Application
-
I have a 7-year-old commercial desktop application that uses the MVVM pattern, which is currently built on WPF with many UI customizations. Every control has been re-templated and restyled. We have a custom video player that uses libav/ffmpeg for decoding and outputs video through `D3DImage`. We hook into Windows 10+ gesture events for modern touch support. Nonetheless it's now time to overhaul the application's frontend. This will be a complete gut job of the entire "view" layer. (The data model+view model layers will remain unchanged as these also are the foundation for a Blazor web app.) The question is whether to stick with WPF or move onto either WinUI3 or Avalonia. It's down to those three finalists, plus the slightly insane idea of building a UI from scratch with C# hooked into Win32 and Direct2D. WPF has aged remarkably well and is still very much in the running, but I'm concerned we're missing out on the improved performance and visuals that modern frameworks offer. Its reliance on the obsolete Direct3D9 and Microsoft's refusal to update it to D3D12, or better yet Direct2D, are frustrating. On the other hand I remain deeply concerned about WinUI3's stability and Microsoft's commitment to it (or lack thereof), and Avalonia only hit v1.0 recently and the number of commercial projects that utilize it is still relatively small (though growing). Note we only need to support Windows. I'm interested in hearing firsthand experiences from folks who recently used WPF, WinUI3, and/or Avalonia to make a new and/or renovated real-world commercial or LOB application. No theoreticals or hypotheticals please! :) What was your experience? Did you encounter any showstoppers? Any unresolvable bugs or concerns about the platform(s) that still keep you up at night? Were the platform developers responsive to support needs? Anything else you can share about the experience to help someone make a decision? Many thanks in advance.