Editor's note
I kept this one intentionally mixed, which is how I like these daily lineups. The AI-powered query advisor and knowledge base search pieces are practical examples of where ASP.NET Core meets Azure services in useful ways, while the DI coupling and lifetime posts hit problems plenty of teams still trip over. I also liked seeing query objects and specifications show up alongside CQRS without MediatR, because those architectural choices matter more than whichever library is fashionable this month.
Enjoying the newsletter? Your feedback helps us grow and reach more developers.
Today's Articles
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Jasen's take on today's picks
Building AI-Powered Database Query Optimization Advisors with ASP.NET Core
Interesting applied-AI angle: useful if you want something more concrete than generic copilot talk and need EF Core plus Azure OpenAI in the loop.
Why I Added an Audit Trail to Our Admin Panel (and the Gap I Almost Missed)
Audit trails are easy to under-scope; the missed-gap framing is what makes this one worth a read.
ASP.NET MVC vs Razor Pages: When to Use Which
Good practical comparison piece for teams choosing between page-focused and controller-focused web UI patterns.
Dependency Injection in .NET Core
Beginner-friendly DI refresher, especially for folks who know the syntax but not the reasoning.
Full-stack static typing with OpenAPI TypeScript and Microsoft.AspNetCore.OpenApi
Strong full-stack typing story. I like anything that reduces backend/frontend contract drift without hand-maintained models.
CQRS Without MediatR: A Lightweight Approach for Modern .NET Applications
Nice reminder that CQRS is a pattern first, not a MediatR dependency.
Building a Flexible C# Rules Engine: Design Patterns and Best Practices
Rules engines can go sideways fast; patterns and boundaries matter more than the engine itself.
The DI Coupling Trap: When .NET Libraries Block Their Own Capabilities
This is a sharp library-design discussion, not just another DI basics article.
Heap vs Stack in C#: The Biggest Misconception Every Beginner Learns
Useful corrective to the usual oversimplified heap-versus-stack explanations.
Where AI-assisted coding accelerates development — and where it doesn’t
Balanced take on AI coding tools: real acceleration, real tradeoffs, no hype fog.
Packaging and Package Identity for .NET apps with WinApp CLI on Windows
Windows app packaging is niche until you need platform capabilities, then it becomes very relevant.
Dependency Injection in .NET Is Easy to Get Wrong
Lifetimes, scoping, disposal: these are the DI mistakes that produce the ugliest bugs.
Implementing an AI-Powered Knowledge Base Search System with ASP.NET Core and Azure AI Search
Another concrete AI build, this time centered on search, retrieval, and knowledge workflows.
Short topic, big consequences. Composition still wins surprisingly often in maintainable systems.
Modern C# Features: A Deep Dive into Records, Pattern Matching, Async, and Performance
Broad C# feature roundup for developers who want a refresher beyond syntax snippets.
From Student to Software Engineer: What I Wish I Knew Before Learning DotNet
Career-learning advice pieces vary a lot; this one may help newer .NET developers sequence their learning better.
Async/Await Pitfalls in C#: The Bugs That Compile Fine and Break in Production
Async mistakes remain some of the most production-shaped bugs in .NET.
Building AI-Powered API Deprecation Management Platforms with .NET
Deprecation management is a good candidate for automation, and observability belongs in that conversation.
Exploring C# 15: Union Types, Collection Expressions, and Closed Hierarchies
Forward-looking C# content, with the usual caveat that preview-era language discussions can shift.
Building Flexible EF Core Queries with Query Objects
Query Objects are a sensible antidote to bloated repositories and duplicated EF Core predicates.
Modular Monolith Architecture in C#: The Pragmatic Path to Scalable .NET Applications
Pragmatic architecture content tends to age well, especially when it pushes back on premature microservices.
Test Automation Best Practices with Microsoft Playwright
Playwright best practices are always welcome; test reliability is usually a design problem, not a tooling problem.
Specifications over LINQ spaghetti: composable, reusable query intent
I’m glad this made the list. Specification is still one of the cleaner ways to express query intent.


















