architecture
C# and .NET Design Patterns Articles, Tutorials & News
C# and .NET Design Patterns articles, tutorials, and news from the DotNetNews archive.
442 articles Updated
This DotNetNews topic collects C# design patterns material from the daily archive. C# and .NET Design Patterns is a recurring focus for C# and .NET developers working in the Microsoft ecosystem. The page is for people who already ship C# and need a faster way to find relevant posts.
Expect publisher tutorials, release notes, architecture write-ups, and field notes linked from DotNetNews issues. Start here is a short editorial shortlist for C# and .NET Design Patterns; the archive list is chronological and larger. Nothing here claims every article was production-tested by the editors.
Recurring subtopics in recent issues include C# design patterns, .NET design patterns, Gang of Four C#, and software patterns .NET. Secondary angles such as C# design patterns and .NET design patterns appear when the archive actually covered them. Related hubs such as SOLID Principles in C# and Clean Architecture in .NET cover adjacent problems.
Each card points at the original publisher URL and the DotNetNews issue that carried it, so you can read the article in context or jump straight to the source.
Start here
Editor picks for Design Patterns
-
See our new Azure Cosmos DB Design Patterns
Microsoft Dev Blogs Issue #495
Strong reference material for Cosmos teams that need proven modeling approaches instead of learning partitioning lessons the hard way.
-
Building a Flexible C# Rules Engine: Design Patterns and Best Practices
Medium Issue #494
Rules engines can go sideways fast; patterns and boundaries matter more than the engine itself.
-
Design Patterns in C# — Real Enterprise Examples That Actually Work in Production
Medium Issue #480
Helpful when patterns are tied to production tradeoffs instead of textbook diagrams.
-
When Design Patterns Become Rituals
Bipin Joshi .NET | Thus said a Byte • Insights on .NET and Web Development Issue #472
Design patterns become cargo cult when teams apply them without understanding the problem.
-
Mission Possible : Implementing Design Patterns in .NET
Medium Issue #469
A survey-style design patterns article that may be most useful for juniors or teams revisiting fundamentals.
-
Cracking the Code of Serverless Design: Patterns that Scale and Patterns that Fail
Visual Studio Magazine Issue #407
Chad Green explores how intentional design patterns determine whether serverless architectures deliver on their promises of scalability, resilience, and cost efficiency.
-
Mastering Delegates in C#
C# Corner Issue #297
Delegates remain a foundational C# feature, and this article shows why they still matter for extensibility and testability.
-
Avoiding Overengineering: When NOT to Use a Design Pattern in .NET
Medium Issue #272
A caution against overengineering that should resonate with anyone who has watched patterns get applied too early.
Archive
Page 1 of 18
Newest first
-
Pick-Pack-Ship: Modeling Warehouse Workflows with Minimal APIs
Medium Issue #572
Most warehouse code starts as a Status string column and a few if statements.
-
Why I Built a Multi-Paxos Library for .NET
Medium Issue #571
Inside a Multi-Paxos Library — Part 1: turning agreement, application state, and failure into explicit architectural boundaries.
-
From Throwing Exceptions to the Result Pattern
Medium Issue #571
Seven attempts at API error handling, and the one that stayed.
-
One Intent, Many Channels and Providers
Medium Issue #570
Utilize your communications service to manage the content of your communications while also being able to decide on channel providers
-
How to Use the Transactional Outbox Pattern in .NET to Avoid Lost Messages
C# Corner Issue #570
Learn how to implement the Transactional Outbox Pattern in ASP.NET Core and Entity Framework Core to reliably save business data and publish events without losing messages.
-
3 Clean Ways to Dynamically Resolve Dependencies at Runtime in .NET
Medium - Satyam Pushkar Issue #569
When building extensible applications, you often encounter situations where multiple concrete classes implement the exact same interface.
-
The Transactional Outbox Pattern in .NET: Keep Database Updates and Messages in Sync
C# Corner - Riya Patel Issue #565
Learn how to implement the transactional outbox pattern in .NET to keep database changes and broker messages consistent, including background processing, retries, and duplicate delivery.
-
The Outbox Pattern in .NET: Stop Losing Events
Medium - Martin Bernaola Mendez Issue #564
Your order is saved, but the “OrderPlaced” event never left. Here is the pattern that makes that impossible, in under five minutes.
-
Architecting Robust ASP.NET Core Applications with Clean and Onion Architecture
C# Corner - Sardar Mudassar Ali Khan Issue #564
-
How to Plan a Custom Software Development Project
Facile Technolab Blog Issue #560
Learn how to plan a custom software development project, from requirements and scope to technology, milestones, budget, testing, and launch.
-
Result Pattern in C# and .NET 10 - When to Use, When to Skip
codewithmukesh Issue #558
A practical guide to the Result pattern in C# and .NET 10: real benchmarks, async services, ProblemDetails mapping, and what C# 15 unions change.
-
-
3 Advanced .NET DI Tricks and Anti-Patterns Every Developer Should Master
Medium - Satyam Pushkar Issue #556
Setting up basic Dependency Injection (DI) in .NET is straightforward — register your abstractions in Program.cs and let constructor…
-
You Don’t Need a Container to Do Dependency Injection
Medium - Rodrigo Cristiano Oliveira Issue #553
Part 5 of a series where I document what I’m studying to go from mid-level to senior .NET developer.
-
30 .NET System Design Interview Questions That Actually Get Asked in 2026
codewithmukesh Issue #553
30 scenario-based .NET system design interview questions with senior answers, red flags, and follow-ups. Caching, background jobs, real-time, scale on .NET 10.
-
Why Garbage Collection Won’t Save Your .NET App from DI Leaks
Medium - Satyam Pushkar Issue #553
In modern .NET development, we often rely on the Garbage Collector (GC) to clean up unused memory automatically. At the same time, we rely…
-
BlogWriter Architecture Part 1
YapCast – Jesse Liberty Issue #552
In a previous blog post I promised to take apart the BlogWriter architecture and implementation. I thought today I’d start with the architecture. The original design was to have 4 agents:* BlogWriter ...
-
OOP Pillars in C#: What .NET Interviews Actually Ask
Medium - Anchalmehandiratta Issue #552
Encapsulation, inheritance, polymorphism, abstraction — everyone can recite the four pillars, but interviews rarely stop at definitions…
-
Interfaces in C# explained
Round The Code - David Grace Issue #552
Learn how interfaces work in C#, covering contracts, polymorphism, multiple interfaces, default methods, access modifiers and static members.
-
23 GoF Design Patterns — Part 2: Behavioral Patterns
Medium - Pavan pitthdiya Issue #552
In [Part 1], we covered the first 12 GoF Design Patterns:
-
23 GoF Design Patterns — Part 1: Creational and Structural Patterns
Medium - Pavan pitthdiya Issue #551
If you have been working with C# or ASP.NET Core for some time, you have probably heard terms like:
-
Interfaces vs Abstract Classes in C#: What .NET Interviews Actually Ask
Medium - Anchalmehandiratta Issue #551
Interfaces are everywhere in real ASP.NET Core code — IOrderService, ILogger, IRepository — and this topic is also where everything from…
-
Visitor Pattern in C#: acyclic, type-safe, no downcasts, no runtime checks with Visitor.NET
Medium Issue #548
Visitor becomes painful when a design gains type checks, downcasts, and boilerplate faster than it gains useful behavior. Those costs are…
-
Synchronous vs Asynchronous Communication in Microservices: How to Choose the Right Approach
Medium Issue #548
Choosing the right communication style between microservices is one of the most important architectural decisions you will make. Continue reading on CodeX »
-
Mastering the Decorator Pattern in ASP.NET Core applications
Medium Issue #547
Add caching, logging, or retry to a service without touching the service — wrap it. The decorator pattern in ASP.NET Core, made painless…