#568 – August 03, 2025
trade-offs between convenience, security, performance, and size
Choosing the right .NET core docker image
6 minutes by MxBill
A detailed overview of choosing the right .NET container images for different workloads. It explains the various image families, their purposes, and how they build upon each other with increasing sizes and capabilities. Also, it covers image variants like composite, distroless, and Native AOT, highlighting the trade-offs between convenience, security, performance, and size.
Take Control of User Access with WorkOS
sponsored by WorkOS
As your app scales, managing roles and permissions gets messy. Hard-coded access slows you down and fails to meet enterprise demands. WorkOS RBAC gives you structured, scalable access control with clean APIs, a powerful dashboard, and built-in single sign-on and automated user provisioning.
Records and the with operator, redux
10 minutes by Jon Skeet
A follow up from Jon on last week's issue with C# record types, where the "with" operator doesn't update precomputed properties when changing parameter values. He developed two Roslyn analyzers to identify dangerous usage patterns: one flags record parameters used during initialization and another warns when using "with" on such parameters.
Song recommendations with C# Reactive Extensions
7 minutes by Mark Seemann
Mark demonstrates using Reactive Extensions to refactor a song recommendation algorithm into a pipes-and-filters architecture. He explains how implementing three classes as observables creates composable data streams that follow a sandwich pattern with impure-pure-impure steps.
How to implement offset and cursor-based pagination in EF Core
10 minutes by Anton Martyniuk
Efficient pagination is crucial for enhancing application performance and user experience, particularly when working with large datasets. Pagination ensures quick data retrieval, reduces server load, and improves usability by delivering content in manageable chunks. Anton shows step-by-step how to implement two popular pagination techniques in EF Core: offset-based pagination and cursor-based pagination.
Creating a C# source generator with AI coding agents
8 minutes by Austin Wise
Austin details how he used an AI agent to create a C# source generator for CSV parsing, overcoming the initial hurdle of starting a project in an unfamiliar domain. Key insights include providing clear context with sample input/output, leveraging existing code as architectural guidance, maintaining tests to verify functionality, and balancing AI assistance with manual coding.
And the most popular article from the last issue was: