Newsletter Archive
Browse through our collection of past newsletters. Each edition is packed with C# and .NET insights.
Page 5 of 8 (24 editions)
Building an AI-Powered Form Assistant with Blazor
Ed Charbeneau shows how to build an AI-powered RMA assistant in Blazor that turns rigid forms into a friendly chat. This post uses Microsoft.Extensions.AI, function tools, and JSON schema to steer the model while binding updates into EditContext and pairing a chat UI with a real form using Telerik components.
C# 14 and Clean Architecture: modeling expressive domains without boilerplate
Anderson Godoy shows how C# 14 can make domain models more expressive while guarding Clean Architecture boundaries. This post walks through using extension members to keep domain semantics in the right layer, field backed properties for normalization, and expanded partials that play nicely with source generators for IDs and converters. You get simple rules that cut helper sprawl and duplication while keeping real business rules visible.
Environment-based Configuration in ASP.NET Core
Mukesh Murugan demystifies environment-based configuration in ASP.NET Core, showing how appsettings files, environment variables, User Secrets, and launch profiles stack in .NET 10. You'll pick up practical patterns and precedence rules to keep secrets safe, tame per-environment overrides, and dodge common mistakes that cause those head-scratching prod bugs.
EF Core Lazy Loading Performance Gotcha
Mark Heath uncovers a sneaky EF Core ILazyLoader quirk that can fire off pointless database queries as soon as you call Add on a new entity. Build your object graph first, then add to the context right before saving to keep your app snappy.
Introducing OpenSilver 3.3: Blazor Components Now Run Directly Inside XAMLApplications
OpenSilver 3.3 lands with Blazor components running directly inside XAML apps, so you can drop DevExpress, Syncfusion, MudBlazor and more into MVVM views with native bindings and no interop tricks. This post highlights practical integration patterns, why it enables low risk WPF modernization across WebAssembly and MAUI Hybrid, and what else ships like .NET 10 support, a Responsive markup extension, and major WPF compatibility gains.
From Confusion to Clarity: My Journey Through C#, .NET, Azure DevOps, and Corporate Life
Rishabh Gupta maps a refreshingly honest path from confusion to clarity in C#, .NET 8, and ASP.NET MVC, highlighting the 2 AM aha moments that turn theory into useful code. This post favors real work over interview trivia, from tracing a request through the MVC pipeline to the realities of migrations, AI tools, and learning while holding a day job. If tutorial hell has you spinning, you will find practical guardrails that save weeks of trial and error.
Don't miss the next tip 💧
Get a .NET tip and curated links delivered to your inbox every week.
Which .NET Version Should I Use Right Now?
Mahesh Chand cuts through .NET version churn with a rule of thumb and a plan you can trust. If you are juggling dependencies and deadlines, the decision framework and low risk checklist will save future you some headaches.
Autofac: The IoC Container That Makes Dependency Injection Click
Unpack dependency injection in .NET and how Autofac turns the 'don't use new' mantra into testable, maintainable code. If the built-in DI starts to chafe as your app grows, the examples make a grounded case for when Autofac is worth it.
Building a Self-Fixing .NET 10 App with AI Agents
Jean-Baptiste S. shows how to build a self-fixing .NET 10 setup that turns production exceptions into GitHub PRs. Backed by Azure Monitor, Application Insights, Redis dedupe, and a Semantic Kernel agent using Claude, this post covers the tool use loop, smart filtering, and prefetching code context to propose credible fixes. The result is less firefighting and a cost profile that fits real teams, not research labs.
We Almost Shipped a Broken .NET Build Because of NuGet Versions (Here's What Fixed It)
Abe Jaber recounts a near-release scare caused by NuGet version drift across a multi-project .NET repo, where CI and local restores disagreed. This post shows how Central Package Management with a single Directory.Packages.props at the repo root stops mismatched dependencies, yielding deterministic builds and easier upgrades. Perfect for teams juggling multiple APIs, workers, and tests who want fewer restore surprises.
New in .NET 10 and C# 14: EF Core 10's Faster Production Queries
Ali Hamza Ansari benchmarks EF Core 10 on .NET 10 with C# 14 against .NET 8, showing 25 to 50 percent faster read queries in a realistic PostgreSQL setup. This post pairs minimal API and DbContext code with BenchmarkDotNet, then unpacks why production workloads get faster, from JIT inlining and expression tree caching to leaner row materialization and small tweaks like static lambdas and JSON options. Perfect if you want practical steps and the mental model to make data access snappier without rewriting queries.
How to Build Android Widgets with .NET MAUI
Toine de Boer shows how to build Android home screen widgets with .NET MAUI by leaning on native RemoteViews, AppWidgetProvider, and Intents from your C# code. Rather than step by step, this post highlights production-minded patterns like data sharing with Preferences, interactive actions via PendingIntent, scheduled refreshes, and a minimal MAUI startup to keep widgets snappy. If you are shipping cross-platform widgets alongside iOS, you will pick up clear guidance on configuration screens, context pitfalls, and reliable update flows.
Playwright v1.58.0 Release
Playwright v1.58 brings a token efficient, agent friendly Skills CLI along with UI Mode and Trace Viewer polish, plus a new Speedboard timeline for merged reports that makes .NET E2E testing feel smoother. This post also highlights breaking selector removals and a devtools launch change, and adds an isLocal flag for CDP, helpful for keeping ASP.NET Core pipelines speedy and green.
Clean Architecture in .NET: Why I Stopped Fighting the Framework and StartedBuilding Better APIs
Rishabh Gupta turns Clean Architecture from buzzword soup into a practical guide for .NET Web APIs. This post shows how the dependency rule and a clean four layer split keep your domain independent of frameworks, with code examples and pitfalls that explain why testing and swaps like EF to Dapper get much easier. He also calls out when this approach is overkill so you use it where it truly pays off.
Maddy Montaquila: .NET Update - Azure & DevOps Podcast Episode #386
Jeffrey Palermo sits down with Maddy Montaquila, Senior Product Manager on the .NET Aspire team and former MAUI PM, to unpack the latest .NET update and what it means for building cross platform and cloud native apps. This podcast explores where Aspire and MAUI are headed, lessons from the Xamarin to MAUI journey, and practical guidance that can simplify your tooling and app architecture.
Azure Maps: Understanding View vs. Routing Coordinates
Why Azure Maps returns both a view coordinate and a routing coordinate for the same place, and how that split keeps your pins pretty and your directions accurate. In this post you will learn when to use the view coordinate for display and the routing coordinate for ETAs and turn-by-turn, plus which API fields identify each. If you have ever routed to the middle of a building or the wrong side of a divided road, this will help you fix it.
ASP .NET Core IDisplayMetadataProvider
Karen Payne shows how a custom IDisplayMetadataProvider turns FirstName into First Name across your ASP.NET Core views. This post contrasts it with the Display attribute, walks through simple Program.cs wiring and dynamic model discovery, and shares a sample repo that pairs the provider with FluentValidation to keep your UI clean and consistent.
Getting Started with the Aspire CLI - A Complete Guide
Chris Ayers gives a practical tour of the Aspire CLI for building and running distributed apps across .NET, Python, and JavaScript. If you want less config glue and an easier path to adding databases and caches, this post offers a clean workflow and the why behind it.
Don't miss the next tip 💧
Get a .NET tip and curated links delivered to your inbox every week.
Deploying AI Applications to Azure Web Apps: A Practical Architecture Guide
Gregor Suttie shares a practical architecture for deploying AI-enabled apps on Azure Web Apps, treating the app as an orchestrator for Azure OpenAI rather than a model host. This post focuses on managed identities instead of API keys, private endpoints, Key Vault backed configuration, and observability with Application Insights, plus a Bicep example that keeps infra clean and auditable.
MCP Development with FireStore .NET, C# and Gemini CLI
William McLean walks through building a minimal MCP server in C# that plugs Gemini CLI into Firestore, then iterates by adding new tools directly from the CLI. This post focuses on why MCP makes .NET a solid fit for AI workflows language independence, a simple stdio transport, and Firestore backed tools that enable a real inventory scenario. It is a friendly blueprint for moving from local validation to cloud ready patterns.
.NET Toolbox
Steven Giesel kicks off the year with a free, open source .NET Toolbox built entirely client side to smooth out everyday dev tasks, especially for newcomers to web work. This post highlights a visual Middleware Designer that teaches common ASP.NET pipelines, flags pitfalls like authorization before authentication, and lets you simulate requests, plus a Package Centralizer that generates Directory.Packages.props from your csproj files to simplify version management.
8 "Finally Maintainable" Steps to Build a CRUD REST API with Clean Architecture+ DDD in .NET
Michael Maurice lays out eight pragmatic steps for building a maintainable CRUD REST API in .NET 10 using Clean Architecture and DDD. This post walks a tiny Products API through domain, application, infrastructure, and API layers so business rules live in the domain, EF Core stays in infrastructure, and controllers remain calm. If your last API grew into a ball of EF queries and if statements, these patterns show how to keep it testable and ready to grow.
Full-stack static typing with OpenAPI TypeScript and Microsoft.AspNetCore.OpenApi
John Reilly shows how to wire up end-to-end static typing between an ASP.NET Core Web API and a React TypeScript client by pairing Microsoft.AspNetCore.OpenApi with openapi-ts. He explains why OpenAPI 3.1 surfaces C# nullability more accurately than older tooling and how a couple of schema transformers tame number|string oddities, delivering a lean client and smaller bundles. If keeping front end and back end in sync without hand-written glue sounds good, this post maps out a pragmatic path with scripts you can drop into your workflow.
S3 Versioning in .NET - Protect Against Accidental Deletes and Recover Any File Version
Mukesh Murugan shows how to build a minimal .NET API that enables S3 bucket versioning, lists an object's history, restores older versions, and recovers deletes by handling delete markers. You will learn how version IDs and delete markers work under the hood, plus practical guardrails like IAM permissions, lifecycle policies to keep costs in check, and MFA delete for critical data. The patterns for audit trails, rollback to last known good, and scheduled cleanup make it easy to bake resilience into real apps.
5 C# Secrets That Make LINQ Queries 10x Faster (You're Using It Wrong)
Martin digs into five LINQ habits that separate clean code from fast code, showing how deferred execution, allocations, and query shape choices create hidden speed bumps. A friendly tune-up for hot paths that turns readable queries into production-ready performance.
IQueryable vs IEnumerable: What Every .NET Developer Must Know
Curious Orbit breaks down the real-world difference between IEnumerable and IQueryable in .NET, showing how LINQ runs in memory vs on the database and why that choice affects scalability. This post demystifies deferred execution and expression trees in EF Core, then highlights pitfalls like calling ToList or switching to AsEnumerable too early. You'll walk away knowing when each interface makes sense so your queries do the heavy lifting in the right place.
AWS Lambda SnapStart for .NET : Cut Cold Starts by 90% (With Benchmarks)
Mukesh Murugan shows how to enable AWS Lambda SnapStart for .NET 8 and chop cold starts by 58 to 94 percent using real benchmarks. This post walks through setup, the runtime hooks that warm JIT before snapshot and refresh secrets after restore, plus practical gotchas, costs, and when to pair SnapStart with Native AOT.
Gauge Controls: Real-time Performance Tracking, Player Stats in .NET MAUI
Leomaris Reyes explores Telerik's Gauge control for .NET MAUI as a fast, visual way to surface real-time stats in apps, from game-style health and stamina to progress tracking. This post explains when to use radial, vertical, and horizontal gauges and shows practical XAML snippets for indicators, ranges, gradients, and layout tweaks like StartAngle, SweepAngle, and AxisRadiusFactor.
Value Types and Reference Types in C#
Ajay Narkhedkar breaks down value types and reference types in C#, tying stack vs heap behavior to everyday bugs and performance surprises. This post clarifies how assignment and parameter passing really work, why string behaves differently, and when to pick struct or class for safer, faster code. A tidy mental model here can save your future self from head-scratching shared-state issues.
.NET 10 and C# 14 Null-conditional assignment
Henrique Siebert Domareski introduces C# 14 null conditional assignment in .NET 10, showing how you can safely set properties with ?. on the left of an assignment. By skipping writes when the target is null, this post trims boilerplate if checks and makes nested updates far less noisy. Great for working with optional aggregates without risking NullReferenceException.
Don't miss the next tip 💧
Get a .NET tip and curated links delivered to your inbox every week.
How to Copy and Paste Events in Blazor Scheduler Using Clipboard
Mahesh Palanisamy shows how to add cut, copy, and paste to Syncfusion's Blazor Scheduler using built in clipboard support. If you are building scheduling UI in .NET, you will learn practical ways to reduce retyping and create a snappy, flexible workflow.
C# for Everything: One Language Powering the Modern Software World
Raghunath Bhukan charts how modern C# and .NET let teams build nearly anything, from high performance ASP.NET Core APIs to Blazor UIs, MAUI apps, Unity games, and ML.NET powered services, all within one ecosystem. This post highlights the real payoff in consistency and reuse: shared skills, tooling, and patterns that reduce context switching without sacrificing speed. It also calls out where C# is not the best fit so you can make clearer architecture bets.
Compile Time Checking of String Parameters in C#
Swapping input and output path strings is an easy bug the C# compiler will not catch. This post applies the make unrepresentable states unrepresentable idea by introducing marker types plus a generic AppSettingPath
Modern C# Error Handling Patterns You Should Be Using in 2026
Tejaswini Naresh IT maps how C# error handling evolved into design-first resilience for 2026. This post shows how typed exceptions, Result-style flows, centralized middleware, and structured telemetry turn failures into predictable, observable behavior your team can reason about. Less panic, more predictability for production apps.
Hello, here: Generics are here for nanoFramework
Announcing generics support in .NET nanoFramework and pulling back the curtain on the engineering that makes it work on tiny devices, from ECMA-335 friendly TypeSpec and MethodSpec to 16-bit tokens, caching and a new PE v2.0 format. This post focuses on why it matters in real code by adding Span
When Scoped DbContext Fails Real Production Scenarios
Compile & Conquer unpacks why EF Core's default scoped DbContext can trip you up in production, from singleton background services to parallel work and long-running reports. This post explains how the one request one context assumption leads to concurrency errors, stale data, and timeouts, and previews safer patterns like short-lived contexts and IDbContextFactory for better lifetime control. A friendly reality check for anyone building hosted services or parallel pipelines in ASP.NET Core.