Replace a legacy system gradually instead of all at once. The Strangler Fig pattern lets a new system grow around the old one, one feature at a time, until the legacy code can be safely retired.
Construct complex objects step-by-step with clean, readable code. The Builder pattern eliminates constructor overloads and makes object creation intuitive and maintainable.
React to changes without tight coupling. The Observer pattern lets multiple parts of your system respond to events independently, keeping your code clean and extensible.
Integrate third-party SDKs without coupling your code to their quirks. The Adapter pattern translates external interfaces into ones your application controls.
Tame complex subsystems by hiding coordination logic behind a simple interface. The Facade pattern keeps controllers thin and business workflows centralized.
Replace growing if-else chains with clean, swappable algorithms. The Strategy pattern makes pricing rules, discounts, and business logic easier to test and extend.
Add logging, caching, or retry logic without touching your core classes. The Decorator pattern wraps behavior around existing code while keeping everything testable.
A practical guide to Dependency Injection and Inversion of Control in C#. Covers constructor injection, composition roots, lifetimes, containers, testing, and when DI is overkill.
ResultR v1.0.2 introduces the Match() method for functional-style pattern matching on results, making it easier to handle success and failure cases in a clean, expressive way.
A Modern Take on Request/Response Dispatching for .NET Hello World! I’ve been working on a side project that I wanted to share with you all. After MediatR went to a paid model, I’m sure you heard all about that?