The Linux story is much better now. Back end the day it was necessary to try to use Mono which wasn't fully compatible and the code had to have #if defs all over the place. That is thankfully all gone now.
Most things can be done with the dotnet cli but for editing code, realistically you will want to use an editor like vscode, Rider or Visual Studio itself. I found the LSP support in vim quite bad for C#.
Most things can be done with the dotnet cli but for editing code, realistically you will want to use an editor like vscode, Rider or Visual Studio itself. I found the LSP support in vim quite bad for C#.