Newsletter Archive
Browse through our collection of past newsletters. Each edition is packed with C# and .NET insights.
Page 4 of 10 (28 editions)
Local Images in MAUI Blazor: One Problem, Four Solutions, One Winner
Joachim Leonfellner shows off four methods to use local images in MAUI Blazor. Along the way, he covers the pros and cons and identifies a clear winner.
Enterprise Patterns for ASP.NET Core Minimal API: Data Transfer Object Pattern
Chris Woodruff explains how the Data Transfer Object pattern keeps ASP.NET Core Minimal API contracts stable by separating domain and persistence models from what clients see, avoiding the pitfalls of returning EF Core entities. This post shares practical mapping techniques, before and after endpoints, and sensible rules for when DTOs matter so your APIs are safer, slimmer, and easier to evolve.
Getting Started with the Blazor Skeleton Component
Héctor Pérez walks through the Telerik UI for Blazor Skeleton component and shows how skeleton screens make loading states feel faster while keeping layouts stable. Using a simple IsLoading flag and matching shapes and animations to avatars, text, and images, this post demonstrates a practical pattern you can drop into real Blazor pages for a smoother UX.
Introducing Flexible Pricing for Avalonia Accelerate
Mike James introduces flexible rent-to-own pricing for Avalonia Accelerate, where monthly subscribers receive a permanent license after twelve months and shipped apps keep running thanks to no runtime checks. This post also unveils a refreshed customer portal and reseller redemption that streamlines billing, seat management, upgrades, and support, making professional .NET UI with Avalonia easier to adopt in real teams.
The Valet Key Pattern on Azure: Secure Direct Uploads with SAS and ASP.NET Core
Sudhir Mangla walks through the Valet Key pattern so your ASP.NET Core API authorizes uploads while Azure Blob Storage does the heavy lifting using User Delegation SAS and managed identities. This post delivers a production-ready blueprint with modern .NET snippets for a tiny valet API, browser chunked uploads and integrity checks, plus zero trust essentials like quarantine, scanning, and targeted revocation.
Convert HTML to PDF in .NET (C#): Real-World Scenarios, PDF Standards, and BestPractices
Bjoern Meyer shows how to turn HTML into reliable PDFs in C# with TX Text Control, including a small .NET sample, adding headers and footers, and exporting to PDF/A or PDF/UA. The heart of this post is why PDFs win for invoices, reports, and contracts where consistency, archiving, accessibility, and a defensible layout matter more than browser quirks.
Don't miss the next tip 💧
Get a .NET tip and curated links delivered to your inbox every week.
C# Console menus with Actions
Karen Payne shares a simple pattern for building interactive C# console menus using Spectre.Console with Action delegates, including options that pass parameters for real tasks like saving images or powering dotnet tools. This post explains the tiny set of classes that wire selections to operations and includes tips and sample repos to quickly prototype and organize learning or utility work.
The '#:package' Trick That Turns One .cs File Into a Real App
Abe Jaber shows how the new #:package directive in .NET 10 lets you ship a real console app from a single .cs file, complete with NuGet dependencies, no csproj required. This post focuses on practical guardrails for tiny but reliable tools like parsing args, piping stdin, cancellation, predictable exit codes and timeouts so you can build internal utilities fast without the scaffolding overhead.
Mastering Business Logic in .NET: A Deep Dive into the Specification Pattern
Ahmad Al-Freihat shows how the Specification Pattern can rescue sprawling business rules by turning them into reusable, testable objects you can use both in memory and in EF Core queries. This post introduces the Masterly.Specification library with composable operators like And, Not, Xor and Implies, a fluent builder, diagnostics and caching so your domain stays a single source of truth and your code stays readable.
Goodbye Factory Classes: Modern C# Activators Explained
Mohammad Shoeb explains how modern C# activators, reflection, and dependency injection can replace most factory classes and make object creation simpler in real applications. Using a multi-tenant payments example, this post shows how Activator plus a container unlocks plugin-style extensibility, fewer deployments, and guidance on when factories still belong.
What It Took to Implement VS Code Debugging for .NET nanoFramework
Laurent Ellerbach shows how .NET nanoFramework brought full VS Code debugging to embedded C#, translating DAP to the device Wire Protocol through a C# bridge and TypeScript adapter without changing device firmware. This post digs into pdbx and portable PDB symbol mapping to land breakpoints on the right lines, while sharing pragmatic architecture choices and AI-assisted workflows you can reuse for your own tooling.
Reflection in C#: The Ultimate Guide
Michael Maurice maps out how reflection turns C# from strongly typed to smartly adaptable, from simple type inspection to on-the-fly invocation, plugin discovery, and even code generation. This post explains where reflection quietly powers your favorite frameworks, when to use it yourself, and how to avoid the performance potholes with practical patterns.
Internationalization Architecture for Global .NET Applications
Sudhir Mangla maps out an architecture-first blueprint for building global .NET apps that behave consistently across platforms by adopting ICU, resolving culture correctly, and keeping formatting in the presentation layer. This post helps you avoid costly i18n pitfalls with concrete patterns for NodaTime, money as structured data, ICU MessageFormat and Fluent, RTL friendly CSS, culture-aware storage and search, plus production-grade caching, testing, and trimming.
.NET 10 support in Visual Studio 2022
Mike Irving shows how to target .NET 10 from Visual Studio 2022 without jumping to the new IDE by installing the .NET SDK and verifying with dotnet --version, so you can keep your project moving. In this post he also shares when an upgrade to Visual Studio 2026 makes sense and mentions alternatives like VS Code with C# Dev Kit or Rider.
5 Minimal API myths and the real truth
Round The Code busts five Minimal API myths with practical patterns for moving logic out of Program.cs, organizing route groups, unit testing handlers, and wiring up authorization, validation, and OpenAPI in .NET 10. If you are coming from controllers, this post shows how to keep Minimal APIs clean, scalable, and well documented so they fit real world apps, not just toy projects.
.NET MAUI Xcode 26.3 Support
Rolf Bjarne lays out the dotnet/macios plan for Xcode 26.3 support, from branching and version bumps to API bindings and the xtro and introspection test gauntlet. This post gives a behind the scenes look at how .NET for iOS and macOS track new Xcode releases, and what that means for MAUI dependencies, NuGet packages, and your builds staying green.
Introducing Pri.ProductivityExtensions.Source - A .NET Standard Package to Enable Modern C# Language Features
Peter Ritchie introduces Pri.ProductivityExtensions.Source, a source-only NuGet that adds internal polyfills for newer BCL types so modern C# features work in .NET Standard libraries without extra assemblies. This post lays out why features like ranges, indices, and CallerArgumentExpression trip up .NET Standard projects and how the package unblocks analyzers and PowerShell modules while keeping wide compatibility.
New in .NET 10 and C# 14: Fast Model Validation for APIs
Ali Hamza Ansari breaks down how .NET 10 and C# 14 turbocharge API model validation by swapping reflection for precomputed metadata, cutting allocations, and streamlining hot paths for steadier p95 and p99 latency. In this post you get a minimal BenchmarkDotNet setup comparing .NET 8 and .NET 10 plus practical context on why these changes can deliver around 3x faster validation in real traffic.
Don't miss the next tip 💧
Get a .NET tip and curated links delivered to your inbox every week.
.NET Toolbox February Update
Steven Giesel rolls out a February refresh of his browser-based .NET Toolbox, adding an Options Generator that turns JSON config into C# options classes, a typed DI helper for HttpClient and SignalR, and an SRP analyzer to spot single responsibility drift. This post shows how these open source, client-side tools cut boilerplate and encourage cleaner design, with Roslyn-powered ideas possibly on the horizon.
.NET 10: Post-Quantum Cryptography Comes to .NET
Anthony Giretti gives a clear, no-drama tour of .NET 10's new post-quantum crypto, covering ML-DSA, SLH-DSA, and ML-KEM with patterns that feel like everyday System.Security.Cryptography. In this post you will learn when each algorithm shines and how to future-proof signatures and key exchange in real apps without rewriting everything.
Visual Studio 2026 Release Notes – February Update 18.3.0
The Visual Studio team rolls out 2026 updates that weave AI into everyday C# work with Copilot powered test generation, call stack analysis, and NuGet security help from both an MCP server and new audit sources. ASP.NET and Blazor devs get faster Razor Hot Reload with auto restart, a snappier Razor editor with Tag Helper go to definition and better IntelliSense, plus practical IDE polish like speedy scrolling, colorized completions, and cleaner Solution Explorer views.
The Better Way to Configure Entity Framework Core
Mori recounts a production incident where orders vanished after a clean deploy, tracing it to EF Core defaults hiding behind a perfectly normal DbSet. This post shows how to take back control with explicit, centralized configuration for entities, clarifying relationships and delete behavior to keep data safe when version or model changes roll through.
C# Expressions are coming to .NET MAUI
Daniel Hindrikes walks us through the new C# expressions feature for .NET MAUI. C# Expressions is so much more than replacing converters; you can finally write inline, strongly-typed logic directly in XAML, making your UI code cleaner and faster to write. Not to mention its performance boost!
.NET AI Community Standup: Foundry Local for .NET Devs 🚀
This month's .NET AI Community Standup brought Bruno Capuano, Jeff Fritz, and Maanav Dalal together to explore Foundry Local and how C# developers can use it to run AI models directly on their machines, without cloud dependencies. Watch them discuss architecture, local-first AI scenarios, and how Foundry Local fits into modern .NET and AI workflows.
9 No-Nonsense Ways I Manage .NET
Adam shares nine practical ways to tame .NET 10 app configuration with the Options pattern so your settings stay typed, validated, and reloadable. If your config feels like a junk drawer, this post shows how to model settings as config objects, ditch magic strings, and set sensible defaults your future self will appreciate.
Zeta: It's Time to Rethink Validation in .NET
Per Sonberg introduces Zeta, a schema-first async validation library for .NET inspired by Zod that treats schemas as composable values and returns result types with path-aware errors. Along the way, this post contrasts it with FluentValidation pain points around async, DI and composition, shows simple ASP.NET Core integration, and shares early benchmarks with lower allocations and faster failure handling.
.NET 10.0.3 Release
The dotnet/dotnet repo has tagged v10.0.3, marking the next point release on the .NET 10 line. This post is handy for version pinning in CI or dependency manifests, though assets and notes were not visible here due to a loading hiccup.
How to Run Azure Service Bus Locally using .NET Aspire
If you’ve ever had to share a single “dev” Service Bus namespace with your team (and deal with broken queues, leftover subscriptions, or random test messages), this setup is the fix: a clean, repeatable local environment that’s perfect for development and integration testing. Milan Jovanović show you how in this video.
Building a 3.6GB .NET Audio Joiner with GitHub Copilot CLI
El Bruno shows how to use GitHub Copilot CLI to spin up a .NET console app that joins 65 MP3s into one 3.6GB file, turning a scrappy idea into a reliable utility. In this post you pick up practical patterns like streaming to disk to dodge memory limits, adding Spectre.Console polish, and knowing when to step outside Copilot to keep real-time output.
WinDev Helper - A WinUI Extension for VS Code
Alvin Ashcraft’s WinDev Helper extension turns VS Code into a tidy WinUI 3 workbench with F5 debugging, x86 x64 ARM64 builds, MSIX signing, and C# Dev Kit features like Solution Explorer. This post shows how winapp CLI integration and ready made templates reduce the friction of scaffolding, packaging, and shipping Windows App SDK apps while XAML IntelliSense and Hot Reload remain on the roadmap.
Don't miss the next tip 💧
Get a .NET tip and curated links delivered to your inbox every week.
I Built a .NET App in One File - And It Changed Everything
Ashok Reddy explores the .NET 10 preview feature for single file C# apps that lets you bypass project files and spin up native executables fast. In this post he builds a one file password generator that checks Have I Been Pwned, showing how this lightweight workflow can speed up prototypes, scripts, and everyday utilities.
.NET Rocks! - The Role of AI in Secure Software with Ben Dechrai
Carl Franklin and Richard Campbell talk with Ben Dechrai about how AI tooling is changing secure software practices for .NET teams, from code exposure risks and model choices to the realities of running models locally. This podcast offers practical ways to set guardrails for AI-assisted coding and to understand the emerging AI-driven attack and defense landscape so your C# apps ship safer.
LINQ in EF Core Explained: From Lambda Expressions to SQL
Benedict Odoh peeks under the hood of LINQ in EF Core, showing how your lambda expressions become expression trees that EF translates to SQL and why that mental model matters for performance. This post contrasts query and method syntax, clarifies deferred vs immediate execution and terminal operations, and demystifies loading related data with Include, lazy loading, and explicit loading to help you shape cleaner, faster data access.
.NET 8.0.24 / 8.0.124 Release
The .NET team tagged the .NET 8 servicing release with runtime 8.0.24 and SDK 8.0.124 on GitHub, including clear steps to build from the release tag or attached source archives. This post also highlights PGP signatures and the 2023 public key so you can verify artifacts and keep your pipeline squeaky clean.
Aspire 13.1.1 Release
Aspire 13.1.1 lands with targeted fixes that smooth local HTTPS setup, clean up Vite config path handling, and resolve Azure publishing hiccups, plus an update to Azure.Identity 1.17.1. In this post, you get the highlights on what was patched and why it makes day to day development less cranky, from templates that build reliably to dev certs that behave.
.NET 11 Preview 1 Release
James Montemagno shares .NET 11 Preview 1 with release notes across C#, ASP.NET Core, MAUI, runtime and the SDK. This post points you to what is changing across the stack and how to try the preview with the .NET 11 SDK in Visual Studio 2026 Insiders or VS Code with the C# Dev Kit.