Spectre.console – Pretty console apps in .NET
github.com
github.com
Many Linux distros are shipping .NET in the default install due to more and more apps requiring it. If something like this takes off for console apps, it's only going to improve from there.
With .NET Core 3.x it's possible to publish self-contained executables so there's no need to have to the runtime installed.
https://docs.microsoft.com/pt-br/dotnet/core/deploying/#publ...
IIRC .NET Native compilation was very slow and could not target…, well, Windows, but only Windows UWP.
https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen...
https://docs.microsoft.com/en-us/dotnet/framework/tools/ngen...
.NET Core's new AOT systems are much more capable than ngen ever was, including for static, self-contained binaries that you could potentially ship to all systems of a target architecture without shipping the non-AOT IL binaries as well.
(ETA: Which is why the vast majority of .NET software hardly ever bothered with ngen except for very specific per-machine performance needs.)
I hope new AOT would be better
Interesting is that they've adopted some of the lessons learned from Rust, or are trying to.
This project looks like it fits a different niece though and I am excited to use it. Thanks to the creator for making and sharing!
EDIT: Oh I see they've linked Rich as a inspiration.
[0]https://github.com/willmcgugan/rich [1]https://spectresystems.github.io/spectre.console/#examples [2]https://github.com/willmcgugan/rich#tables
"It has been heavily inspired by the excellent Rich library for Python written by Will McGugan."
:)
It will run on Server 2003 R2 through Windows 7 without the need to install any framework beyond what comes out of the box in the OS. i.e. Just copy the EXE and run it.
And 2.0 is the last version of the framework still installable on Windows 98.
Unfortunately Windows 8 and 10 would need you to install the 3.5 framework (which supports running 2.0 apps... yeah, I know, confusing).
I used to write all my little command line utilities in this version (with a theoretical exception if there was a really pressing need for new language features, but that didn't tend to occur for those kind of utilities).
Of course not as lightweight as a Russinovich or Sofer style single-EXE done in C or whatever, but if you're using NET Framework it's not a bad choice of version.
This talks about RID's: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog
EDIT: Looks like Win 7 SP1 is the earliest supported by .NET Core: https://docs.microsoft.com/en-us/dotnet/core/install/windows...
Edit: to clarify, I'm curious as to how it works.