3 ms·
I started C# and .NET a few years ago and I still enjoy it. The cross platform initiative has been such a relief. OK it's Microsoft and please set the environme
by sandreas 2y ago
I started C# and .NET a few years ago and I still enjoy it. The cross platform initiative has been such a relief. OK it's Microsoft and please set the environment variable
export DOTNET_CLI_TELEMETRY_OPTOUT=1
, but believe it or not, I'm on Linux and I use C# every day.
The most significant advantage over other languages I noticed is that it is a very versatile language. You can do basically anything with it and it usually works cross platform out of the box. CLI, GUI, WebService, Mobile Apps and even WASM is also included. With the new PublishNativeAot option you can even build native apps without depending on the runtime. It's not Rust or go in size or performance, but it often is close enough. And boy there are great libraries for nearly everything.
Command Line App? - Spectre.Console
WebService or Api? - FastEndpoints
Cross platform GUI? - AvaloniaUI
Image handling? ImageSharp
ProcessHandling? CliWrap
Unit-Testing? xUnit, FluentAssertions and NSubstitue or the new TUnit
Hate Exceptions? Rust-Style error handling is possible [1]
The only thing I'm really missing is a well maintained cross platform audio library with a permissive license. That's why I'm learning P/Invoke now to create a C# wrapper around miniaudio[2]. So I'm still learning C# after all these years and haven't hit the wall.
Good luck!
1: https://github.com/gnaeus/OperationResult https://github.com/gnaeus/OperationResult
2: https://miniaud.io/ https://miniaud.io/