C
C#β€’2y ago
marsastro

❔ βœ… Help choosing a framework

Hello! I'm making a little windows app that's got a healthy mishmash of requirements, and not being too familiar with the windows frameworks or windows desktop app development in general I'm having a hard time figuring out what suits my needs best. Here's what the needs to do: 1. Be installable through a setup wizard (I will share this software with people who can't build the app from code themselves) 2. Run on startup after installation 3. Sit in the taskbar corner by default 4. Have a simple tiny gui pop up when you press the corner icon (and maybe a context menu on right-click) 5. Act as a local webserver that listens for web requests on localhost (a simple HttpListener is sufficient here) 6. Consume a restful API (of a device on the same local network as the computer) (I think an HttpClient will be all I need here as the api is somewhat simple, but I might possibly consider an external library like flurl or refit for convenience) As far as I can tell, the taskbar corner part seems like a hassle to deal with in terms of WPF. Winforms can more easily do that part, but it's not as good as WPF when it comes to GUI. I haven't looked much into maui and WinUI 3, but those also seem like candidates. If anyone has experience with apps like Steam, f.lux or voicemeeter, this is the style of "startup taskbar app" I'm thinking of. As some of you might be able to tell, it's point 1-4 I'm mostly in the dark about. Point 5-6 I know how to do each of them in isolation, but I added them just in case these two points don't play well together, don't match well with point 1-4, or rules out any of the frameworks. I'm also wondering whether it would be better for some or all of the HTTP work to be largely done as a windows service or if it could all be contained within the app itself as a sort of multi-threaded/asynchronous task based app. I'm developing in VS2022 Community if that matters. Any input would be greatly appreciated! πŸ₯³
5 Replies
ACiDCA7
ACiDCA7β€’2y ago
1. isnt directly tied to used framework.. there are couple of ways - installer projecttemplate in VS -WIX -nsis .... 2. is part of the installation routine - add it to startupfolder - add to registry 3. you can program that when the app starts it should start in symboltray 4. part of how you implement the tray functionality 5. independent of GUI 6. independent of GUI
As far as I can tell, the taskbar corner part seems like a hassle to deal with in terms of WPF. Winforms can more easily do that part, but it's not as good as WPF when it comes to GUI.
you can use the winforms implementation in WPF
I haven't looked much into maui and WinUI 3
dont bother ;)
I'm also wondering whether it would be better for some or all of the HTTP work to be largely done as a windows service or if it could all be contained within the app itself as a sort of multi-threaded/asynchronous task based app.
depends on your needs
marsastro
marsastroβ€’2y ago
Had a feeling that would be the case for 1 and 2, so that's great! As for my needs, they're probably not advanced enough to warrant a separation into service and app, so unless there's some obvious reason my requirements calls for a service I think it's safe to do it all within one app. As for the rest of it, sounds to me like the main reason I was unsure about WPF is gone, in which case I think the choice is easy. WPF it is! Thanks for the input! Can't see any way to mark the post as solved, so I'll just say: SOLVED
ACiDCA7
ACiDCA7β€’2y ago
i think it was /solved
marsastro
marsastroβ€’2y ago
/solved well, worth a shot There we go, it was /close
Accord
Accordβ€’2y ago
Was this issue resolved? If so, run /close - otherwise I will mark this as stale and this post will be archived until there is new activity.