Skip to main content

Newsletter Archive

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

Page 4 of 5 (13 editions)

January 19, 2026

XAML Studio is now Open Sourced

Michael Hawker opens up XAML Studio under the .NET Foundation, turning the WinUI prototyping workhorse into a community-driven project. This post explains how years of building XAML Studio spawned reusable Windows Community Toolkit controls like SwitchPresenter, the Sizer suite, and experimental Adorners, and what V2 adds for faster XAML iteration with live editing and debugging.

The 2025 Year-End Performance Review for .NET

Viktor Ponamarev recaps a zero overhead year for .NET, where Adaptive Server GC in .NET 9 and sharper JIT work in .NET 10 delivered real memory and throughput gains with almost no tuning. This post shows how params Span in C# 13 and the preview of C# 14 killed hidden array allocations while Garnet, MemoryPack, Sep, and Frozen collections turned common workloads into lean, fast paths. Expect practical insights on getting faster apps by upgrading the runtime and choosing specialized libraries instead of rewriting logic.

Deep C# – The Console

Mike James demystifies the Windows console for .NET by showing how to open and attach a console from non-console apps using a few Win32 calls. Ideal when you want quick logging or interactive I/O without building a custom UI.

Introduction to Delegates in C#

Ajay Narkhedkar demystifies C# delegates showing how to pass behavior without tight coupling. This post walks through single-cast and multicast delegates, passing delegates as parameters, and the built-in Func, Action, and Predicate, then connects the dots to events and LINQ. Expect practical patterns to make your code more flexible, testable, and calm under change.

C# 14 Improved Lambda Expressions: Using ref, in, and out Parameters for High-Performance Code

Raghunath walks through C# 14’s upgraded lambdas that accept ref, in, and out parameters, trimming boilerplate and enabling in-place updates and copy-free reads. This post highlights when these modifiers shine and closes with a handy decision guide to balance speed and readability.

Custom Validator in ASP.NET Core MVC (Beginner-Friendly)

Walk through creating custom validation in ASP.NET Core MVC, from a simple MinimumAge attribute to a cross property date check with IValidatableObject. This post shows how validation fires in API controllers, how errors surface via ModelState, and how to exercise the rules in Postman without any Razor or JavaScript. Perfect when built in attributes are close but not quite enough and you want clean, reusable domain rules.

Enjoying these links? 💜

Get them delivered to your inbox every Monday, Wednesday, and Friday.

Why Serious Engineering Teams Are Reconsidering .NET in 2025

Spencer Thomason argues that .NET 10 is winning teams back through refinement, not reinvention, with runtime and memory improvements that actually matter under load and less ceremony like running a single C# file. If you are weighing stacks, you will find a practical view of how modern C# now fits the realities of enterprise delivery.

.NET Concurrency, Parallelism, and async/await

Patrik Duch untangles the knots between concurrency, parallelism, and async/await in .NET, clarifying that async is about nonblocking work rather than extra CPU. With a clear mental model and a practical CI test example, this post shows when to embrace concurrency and when true parallelism actually makes things faster. Expect fewer threading myths and more confident performance choices.

C# 14 Field Keyword: Simplifying Property Accessors

Laurent Kempé explores C# 14's new field keyword and how it bridges the gap between auto-properties and full property logic. This post shows practical patterns like validation, transformations, lazy initialization, and MVVM-friendly change notifications without manual backing fields, along with nuances such as contextual usage and property initializers. The result is cleaner properties, simpler migrations, and fewer refactoring pitfalls in .NET 10 projects.

Add Tailwind 4 to an ASP.NET Core 10 MVC or Razor Pages project

Jerrie Pelser shows how to wire Tailwind 4 into an ASP.NET Core 10 MVC or Razor Pages app without a heavy front-end pipeline. Using the Tailwind CLI, the new @import and @source directives, and a small MSBuild target, this post generates site.css in wwwroot on every build while keeping client files neatly isolated. Ideal if you want utility-first styling that is predictable in local dev and CI.

Build AI Agents with Microsoft Agent Framework in C#

Mashrul Haque introduces Microsoft Agent Framework, the preview successor to AutoGen and Semantic Kernel, and shows how to build practical AI agents in C# without duct tape. This post covers getting started with Microsoft.Extensions.AI, adding memory with threads, wiring up C# tools, and orchestrating multiple agents, plus hard won notes on token costs, errors, and shifting APIs. A clear look at what you gain by consolidating on the new model and how to try it safely.

Simplifying Code Signing for Windows Apps: Artifact Signing (GA)

Microsoft rebrands Trusted Signing to Artifact Signing and makes it generally available for Windows app developers. This post shows how the fully managed service handles short-lived certificates, verified publisher identity, RBAC, and full audit trails while plugging into GitHub Actions, Azure DevOps, Visual Studio, MSBuild, and signtool.

January 16, 2026

C# 14 More Partial Members: Partial Events and Partial Constructors

C# 14 widens the "partial" bridge by letting you split instance constructors and events into defining and implementing declarations. The post unpacks the strict one-and-one pairing, why partial events are deliberately not field-like (custom add/remove only), and the real win for source generators clean separation of API surface from generated plumbing for weak events, interop, and bindings plus gotchas around lookup/metadata, signature matching, attributes, and docs.

Azure Cosmos DB vNext Emulator: Query and Observability Enhancements

Azure Cosmos DB's Linux-based vNext emulator gets a serious tune-up: a more capable query engine (nested/cross JOINs, string/array operators, cleaner subdocument handling) and first-class OpenTelemetry so you can trace, log, and grab metrics locally like production. The post shows practical queries, Docker Compose wiring for Jaeger/Prometheus, and health probes that pair nicely with Testcontainers handy for .NET devs validating complex data access patterns and CI pipelines without touching the cloud.

Enterprise Patterns for ASP.NET Core Minimal API: Identity Map Pattern

Chris Woodruff demystifies the Identity Map for ASP.NET Core Minimal APIs with the rule of thumb: one database row, one in-memory object. He shows how EF Core's DbContext already provides this behavior, why multiple DbContexts and AsNoTracking can cause subtle lost-update bugs, and walks through a before/after refactor that aligns Identity Map with a Unit of Work. For non-tracking data access, he includes a lightweight C# identity map and a Dapper-friendly unit of work to keep your customer from turning into three people during a single request.

The Practical Series Every .NET Developer Needs Before Building Real Backends (Part 1)

This practical series makes backend dev feel less like framework wizardry and more like solid C#: it starts by contrasting .NET Framework vs .NET Core, then digs into production-grade fundamentals OOP in the real world, delegates/events/lambdas, extension methods, generics, and LINQ. Part 1 lays out the roadmap with bite-size explainers and tees up performance-minded topics next (EF Core + LINQ, async/await, GC) so your services behave predictably when traffic and data grow.

What is Redis and how does it fit into Clean Architecture in a .NET application

This guide demystifies Redis for .NET devs covering its in-memory speed, data structures, persistence, pub/sub, TTLs, and clustering with practical StackExchange.Redis snippets. The real value is architectural: wire Redis into Clean Architecture by putting it in Infrastructure behind an ICacheService and keeping controllers blissfully unaware. Round it out with production-minded tips like TTLs, payload limits, a singleton ConnectionMultiplexer, and Azure Redis to shave load off your database and keep things snappy.

3x Faster, 99.9% Less Memory: Optimizing .NET String Processing

By replacing string.Split with ReadOnlySpan slicing and a small ref struct, this log parser goes 3x faster while allocating just 470 bytes on 100k lines GC basically takes a coffee break. It's a practical tour of zero-allocation string processing in .NET, showing how spans and stack-friendly types tame memory churn in real-world workloads.

Enjoying these links? 💜

Get them delivered to your inbox every Monday, Wednesday, and Friday.

.NET 10 and ASP.NET Core: Refinements That Matter in Production

A tour of ASP.NET Core in .NET 10 that focuses on production-ready refinements: passwordless Identity with passkeys, richer built-in OpenTelemetry metrics, smarter memory behavior for long-running services, and thoughtful polish across Minimal APIs, OpenAPI, and Blazor. With concrete snippets (passkey setup, SSE streaming, YAML OpenAPI, reusable validation), it leans into "simple by default, extensible when needed" ergonomics while tightening security and observability. If your APIs hum 24/7 or your Blazor app has grown up, this is less yak‑shaving and more shipping.

Handling Time Zones & Dates Correctly in .NET

Time zones look easy until your nightly job runs an hour early and users see "future" timestamps. This .NET explainer shows why offsets, DST, and historical rule changes make date-time tricky, and lays down the golden rule: store and transmit UTC, convert to local time only at the edges (like the UI). A practical primer to keep data consistent across systems and your users' clocks sane.

Understanding SQL and NoSQL Distributed Transaction Problem in C# — Transactional Outbox Pattern

Recep Serit breaks down why mixing SQL Server and NoSQL in a single TransactionScope doesn't fly in .NET NoSQL drivers skip MSDTC/2PC, turning dual-writes into a consistency trap. He demonstrates the Transactional Outbox pattern with EF Core: commit your change and an Outbox row atomically, then let a background worker forward to NoSQL or a broker for at-least-once, eventual consistency. A practical, beard-friendly blueprint for polyglot persistence without distributed transaction drama.

Type-Safe Collections in C#: How NonEmptyList Eliminates Runtime Exceptions

Empty collections sneaking into your business logic? This explainer introduces NonEmptyList for .NET 6/8 a type-safe collection that guarantees at least one element then walks through head/tail deconstruction, Map/FlatMap, seedless Reduce, async/parallel helpers, an immutable variant, and serialization/EF Core integration. A realistic order-processing pipeline shows how moving "non-empty" into your types shifts failures to the compiler and keeps your LINQ honest.

TDD in .NET: Refactoring Safely

Ajay Kumar shows how TDD makes refactoring in .NET feel safe, turning 300-line if-fests into small, testable pieces. Through clear C# examples extracting a DiscountCalculator, introducing shipping strategies, and writing characterization tests he leans on Red-Green-Refactor, practical patterns, and tools like Stryker.NET to prevent regressions. A friendly, test-first playbook for trimming duplication and fixing bugs once across your codebase.

EF Core 10 Introduced LeftJoin and RightJoin

EF Core 10 adds LeftJoin and RightJoin LINQ operators, letting you express joins with far less ceremony than the old GroupJoin + DefaultIfEmpty + SelectMany pattern. The post shows the before-and-after code along with the SQL EF generates, making the readability and correctness gains crystal clear. A tidy quality-of-life upgrade for anyone tired of re-remembering left-join gymnastics in LINQ.

January 14, 2026

Does C# 14’s field Keyword Replace FluentValidation?

A crisp walkthrough of C# 14’s field keyword and why it doesn’t replace FluentValidation. Field streamlines property-level invariants by letting you set the compiler-generated backing field directly, while FluentValidation remains the go-to for contextual, cross-property, user-friendly input rules at application boundaries. The upshot is a layered approach: field for safeguarding domain integrity, FluentValidation for rich input validation.

Rock Your Code: Code & App Performance for Microsoft .NET (5th Edition)

David McCarter’s Rock Your Code: Code & App Performance for Microsoft .NET (5th ed.) is a hands-on, benchmark-driven guide to writing fast, scalable C# for .NET 10 and beyond. It dives into real-world patterns for memory, collections, LINQ, strings, I/O, and more plus analyzers, caching, logging, serialization, source generators, and the Spargine library balancing runtime speed with cloud cost. A companion to his coding standards book, it helps you think like a performance engineer from the first line of code.

The Complete Guide to C# .NET Input Controls

Ever wrestled with phone-number masks, culture-aware numbers, or a dropdown that needs to be searchable? This guide surveys C#/.NET input controls text, masked, numeric, date/time, and selection then shows how ComponentOne’s editors (C1TextBox, C1MaskedTextBox, C1NumericBox, C1DateRangePicker, C1MultiSelect, etc.) bring validation, formatting, and localization together across WinForms, WPF, ASP.NET Core, Blazor, WinUI, and .NET MAUI. It’s a practical look at when to stick with native widgets versus reaching for richer controls to cut boilerplate and keep behavior consistent.

Channels in C# .NET: Building High-Performance Concurrent Pipelines

A friendly primer on System.Threading.Channels shows how to build high-throughput, async pipelines in .NET without drowning in locks and polling. It contrasts Channels with ConcurrentQueue and manual synchronization, highlights bounded channels for built‑in backpressure, and walks through producer/consumer patterns using ChannelWriter/Reader, await foreach, and graceful completion. You’ll also get practical use cases, best practices, and context on why ASP.NET Core leans on Channels for predictable performance under load.

TDD in .NET: Practicing TDD in a Web API Project

Ajay Kumar walks through a pragmatic, layered TDD approach for a .NET Web API by building a “get expenses by category” endpoint in an Expense Manager app. He splits responsibilities across controller, service, and repository, using Moq and in-memory fakes to keep tests fast, DTOs to protect boundaries, and the red–green–refactor loop to guide design. It’s a clear blueprint for what to test, what to mock, and how to keep your API thin, tidy, and change‑friendly.

The C# ‘Best Practice’ that is secretly killing your API performance

A cautionary tale for clean-code fans: spinning up a new HttpClient in a using block per request can quietly trigger socket exhaustion under load thanks to TIME_WAIT. The author recounts a real production outage at an event check-in system and shows how IHttpClientFactory, named clients, and DI-backed connection pooling fix it with reused sockets and sensible timeouts. A crisp reminder that HttpClient is special and how to keep high-throughput .NET APIs from melting their ephemeral ports.

Enjoying these links? 💜

Get them delivered to your inbox every Monday, Wednesday, and Friday.

Practical JWT Mastery in .NET

Part 4 of a practical JWT-in-.NET series strips the mystery from signatures covering hash basics, HMAC (HS256), and why symmetric keys can bite you in microservices. It contrasts RSA/ECDSA’s private/public split, introduces JWKS for safe rotation and discovery, previews verification in code, and tees up how a validated token becomes HttpContext.User reminding us that strong, well-guarded keys (not algorithm glitter) keep your APIs honest.

The 10 Most Interesting C# Bugs We Found in Open Source in 2025

Static-analysis sleuthing meets real-world C# in a roundup of ten noteworthy bugs uncovered across open-source projects in 2025. Rather than just gawking at glitches, it teases out the patterns behind them and how analyzers and better idioms can catch issues earlier handy guardrails for your day-to-day .NET work. A light, practical tour of pitfalls that quietly ship to prod and the habits that keep them from tagging along.

.NET 10 & C# 14: Less Code, Better Performance

.NET 10 and C# 14 get a down-to-earth walkthrough aimed at everyday dev pain points less boilerplate, more zip. On the C# side you’ll see chained ??= for deep object graphs, a new field keyword to safely work with auto-property backing fields, and ref/out/in-friendly lambdas for zero-copy hot paths. Platform-wise, it highlights cleaner left-join patterns and JSON partial updates in EF Core, built-in validation for minimal APIs, and friendlier quick-script workflows practical wins from CRUD to performance-heavy code.

Enable Modern Run dialog box in Windows 11

Windows 11 Insider builds are rolling out a modernized Win+R Run dialog, and this walkthrough shows how to enable it either via a Settings toggle or a quick registry edit, then restart Explorer). Targeting recent Dev/Beta previews like build 26220, it’s a small but welcome quality-of-life tweak for developers who live in Win+R to launch tools, scripts, and system commands.

Getting Started with Microsoft Agent Framework

A friendly, code-first tour of Microsoft Agent Framework (MAF) positioned as the successor to Semantic Kernel showing how to build C# agents with tool/function calling, strongly-typed structured outputs, and durable threads without playing framework roulette. It also covers RAG with a vector store and TextSearchProvider plus Azure AI Foundry’s managed agents, illustrating how MAF blends SK’s integrations with AutoGen-style orchestration to take you from local experiments to production.

Background Jobs in .NET: Hangfire, Quartz, Temporal in 2026

A clear, real-world guide to background work in .NET 9+, comparing BackgroundService, Hangfire, Quartz.NET, and Temporal what each does well, how retries with exponential backoff are handled, and how to wire up monitoring and tracing with OpenTelemetry. It includes concise C# examples and a pragmatic decision map to know when a simple hosted service will do, when you need a scheduler and dashboard, and when your flows call for a durable workflow engine in 2026.