Skip to main content

Newsletter Archive

Browse through our collection of past newsletters. Each edition is packed with C# and .NET insights.

Page 3 of 10 (28 editions)

March 2, 2026

Catching Up with Recent Wolverine Releases

Jeremy D. Miller recaps a whirlwind of Wolverine releases that sharpen concurrency control, durability, and integrations across the .NET stack. This post spotlights inferred message grouping, classic EF Core domain events, fresh transports like HTTP and NATS, and easier idempotency so teams can ship resilient message driven services with less ceremony.

.NET Rocks! – Making Reliable Software in 2026 with Damien Brady

Carl and Richard sit down with Damien Brady on .NET Rocks! to explore what reliable software looks like in 2026 and how AI fits into the picture. This podcast shares pragmatic ways to use LLMs for code analysis and reviews to raise quality, while reminding us that practice, guardrails, and developer judgment still matter.

Introduction To Permission Authorization In ASP.NET Core 10

Mori shares how role checks spiral out of control in real apps, then introduces permission authorization in ASP.NET Core 10 to model what users can do rather than who they are. This post sets the stage for policies, requirements, and permission claims that keep controllers clean and access consistent across UI and business logic.

The Cross-Cutting Concern Fallacy in .NET Architecture: Is Middleware a Solution or a Trap?

Serhat Kaçmaz tackles the habit of stuffing every cross-cutting concern into middleware and lays out clear boundaries between middleware, MVC filters, MediatR pipeline behaviors, and decorators. With concise .NET 8 examples, this post shows validation via a MediatR pipeline behavior and caching with a repository decorator to keep business logic clean and HTTP agnostic.

Adding External Fonts in .NET MAUI

Leomaris Reyes shows how to plug custom fonts into .NET MAUI the right way, from dropping files in Resources/Fonts to wiring up ConfigureFonts and using a clean alias in XAML. This post also highlights when Android's built-in fonts are enough so you can polish your UI without shipping extra assets.

DbContext Fundamentals — What Every Developer Gets Wrong

Compile & Conquer demystifies DbContext in EF Core, showing how connection management, change tracking, query translation, transactions, and the identity map quietly drive behavior when your data acts weird. This post explains why scoped lifetime keeps things correct and fast while transient silently loses work and singleton piles up stale, thread-unsafe state, giving you a solid mental model to diagnose bugs and design safer services.

Don't miss the next tip 💧

Get a .NET tip and curated links delivered to your inbox every week.

.NET AI Community Standup: Squad: AI agent teams for any project

This edition of the .NET AI Community Standup features Bruno Capuano and Brady Gaster discussing Squad, an AI development team that forms to bring your ideas to life. Using five specific agent roles (lead, frontend, backend, tester and scribe), it's not a chatbot wearing hats. Each team member runs in its own context, reads only its own knowledge, and writes back what it learned.

Getting Started with the Blazor Diagram Component

Héctor Pérez walks through Telerik UI for Blazor's Diagram component, from placing a TelerikDiagram and adding shapes and connections to using tree, layered or force layouts so you can sketch workflows and org charts without wrestling with pixel math. This post highlights practical touches like labels, end caps and selection handles, and points to JSON and styling options when you need deeper customization.

Solving the Distributed Cache Invalidation Problem with Redis and HybridCache

Milan Jovanović shows how .NET 9's HybridCache nails speed with L1 plus L2 caching, yet still needs an invalidation backplane to keep multi-node apps consistent. This post implements Redis Pub/Sub with a background listener to fan out cache removals and also highlights FusionCache as a compatible HybridCache option with a built-in backplane.

6 .NET MAUI Properties You Didn’t Know Work with Buttons

Leomaris Reyes spotlights six underrated .NET MAUI Button properties, from TextTransform and CharacterSpacing to FontAutoScalingEnabled and LineBreakMode, to help you build buttons that look sharp and behave right on every device. With short XAML examples and practical notes on accessibility and responsiveness, this post shows how to round corners, manage text flow, and keep font sizes aligned with user settings for a more polished app.

From MermaidJS to .NET: Bringing Text-Based Diagrams into Your WinForms Apps

MESCIUS shows how to bring MermaidJS text-based diagrams into WinForms using the ComponentOne FlexDiagram control, parsing Mermaid syntax and rendering interactive visuals with a single LoadMermaidGraph call. Beyond the how, this post explains why text-first diagrams fit real apps like workflow editors and documentation tools, with concise C# examples for loading from embedded resources or strings.

.NET AI Essentials - The Core Building Blocks Explained

Jeremy Likness kicks off .NET AI Essentials by showing how Microsoft.Extensions.AI gives you a single, provider-agnostic API for OpenAI, Azure OpenAI, and Ollama, with DI-friendly patterns, streaming, and typed structured outputs that spare you the JSON wrangling. This post focuses on the real-world bits like standardized options, middleware with logging and OpenTelemetry, Aspire-friendly tracing, and multimodal content that make LLM features production ready, with vectors, agents, and MCP coming next.

February 27, 2026

Local Image Embeddings in .NET — CLIP + ONNX

El Bruno introduces a .NET library that brings local CLIP image embeddings to your apps using ONNX Runtime, letting you experiment with multimodal search and image RAG without shipping data to the cloud. This post shows the model download scripts, a minimal C# example, and two runnable samples including an interactive Spectre.Console chat so you can get productive fast.

How to integrate Stripe with ASP.NET Core?

Denis Makarenko walks through Stripe integration options for ASP.NET Core, then implements a tidy server-side flow that creates a Checkout Session and verifies completion with just two minimal API endpoints. This post focuses on the why behind each choice and slips in practical tips like handling minor units, using idempotency keys, and surfacing the session ID for reliable redirects.

T4 templates on modern .NET

Ian Griffiths maps out how to run T4 templates on modern .NET by swapping Visual Studio's legacy engine for the TextTransformCore tool and wiring it into your build with Directory.Build files and a custom MSBuild target. Along the way this post unpacks assembly reference quirks, nesting with DependentUpon, and why teams like Rx.NET still lean on T4 instead of jumping to source generators.

XAML Source-Generation in .NET MAUI makes your app so much better

Break down what XAML source generation is, how it works, and why it can improve performance, reliability, and your overall development experience. If you're building apps with .NET MAUI, Daniel Hindrikes offers something you don’t want to miss.

How Function Composition Can Make Your Code Better

Mori shares a practical guide to function composition in C#, showing how composing small pure functions can turn imperative spaghetti into readable, testable pipelines. This post focuses on real-world refactors like order processing and data flows, explaining the mental model and patterns that make modern C# code easier to reason about and optimize.

Everything You Need to Know About Arrays in C#

Microsoft MVP Gulam Ali H. pulls back the curtain on what arrays really are in C#, from their heap memory layout and reference semantics to the performance cost of bounds checks. By tying arrays to List, Span, strings, and pooling, this post shows how GC behavior and memory patterns quietly shape correctness and speed across your .NET apps.

Don't miss the next tip 💧

Get a .NET tip and curated links delivered to your inbox every week.

Automatic Service Discovery in C# with Needlr: How It Works

Nick Cosentino breaks down how Needlr auto-discovers and registers concrete classes and their interfaces in .NET, trimming boilerplate and preventing those sneaky DI runtime errors. This post explains what gets picked up, how lifetimes and exclusions work, and where source generation or reflection fits so you keep convention and manual control in balance.

LINQPad 9.6 Release Notes

Joseph Albahari rolls out LINQPad 9, a unified Windows and macOS release with C# 14 support, a redesigned UI, and a smart AI coding agent that can refactor code, write tests, and convert SQL to LINQ. This post highlights how the new provider model, faster editor and SQL tooling, and file-based app support can speed up everyday prototyping and database work across .NET 6-10.

Uno Platform 6.5: Community Standup

Sam Basu previews the Uno Platform 6.5 community standup, highlighting why these upgrades matter for building real world cross platform .NET apps. This post zeroes in on productivity boosts like Studio's agent-first AI via Antigravity MCP, a default Hot Design visual loop, and a new scope selector, plus core improvements such as Unicode TextBox input, sturdier WebView2, broader Wasm drag and drop, and sharper diagnostics that make C# and XAML work feel smoother.

.NET EF Core Should Be Your Default in 2026, Not Dapper

Vivek Baliyan revisits the Dapper vs EF Core default and shows why the once clear performance win is no longer the deciding factor. This post highlights how EF Core's productivity and evolving features can speed teams up in real apps, with pragmatic notes on when a micro ORM still makes sense.

Blue Blazes S04E02: GitHub Copilot App Modernization for .NET - featuring Matt Soucoup

Jonathan J. Tower talks with Matthew Soucoup about GitHub Copilot's App Modernization agent for .NET, unpacking how it assesses legacy codebases, plans upgrades, and executes tasks with persistent memory to keep teams moving. If you are wrangling aging .NET Framework or multi-version apps, this podcast shows how AI can de-risk migrations to modern .NET and the cloud while complementing helpers like Web Forms to Blazor tooling.

Blazor Basics: Should You Migrate to .NET 10?

Claudio Bernasconi makes the case for upgrading Blazor apps to .NET 10, not just because it is LTS but for the practical gains it brings. This post highlights smaller payloads for faster startup, a PersistentState attribute that tames prerendering on Blazor Server, new JS interop that can construct JS objects, and NavigationManager.NotFound for consistent 404s across render modes. The focus is on what real apps get in return: quicker loads, less glue code and more correct behavior.

February 25, 2026

Mastering Industrial Camera Integration: C# + VisionPro Real-Time Acquisition Deep-Dive

JIN walks through building a production-ready C# integration with Cognex VisionPro for real-time industrial camera acquisition, from device enumeration and connections to single-shot and continuous preview. In this post you pick up pragmatic patterns for safe resource disposal and troubleshooting the classics like 'connected but no frames' and memory leaks so your capture pipeline runs 24/7 without drama.

Reliably Refreshing the WebView2 Control

Rick Strahl explains why WebView2.Reload can leave previews stale and shows how to force a true hard refresh in C#, so images and other dependent resources actually update. In this post he compares a simple URL reset, Profile.ClearBrowsingDataAsync, and a DevTools cache clear, with practical notes for WPF and WinForms and when to use each.

Collection Performance: High-Performance Collection Randomization in .NET

Randomizing large collections without tanking throughput is trickier than it looks, and dotnettips digs into what actually makes a shuffle fast in .NET. This post compares popular techniques with cache friendly in-place algorithms, explains how Random usage and allocations impact scalability, and shares practical snippets you can drop into arrays and lists.

EF Core State Validation

Ricardo Peres tackles those mysterious SaveChanges exceptions by validating EF Core state ahead of time with ChangeTracker metadata, surfacing friendly ValidationResult messages for required and max length issues. This post then shows three practical ways to bring full Data Annotations validation into EF Core using a SaveChanges override, a SaveChangesInterceptor, or the SavingChanges event so you can pick the least intrusive option for your app.

ACID in Practice for .NET: Isolation Levels, Anomalies, and Transaction Pitfalls

Sudhir Mangla untangles why isolation levels, not just transactions, decide whether your .NET app hits lost updates, phantoms, or deadlocks, especially when RCSI and Snapshot shift behavior in Azure SQL and RDS. This post delivers battle-tested EF Core patterns like RowVersion concurrency, savepoints, targeted UPDLOCK usage, plus outbox and idempotency with Polly retries to keep your data sane under load.

Local Embeddings in .NET — The Easy Way

El Bruno introduces ElBruno.LocalEmbeddings, a lightweight NuGet package that generates embeddings locally in .NET with a few lines of C#, perfect for tinkering with Foundry Local or Ollama. This post walks through single and batch generation and cosine similarity to help you prototype semantic search and RAG fast without spinning up cloud vector infrastructure.

Don't miss the next tip 💧

Get a .NET tip and curated links delivered to your inbox every week.

How to Implement Abstract Factory Pattern in C#: Step-by-Step Guide

Nick Cosentino lays out a step-by-step path to implementing the Abstract Factory pattern in C#, complete with runnable examples that go from interfaces to concrete factories and client code. In this post you will learn how to keep related object families consistent, plug factories into DI, dodge common gotchas, and add new variants without sprinkling conditionals everywhere.

C# 14 in .NET 10: language features that actually matter in production

C# 14 is not about syntactic novelty. It is about reducing friction in patterns teams already use: extensions, domain modeling, source generation, and performance-sensitive code.. Anderson Godoy walks us through the changes that will stand out the most.

Microsoft .NET Code Analysis: Efficient String Prefix Checks — StartsWith() vs.IndexOf()

dotNetDave digs into .NET code analysis rule CA1858 to show why StartsWith is the right tool for string prefix checks compared to IndexOf, covering performance, clarity, and culture-safe comparisons. This post explains when to use StringComparison, what the analyzer is nudging you toward, and how a tiny change can trim allocations in hot paths.

Aspire App Lifecycle Guide

Microsoft's Aspire lifecycle guide walks through inner-loop development with aspire run, local deployment with aspire deploy, and CI/CD publishing via GitHub Actions, all using a single AppHost to keep environments consistent. In this post you follow a Blazor and SQL Server example with persistent volumes and generated Docker Compose artifacts that make it easier to move from local debugging to production-ready containers.

Everyone Tunes C#.NET APIs Wrong

Ashok Reddy shares how he turned sluggish C# and .NET endpoints into snappy APIs with a measured approach that delivered a 20x speedup. This post zeroes in on real bottlenecks through profiling and tackles common culprits like chatty logging and request queuing so your services stay fast when the load gets real.

The EF Core AsNoTracking Mistake That Quietly Broke My Data Layer

Michael Preston shares how a one-line EF Core optimization using AsNoTracking trimmed memory and latency but quietly broke identity resolution across queries in the same request scope. This post peeks under EF Core's hood and shows when to keep tracking on, when no-tracking is safe, and how to dodge sneaky relationship bugs.