Newsletter Archive
Browse through our collection of past newsletters. Each edition is packed with C# and .NET insights.
Page 1 of 5 (15 editions)
ASP.NET Core Pitfalls - Content Type Mismatch
Ricardo Peres highlights a subtle ASP.NET Core pitfall where the Consumes attribute treats Content-Type and charset as an exact match, which can route requests to nowhere and return a 404. Helpful for API authors chasing sneaky 404s tied to content negotiation.
Solving Message Ordering from First Principles
Milan Jovanović follows message ordering from first principles and shows why most systems need per aggregate ordering, not a global sequence. This post moves from domain events and an Outbox for reliability, through the pitfalls of competing consumers, to sagas as the way to model ordered workflows at scale in .NET, with broker features like Service Bus sessions and Kafka partitions helping but not replacing good patterns.
Enterprise Patterns for ASP.NET Core: Front Controller and MVC Pattern
Chris Woodruff distills how Front Controller and MVC keep ASP.NET Core from devolving into a crowd of tiny frameworks pretending to cooperate. In this post he treats the pipeline as a disciplined gateway for auth, logging, and errors, keeps controllers thin, and shows minimal yet clear examples that centralize cross-cutting concerns. You get before and after code, a compact custom middleware router, and practical advice on when the structure pays off versus when to stay simple.
Implementing Level of Authentication (LoA) with ASP.NET Core Identity and Duende
Damien Bowden demonstrates how to make your .NET apps care about how users authenticated by implementing Level of Authentication with ASP.NET Core Identity and Duende. This post clarifies amr vs loa, issues loa and loi claims on passkey sign-in, and uses DPoP with an authorization handler to allow only phishing resistant sessions to reach your API. Expect practical patterns for Blazor OIDC, Duende profile services, and a small fix for the passkey amr quirk.
A Complete Guide to Converting Markdown to PDF in .NET C#
Bjoern Meyer walks through converting Markdown to PDF in .NET using TX Text Control, powered by the TXTextControl.Markdown.Core package and ServerTextControl. This post explains why PDF still rules for distribution, then shows a quick start and how to programmatically control page layout, headers and footers, and styles for production-worthy output. If you need Markdown in and branded, accessible PDFs out, the examples are ready to plug into APIs or workflows.
How to Read Excel Files with C#
Nate Bennett shows a fast, Office-free way to read Excel in C# using Spire.XLS. The payoff is simpler deployments and better performance than COM interop across different environments.
Enjoying these links? 💜
Get them delivered to your inbox every Monday, Wednesday, and Friday.
Exploring Marshal Methods in .NET MAUI
Leomaris Reyes explains marshal methods in .NET MAUI as your app's interpreter between managed C# and native OS APIs, and why that matters when you tap into device features. This post spotlights .NET 10 updates that affect Android: marshal methods enabled by default for faster startup and a new ArtifactFilename metadata to handle quirky Maven AAR/JAR names. If you ship MAUI apps, you will pick up practical tips on diagnosing startup freezes and keeping Java dependencies reliable.
Learning C#? Let's Start Together! (Part 1: Hello, C#!)
Janindumaleesha kicks off a beginner-friendly C# series with a plain-English tour of what C# is, how it sits on the .NET platform, and why it is a practical choice for building apps and games. If official docs feel overwhelming, this post sets a low-friction path to installing tools next and turning curiosity into working code.
Collection Expression Arguments in C# 15+
Steven Giesel explores a C# 15+ proposal that lets collection expressions accept arguments, like capacity or comparers, right in the brackets. This post connects the ergonomic C# 12 syntax with practical needs like pre-sizing lists or setting a HashSet comparer, which can reduce allocations and make intent clear.
File logging in ASP.NET Core made easy with Serilog
Round The Code shows how to add tidy file logging to ASP.NET Core with Serilog, from wiring up UseSerilog and a file sink in appsettings.json to logging from a Minimal API with ILogger. If you want clean rolling log files with a readable template and the right signal to noise, this is a quick win.
Explaining Contract Tracked Changes Automatically Using .NET C# and AI
Bjoern Meyer shows how to turn messy contract redlines into review ready explanations using .NET C#, TX Text Control, and the OpenAI API. This post pairs tracked changes with their related comments, streams the context to an LLM, and enforces a strict JSON schema so every change is justified or flagged with confidence and evidence.
How to Build High-Performance Microservices Using .NET 10?
Sparkle Web maps out a practical path to high performance microservices on .NET 10, starting with design choices like single responsibility, stateless services, and a database per service. Ideal if you want to ship services that scale smoothly without trading off reliability or developer sanity.
Implementing API Versioning in .NET
Sai Nitesh Palamakula lays out a practical path to API versioning in ASP.NET Core, explaining when to use URL, query string, header, or media type versions and the tradeoffs of each. This post shows how to wire up Asp.Versioning with Swagger and includes controller patterns for every strategy so your APIs can evolve without breaking clients.
launchSettings.json Explained: The File Every ASP.NET Dev Ignores (Until It Breaks Something)
Donie Sweeton demystifies launchSettings.json, the ASP.NET Core file that quietly tells Visual Studio and dotnet run how to start your app in development. This post gives a clear mental model of profiles, Kestrel versus IIS Express, and injected environment variables. You will see why machine specific ports cause Git conflicts and how a tidy launchSettings.json makes local ports, HTTPS, and Swagger behave.
Background Jobs in .NET: Hangfire, Quartz, Temporal in 2026
Aliaksandr Marozka maps the .NET background job landscape for 2026, comparing .NET 9 BackgroundService, Hangfire, Quartz.NET, and Temporal through hard-won project lessons. This post highlights the production tradeoffs like retries with exponential backoff, observability, schedule complexity, and ops overhead, then boils them into a clear decision path so you know when a simple worker is enough and when to reach for a scheduler or a workflow engine.
What Is a Lambda Expression (and Why C# Feels Incomplete Without It)
Melisa Akkuş gives a crisp tour of C# lambda expressions, from the arrow syntax to when to use single-line vs block forms. This post shows how lambdas unlock readable LINQ, delegate-based APIs, and event handlers, and why so much of modern C# would feel clunky without them. Expect bite-size examples you can drop into everyday code.
Implementing A2A protocol in NET: A Practical Guide
Mariyam Ashai introduces the Agent to Agent Standard for interoperable AI and shows how to wire it up in .NET 8 with ASP.NET Core. In this post you build a tiny currency agent and a console client with the A2A and A2A.AspNetCore packages, learning how Agent Cards, Tasks, and message Parts create a reliable contract between agents.
Generative AI with Large Language Models in C# in 2026
Jeremy Likness gives .NET devs a clear, jargon-free tour of generative AI essentials, from tokens and embeddings to prompts, tools, RAG, MCP, and the idea of agents. If you are deciding how to evaluate models and wire up tool calls or a cloud to local workflow, this post delivers the mental model and vocabulary to move from experiments to real apps.
Enjoying these links? 💜
Get them delivered to your inbox every Monday, Wednesday, and Friday.
TDD in .NET: Anti-Patterns - When NOT to Use TDD
Ajay Kumar digs into TDD in .NET with a pragmatic lens, showing how common anti-patterns like test obsession, over mocking, and skipping refactoring quietly tank developer confidence and speed. In this post, C# examples contrast brittle implementation focused tests with behavior driven tests, and explain when TDD shines and when prototyping, UI heavy work, or performance sensitive code deserve a different approach. Expect practical guardrails like aiming for meaningful coverage, mocking only externals, and keeping feedback loops fast.
MewUI - A lightweight code-first .NET UI toolkit focused on fluent C# markup and NativeAOT-friendly
Aprillz's MewUI is an experimental, code-first .NET GUI library built for NativeAOT and trimming that swaps XAML for fluent C# markup. If you want to ship lean utilities that start fast and stay tidy, the samples show how far modern C# can go.
What's New with APIs in .NET 10: Taking a Look at Real Improvements
Dave Brock tours .NET 10 and C# 14 from an API developer's perspective, grounded in a realistic order management sample. This post highlights built-in Minimal API validation, OpenAPI 3.1 docs, EF Core 10 named query filters and server-sent events that trim boilerplate and improve safety, plus C# touches like field-backed properties and null-conditional assignment to simplify patches.
C# 14 in Action: High-Performance Lambda Expressions with Parameter Modifiers
Raghunath explores how C# 14 upgrades lambda expressions with parameter modifiers like ref, in, and out, bringing them much closer to full method parity. If you care about intent-driven code, fewer allocations, and more expressive APIs, this reads like a handy roadmap.
.NET 10 & C# 14: Less Code, Better Performance
James Miller spotlights .NET 10 and C# 14 upgrades that cut ceremony and sharpen performance. This post shows how the field keyword streamlines guarded properties, ref friendly lambdas avoid copies, and EF Core niceties like LeftJoin and JSON partial updates tame data work, with minimal API validation and single-file runs trimming the boilerplate.
DevExpress Blazor AI Chat Agent2Agent (A2A) Protocol Integration
Dmitry Tokmachev shows how to connect DevExpress Blazor AI Chat to Agent2Agent compliant AI agents with a lightweight adapter that translates A2A messages into IChatClient. The approach highlights why open agent standards matter for .NET apps by making cross-platform agents pluggable in a familiar chat UI.
ReSharper and Rider 2025.3.2 Updates Out Now!
Sasha Ivanova highlights Rider and ReSharper 2025.3.2, adding ACP agent registry support to Rider's AI Chat and a batch of fixes that smooth everyday C# workflows. In this post Hot Reload is reliable again for Blazor WebAssembly and interceptor scenarios, MAUI analysis and Android deployment are corrected, inspections understand C# 14 extension members, and multi-targeted builds are steadier.
Choosing the Right .NET MAUI Picker: Date, Time, and Lists Made Simple
Hariram Subramanian breaks down when to use DatePicker, TimePicker, DateTimePicker, and Picker in .NET MAUI, mapping real app flows to the right control. This post highlights MVVM friendly bindings, cross platform consistency, and practical touches like cascading lists and dialog vs inline modes, topped off with a quick decision checklist and a GitHub sample. Expect guidance you can drop into scheduling, filtering, and everyday forms without fighting the UI.
How does Aspire expose resource connection info to the Azure Functions runtime?
Safia Abdalla explains how .NET Aspire bridges the configuration gap between Azure Functions triggers and Aspire client integrations using the IResourceWithAzureFunctionsConfig adapter. This post shows how WithReference injects the right environment variables for both emulator connection strings and identity based Azure setups, so Functions bindings and your SDK clients are happy without hand rolled config.
Simple OCR and NER Feature Extraction in C# with ONNX
Scott Galloway lays out a beginner friendly, all local pipeline in C# to turn scanned text into structured entities using Tesseract for OCR and a BERT NER model via ONNX Runtime. You will learn how tokenization, inference, and BIO decoding fit together, how to merge WordPiece tokens, and when this deterministic approach beats an LLM on speed, cost, and privacy. A NuGet helper is coming, but the copy paste code here gets you from image to people, orgs, and places today.
Debugging NServiceBus in Visual Studio Code
Particular Software walks through setting up VS Code to build and debug NServiceBus solutions that span multiple projects. This post explains how to wire up tasks.json and launch.json, launch console and web endpoints, attach to running processes, and use compound configurations to debug several endpoints at once. Great for cross platform .NET work when you want Visual Studio level control in a lighter editor.
Visual Studio 2026: How AI Is Transforming the Way Developers Code
Lucy Njeri Muturi walks through Visual Studio 2026's AI-first upgrades, from Copilot's Cloud Agent and context-aware chat to adaptive paste and profiler assistance. This post highlights how these features smooth out real work like debugging failing tests, reviewing PRs, refactoring and setup through MCP while keeping you in control.
Enjoying these links? 💜
Get them delivered to your inbox every Monday, Wednesday, and Friday.
.NET Rocks! - App Distribution on Windows with Shmueli Englard
Carl Franklin and Richard Campbell talk with Shmueli Englard about real-world paths to ship Windows apps. This podcast digs into MSIX packaging, using the Microsoft Store for updates, licensing and payments, and when rolling your own updater makes more sense. Expect pragmatic pros and cons to help you choose a distribution model that fits your .NET app without surprises.
Visualizing Geo-Spatial Data in .NET MAUI with Interactive Charts and Maps
Walk through building a geo-analytics dashboard in .NET MAUI with Syncfusion Charts and Maps, wired up with MVVM and modular user controls. This post shows how a map selection drives KPIs, trend lines, and circular charts to explore real EV adoption data using XAML and C# bindings, with a sprinkle of mobile-friendly touches like bottom sheets.
Building Resilient APIs with the Retry Pattern
Assis Zang digs into why APIs fail in the real world and shows how the Retry pattern keeps flaky integrations from derailing user experience. Using Polly 8 in ASP.NET Core, this post builds a resilience pipeline with exponential backoff, sensible retry conditions, and a minimal API that calls a secondary service.
Encrypting Properties with System.Text.Json and a TypeInfoResolver Modifier(Part 1)
Steve Gordon kicks off a series on transparently encrypting JSON properties with System.Text.Json using a TypeInfoResolver modifier instead of custom converters. This post shows an attribute-first, DI friendly approach that hooks JsonPropertyInfo get and set delegates so sensitive strings serialize as encrypted values and round-trip cleanly in a minimal API. It grounds the idea in real needs like storing OAuth tokens and sets up Azure Key Vault integration and crypto shredding for the next part.
Multi-Provider Feature Flags in .NET with OpenFeature
André Silva shows how to tame scattered feature flags in .NET by composing multiple providers behind a single OpenFeature client. This post walks through wiring OpenFeature.Providers.MultiProvider with dependency injection, choosing strategies like FirstMatchStrategy, and applying patterns such as primary plus fallback, gradual migrations, and tenant routing. A practical path to vendor-agnostic flags without rewriting call sites.
Stop Building SPAs for Every Screen: htmx + ASP.NET Core Razor Pages Workshop(Open)
Chris Woodruff opens a free htmx + ASP.NET Core Razor Pages workshop that swaps the SPA tax for server-rendered fragments and a clean hypermedia loop. This post includes step-by-step labs, instructions, and a GitHub repo so you can carry these patterns into real apps with less JavaScript baggage.