<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel><title>DotNetCode — Trust is earned, not given</title><link>https://www.bobhuang.com/series/dotnetcode/</link><description>A reusable .NET library grown through its own samples: multi-targeting, resilient SQL access, validation, Azure Function relays, one MCP tool library on three hosts, and a full-stack shopping app.</description><language>en</language><lastBuildDate>11 Jul 2026 12:00:00 GMT</lastBuildDate><atom:link href="https://www.bobhuang.com/series/dotnetcode/feed.xml" rel="self" type="application/rss+xml"/><item><title>DotNetCode, part 9: UnifiedShopping — a full-stack e-commerce sample with web, admin and mobile</title><link>https://www.bobhuang.com/blog/736/unifiedshopping-full-stack-ecommerce-sample/</link><guid>https://www.bobhuang.com/blog/736/unifiedshopping-full-stack-ecommerce-sample/</guid><pubDate>11 Jul 2026 12:00:00 GMT</pubDate><description>The largest project in DotNetCode is UnifiedShopping: a complete e-commerce sample — an OEM scarf store called "Silk &amp; Loom" — with a customer web storefront…</description></item><item><title>DotNetCode, part 8: A React SPA and an ASP.NET Core API in one repository</title><link>https://www.bobhuang.com/blog/735/react-spa-hosted-by-aspnet-core-api/</link><guid>https://www.bobhuang.com/blog/735/react-spa-hosted-by-aspnet-core-api/</guid><pubDate>18 Apr 2026 12:00:00 GMT</pubDate><description>ReactSpa (part of DotNetCode) answers a question every web developer eventually faces: where does the front end live? This sample puts a Vite + React +…</description></item><item><title>DotNetCode, part 7: One MCP tool library, three hosts — WebApi, Azure Function, and .NET Framework 4.8</title><link>https://www.bobhuang.com/blog/734/model-context-protocol-servers-three-hosts/</link><guid>https://www.bobhuang.com/blog/734/model-context-protocol-servers-three-hosts/</guid><pubDate>10 Jan 2026 12:00:00 GMT</pubDate><description>The Model Context Protocol (MCP) is the open standard that lets AI assistants call your tools — a JSON-RPC protocol with transports for different environments.…</description></item><item><title>DotNetCode, part 6: Verifying Stripe webhooks with hand-rolled HMAC</title><link>https://www.bobhuang.com/blog/733/stripe-webhook-signature-verification-from-scratch/</link><guid>https://www.bobhuang.com/blog/733/stripe-webhook-signature-verification-from-scratch/</guid><pubDate>11 Oct 2025 12:00:00 GMT</pubDate><description>StripeWebhook (part of DotNetCode) is a generic Stripe webhook receiver as an isolated-worker Azure Function — and its best teaching moment is that it verifies…</description></item><item><title>DotNetCode, part 5: Four Azure Function relays — Graph email, SmartyStreets, Shopify, Dataverse</title><link>https://www.bobhuang.com/blog/732/azure-functions-integration-relays/</link><guid>https://www.bobhuang.com/blog/732/azure-functions-integration-relays/</guid><pubDate>05 Jul 2025 12:00:00 GMT</pubDate><description>Half of DotNetCode's projects follow one architecture so consistently that the repetition itself is the lesson. SendingEmailViaMicrosoftGraph…</description></item><item><title>DotNetCode, part 4: Terraform for a production-shaped Azure site</title><link>https://www.bobhuang.com/blog/731/terraform-for-a-production-shaped-azure-site/</link><guid>https://www.bobhuang.com/blog/731/terraform-for-a-production-shaped-azure-site/</guid><pubDate>12 Apr 2025 12:00:00 GMT</pubDate><description>TerraformAzureSite (part of DotNetCode) contains no C# at all — it is infrastructure as code: Terraform files that build a production-shaped Azure environment.…</description></item><item><title>DotNetCode, part 3: CleanValidation — input parsing that never throws</title><link>https://www.bobhuang.com/blog/730/cleanvalidation-graceful-input-parsing/</link><guid>https://www.bobhuang.com/blog/730/cleanvalidation-graceful-input-parsing/</guid><pubDate>18 Jan 2025 12:00:00 GMT</pubDate><description>Where does the NullReferenceException live? Usually one line after parsing user input. CleanValidation (part of DotNetCode) is a dependency-light library of…</description></item><item><title>DotNetCode, part 2: ResilientSqlAccess — retry with backoff for SQL that blips</title><link>https://www.bobhuang.com/blog/729/resilient-sql-access-retry-with-backoff-in-dotnet/</link><guid>https://www.bobhuang.com/blog/729/resilient-sql-access-retry-with-backoff-in-dotnet/</guid><pubDate>02 Nov 2024 12:00:00 GMT</pubDate><description>Databases fail transiently all the time: a dropped connection, a deadlock, Azure SQL throttling your load, a failover. Most of those succeed on the second try…</description></item><item><title>DotNetCode, part 1: One codebase, four frameworks — the multi-targeting idea</title><link>https://www.bobhuang.com/blog/728/dotnetcode-multitargeting-one-codebase/</link><guid>https://www.bobhuang.com/blog/728/dotnetcode-multitargeting-one-codebase/</guid><pubDate>10 Aug 2024 12:00:00 GMT</pubDate><description>DotNetCode is my public collection of sample .NET libraries and Azure Functions — and this article begins a series walking through it. Before the individual…</description></item></channel></rss>