top | item 28193728

Ask HN: What UI framework to choose for a greenfield LOB Windows-only app?

6 points| noseratio | 4 years ago

Looking for opinions, thank you. It may sound funny in 2021, but I'm inclined to use WinForms.

7 comments

order

the_only_law|4 years ago

Shit, I’m completely with you on WinForms. It works, it’s simple, and native.

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.

noseratio|4 years ago

Thanks for your thoughts! I've been mostly involved with Electron lately and I'm a believer in all-HTML UI. For this project though, Electron was ruled out.

Someone1234|4 years ago

Controversial take: Electron.

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 greenfield.

Why do I lean Electron in 2021?

- Better migration paths/exits (e.g. Business wants a web/intranet version? Incredibly easy/cheap migration). ASP.NET would allow some 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).

- More/cheaper talent.

- Larger availability of libraries (inc. better official third party integration libraries & support).

- Testing and or infrastructure as code as core components rather than afterthoughts/tack-ons.

- 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).

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.

noseratio|4 years ago

Thanks! I'm totally with you on Electron, as I've mentioned earlier in this thread. Ironically, Electron was turned down because the team didn't like the idea of coping with C++ (required for low-level custom add-ons). WebView2 with C# was also on the table, but that'd be a big overkill IMO. Then, WPF: https://dev.to/noseratio/the-signs-of-wpf-currently-being-on...