Terminal.Gui – Cross Platform Terminal UI Toolkit for .NET
github.com
github.com
We are going to investigate developing some domain specific language / fluent interface to accelerate our efforts. Something like this constrained terminal UI experience could be exactly what we need to enable this path sooner than later. My current alternative is to handcraft a bunch of parameterized HTML UI components.
When you look at the scifi designs .. you will realize: very simple UI (ok they never cover complex shit, but at least they have an idea how to simple do stuff)
[1]: https://spectreconsole.net/
I imagine that like most terminal applications you could just use tmux to put it in a pane.
https://github.com/magiblot/tvision
A modern port of Turbo Vision 2.0, the classical framework for text-based user interfaces. Now cross-platform and with Unicode support.
I like the calculated positioning system and docs with examples of all the controls!
One thing that has kept me away from getting into .NET terminal & desktop apps is the binary size. Even a hello world app is quite big compared to Go, Rust etc.
dotnet publish -c Release -r linux-x64 --self-contained -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:DebugType=None -p:DebubSymbols=false
Will produce a single file which (with only Hell world) is around 62MB. While:
dotnet publish -c Release -r linux-x64 --no-self-contained -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:DebugType=None -p:DebubSymbols=false
(Notice --no-self-contained), will produce a single file which should be around 146KB.
So it all comes down to including the whole runtime or not while publishing. And then there is AOT (Ahead of time) option for the upcoming .Net 7, which will reduce self-contained files significantly.
Ref: https://devblogs.microsoft.com/dotnet/announcing-dotnet-7-pr...
Presumably they're publishing it as a framework independent binary, which includes the runtime
I've also yet to find a single .NET application that wasn't sluggish on Linux. Jellyfin, Emby, Jackett, etc all take like 5 seconds to start while Go apps take a few milliseconds.
I'm less familiar with startup times for ASP.NET services, maybe that's the difference.
For Go... cointop is one app I can think of off the top of my head. Bubbletea is an excellent framework:
I think the choice of using blue background is a really horrible one :)
Bubble tea seems in a slightly different space .. more like Python rich or .NETs spectre.console.
LOL... I just went and googled all of these and was like "why am I seeing apps... I want the actual dev libraries so I could build my own apps"
Guess this explains why I was so confused.
The only times I've noticed slow startup on recent .NET versions is with WPF apps, and that seems to be mostly because WPF does so much work on startup.
I hope source generators will eventually replace reflection from most libraries, so that reflection-free mode can become more mainstream.
Like what?