I remember being kicked out by salesmen many times while sitting there playing. They seemed very annoyed that no adults "got it", but many kids did.
They were all lobeless creatures who couldn't spot an opportunity even if it hit them in the face. A true Ferengi would know how to handle this.
https://duckduckgo.com/?q=ega+trek&t=ffsb&iax=images&ia=imag...
Using C# implies that you're running on a device powerful enough for a traditional GUI.
(And you really don't need much to run C#, just enough RAM / Disk for the framework and to handle the overhead of the garbage collector.)
You can run SSH as a server on windows boxes easily now, and depending on your needs (or to standardize across a heterogeneous fleet of servers) it might make sense to have some good CLI/TUI utilities available that are cross-platform.
While I imagine most people won't jump to a TUI for Windows, it could also be a secondary interface for an application that's run on both Windows and Linux/BSD. If no GUI (or no Windows GUI) is detected, approximate the same display using a TUI. The guys of the application can be the same, and you don't have to ship two versions (assuming the rest of the internals area already portable).
Then maybe a cool project is an adapter to allow the text-based GUI to work natively when running in a GUI!
It's really useful to have things work in the shell directly.
I am not even an old fart. I am barely 30, but I feel completely backwards with regards to all developments in modern computer interaction. I hate smartphones. I hate the modern web. It all feels like one big distraction.
GUI's have their place, but damn is i3 + terminal super productive, no matter what the naysayers think.
In principle, all of these things could be done with a GUI, but in practice, they're not, and with the phoneification of software, the keyboard is an afterthought, not the main input mechanism.
Because the backbone of the modern computer's infrastructure is comprised of software running on headless systems accessed with remote shells.
I wish it would have mouse support, though - not sure how much effort it would be to add it to it. Mouse support is something I really like about GUI.cs
It isn't simply the functionality, but also the massive community/examples/tutorials/etc that already exist for the JavaScript/Node/Electron ecosystem. WPF, even on Windows, is much smaller but if they ever ported it to Linux/MacOS/iOS/iPadOS/Android the resources would be microscopic, and it would be a legitimate limiter to the platform's success.
It would largely be dead on arrival. I wouldn't even use it (and I am their core developer demographic). The only argument people can make is performance, and WPF isn't exactly speedy itself (particularly without hardware acceleration). Plus you're competing with a much better ingrained Qt.
I was actually trying to create a cross-platform solution this weekend between PyQt and Electron, and ultimately wound up using Electron, not because it is better within itself but because you have this huge ecosystem of samples/snippets/etc to built upon. It is a productivity multiplier.
- An Electron application is necessarily slower and larger than a native application with the same functionality
- An Electron application is yet another browser instance on a user's machine, with all the vulnerabilities of that version of Chrome
Those two alone are enough reasons for a lot of (but still far too few) developers.
Software is getting slower much more rapidly than hardware is getting faster, and one of the reasons for that is Electron and how seductive it is to application developers.
It's a bit of a shame, because I strongly suspect the theme is easily overridden. It just needs a designer to make a consistent set of controls.
It's funny, though: the CHUIs that remain in the product for system administration are much more primitive now than they used to be. Instead of curses-style graphics with a UI, it's pure text.
[0] https://code.visualstudio.com/docs/remote/remote-overview
It will depend on how the System.Console class is implemented in Linux and macOS. It might fair better to port the example to Mono or .NET Core 3.0 (which should just be a change of build settings).
_______________
| | | |
| | STD | |
| |_____| |
| | |
| FX | CORE |
|______|______|