Shit, I’m completely with you on WinForms. It works, it’s simple, and native.<p>WPF is almost nice. I’ve enjoyed it especially when trying to make crazy looking UI’s, but I can’t bring myself around to because of the god awful methods for styling components.
Controversial take: Electron.<p>For background: I cut my teeth on Windows Forms and then WPF later (both VB6 and C# .Net then Core). So I am not anti-Microsoft/Windows specific technologies, and both WinForms and WPF still work just fine. If you already have them in production, keep going. The discussion here is <i>greenfield</i>.<p>Why do I lean Electron in 2021?<p>- Better migration paths/exits (e.g. Business wants a web/intranet version? Incredibly easy/cheap migration). ASP.NET would allow <i>some</i> code reuse from WinForms/WPF, but we're mostly talking about DAL/DOMAIN/BLL, UI is a full re-write (Blazor is also a full UI re-write, as the structure is different from WinForms and or WPF).<p>- More/cheaper talent.<p>- Larger availability of libraries (inc. better official third party integration libraries & support).<p>- Testing and or infrastructure as code as core components rather than afterthoughts/tack-ons.<p>- If you ever want to support other desktop or mobile platforms it goes from an improbable project with WinForms/WPF to a fairly manageable one (not free, still requires testing/tweaks, but even .NET 5.0 doesn't have a fantastic all-platform UI story, aside from web/ASP.Net).<p>Sad part is that I don't even like JavaScript/Node.js/Electron very much, but yet the whole package in 2021 is extremely difficult to ignore. Plus in my limited experience almost all LOB eventually grow until they become web-apps of one type or another.
Ranted about this choice previously: <a href="https://dev.to/noseratio/the-signs-of-wpf-currently-being-on-life-support-1h3a" rel="nofollow">https://dev.to/noseratio/the-signs-of-wpf-currently-being-on...</a>