Synchronization
With support for OS threads, a built-in thread pool and async tasks, a lot can be going on at the same time in your dotnet program. Fortunately, dotnet also has a wide range of synchronization primitives to keep things under control.
- https://learn.microsoft.com/en-us/dotnet/standard/threading/overview-of-synchronization-primitives
“If you’re unsure, put a lock on it” gets you a long way.
Download URLs
If you want to write scripts or container files that automatically download the dotnet SDK or runtime, you need a URL that can be used to discover download links for various versions and target platforms of dotnet.
Here’s an example URL for .NET 8.
https://dotnetcli.blob.core.windows.net/dotnet/release-metadata/8.0/releases.json
Container image for building dotnet apps
mcr.microsoft.com/dotnet/sdk:8.0
Logging
- https://www.nuget.org/packages/Serilog
Useful links
- https://learn.microsoft.com/en-us/dotnet/api/system.threading.cancellationtokensource.createlinkedtokensource
- https://github.com/domaindrivendev/Swashbuckle.AspNetCore