Tools
A list of tools, frameworks and more where I had good experience with or I got recommendation from others.
Documentation as Code (DoC)
Infrastructure as Code (IaC)
Mail Send
- SendGrid - A cloud-based email delivery service designed for sending transactional and marketing emails at scale.
- In combination with FluentMail
- mailtrap - Primarily used by developers and QA professionals for testing email functionality in development and staging environments without sending emails to real users.
- In combination with FluentMail
- smtp4dev - the fake SMTP email server for development and testing.
Document Generation
Contract Testing (over multiple APIs)
- Pact
- Contract testing can partially be achieved by Integration tests by using anonymous (or test) entities instead of instances of the real class => Test still green --> contract violation
IdP
- Duende Identity Server
- (Azure B2C) rather bad experience (especially for heavy customization / personalization)
Messaging
- MassTransit
- Is able to handle Azure Event Hubs
Feature toggling
Others recommendations
- LaunchDarkly
- Default Microsoft FeatureManager
Vulnerability monitoring
SAST (Static Application Security Testing)
DAST (Dynamic Application Security Testing)
IAST (Interactive Application Security Testing)
SCA (Software Composition Analysis)
- Configure in repo if possible (gitlab, github, azure DevOps)
- mend.io (formerly Whitesource) - Has established itself in the .NET world
- SNYK
- Trivy
Licences
- Configure in repo (e.g. Gitlab) and define which licenses are ok. Repo should provide info if other licences are detected
Testing / Mocking
- Respawn - To reset test data in integration tests (faster than DB deletion/re-creation or table truncation).
- Bogus vs. AutoFixtures
- Moq.AutoMocker
- WireMock.Net - mimics the behaviour of an HTTP API
Never used or recommended so far but maybe useful:
- NetArchTest - allows you to create tests that enforce conventions for class design, naming and dependency in .Net code bases.
Resilience
- Polly
- Microsoft.Extensions.Http.Resilience
- https://www.youtube.com/watch?v=kNzssE7Ir60
- See: https://learn.microsoft.com/en-us/dotnet/core/resilience/http-resilience?tabs=dotnet-cli
OpenAPI GUI
- Swagger ,but since it is no longer default starting with .NET9 we might also consider Scalar
Benchmark
- BenchmarkDotNet - No experience so far but looks easy to use