<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>.NET News</title>
    <description>.NET News is a free newsletter delivering curated C# and .NET blogs, news, and articles from over 140 sources.</description>
    
    <link>https://dotnetnews.beehiiv.com/</link>
    <atom:link href="https://rss.beehiiv.com/feeds/bIBs6rEf9I.xml" rel="self"/>
    
    <lastBuildDate>Thu, 21 May 2026 03:22:19 +0000</lastBuildDate>
    <pubDate>Wed, 20 May 2026 11:00:00 +0000</pubDate>
    <atom:published>2026-05-20T11:00:00Z</atom:published>
    <atom:updated>2026-05-21T03:22:19Z</atom:updated>
    
      <category>Programming</category>
      <category>Software Engineering</category>
      <category>Technology</category>
    <copyright>Copyright 2026, .NET News</copyright>
    
    <image>
      <url>https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/publication/logo/89282b72-f589-44c4-b9fa-9e1bf8c8ef55/staggered.png</url>
      <title>.NET News</title>
      <link>https://dotnetnews.beehiiv.com/</link>
    </image>
    
    <docs>https://www.rssboard.org/rss-specification</docs>
    <generator>beehiiv</generator>
    <language>en-us</language>
    <webMaster>support@beehiiv.com (Beehiiv Support)</webMaster>

      <item>
  <title>The .NET News Daily Issue #459</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-459</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-459</guid>
  <pubDate>Wed, 20 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-20T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="your-agents-crave-state">Your Agents Crave State</h3><div class="image"><a class="image__link" href="https://ghost.build/?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&_bhiiv=opp_2b05fcca-b3d0-4357-a705-b643798ce482_267f9741&bhcl_id=326e289e-d439-4e89-a84c-9eb06fca0c69_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/4c598960-ca23-4146-b18b-ecd841e96d15/deepview-ghost_banner.png?t=1776973652"/></a></div><p class="paragraph" style="text-align:left;">Every ai app hits the same wall: the agent needs to remember something, store something, try something. Ghost is postgres built for that. Spin one up per agent. Fork it. Throw it away. Pay nothing when it sits idle. </p><p class="paragraph" style="text-align:left;"><a class="link" href="https://ghost.build/?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&_bhiiv=opp_2b05fcca-b3d0-4357-a705-b643798ce482_267f9741&bhcl_id=326e289e-d439-4e89-a84c-9eb06fca0c69_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Unlimited Postgres, Free</a></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/azure-sql/microsoft-sql-security-across-the-maestro-stack-building-secure-agentic-ai-with-defense-in-depth/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Microsoft SQL Security Across the MAESTRO Stack: Building Secure Agentic AI with Defense-in-Depth</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/azure-sql/microsoft-sql-security-across-the-maestro-stack-building-secure-agentic-ai-with-defense-in-depth/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://devblogs.microsoft.com/azure-sql/microsoft-sql-security-across-the-maestro-stack-building-secure-agentic-ai-with-defense-in-depth/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Artificial Intelligence is evolving rapidly. What began as simple prompt-and-response systems is now transforming into fully autonomous, agentic AI architectures capable of reasoning, orchestrating to...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/azure-sql/microsoft-sql-security-across-the-maestro-stack-building-secure-agentic-ai-with-defense-in-depth/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://devblogs.microsoft.com/azure-sql/wp-content/uploads/sites/56/2026/05/SQL-SECURITY-1.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://weblog.west-wind.com/posts/2026/May/13/Getting-the-Client-IP-Address-in-ASPNET-Core?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Getting the Client IP Address in ASP.NET Core</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://weblog.west-wind.com/posts/2026/May/13/Getting-the-Client-IP-Address-in-ASPNET-Core?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://weblog.west-wind.com/posts/2026/May/13/Getting-the-Client-IP-Address-in-ASPNET-Core</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When I need to pick up the client IP Address in ASP.NET Core I always forget where to find the connection information. It's simple enough: HttpContext?.Connection?.RemoteIpAddress but I never reme...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://weblog.west-wind.com/posts/2026/May/13/Getting-the-Client-IP-Address-in-ASPNET-Core?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://weblog.west-wind.com/https://weblog.west-wind.com/images/2026/Getting-the-Client-IP-Address-in-ASP-NET-Core/ClientIpBanner.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://pmichaels.net/mcp-server-dotnet/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Creating a Simple MCP Server in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://pmichaels.net/mcp-server-dotnet/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://pmichaels.net/mcp-server-dotnet/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In my previous post, I covered how to interact with a local LLM from .NET using LM Studio. In this post, I’m going to take that a little…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://pmichaels.net/mcp-server-dotnet/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.milanjovanovic.tech/blog/when-your-use-case-half-succeeds-designing-for-partial-failure-in-dotnet?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">When Your Use Case Half-Succeeds: Designing for Partial Failure in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.milanjovanovic.tech/blog/when-your-use-case-half-succeeds-designing-for-partial-failure-in-dotnet?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://www.milanjovanovic.tech/blog/when-your-use-case-half-succeeds-designing-for-partial-failure-in-dotnet</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A use case isn't a transaction. The moment it touches more than one system, you are dealing with partial failure. Here's how I classify side effects and design use cases that fail loudly and recover s...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.milanjovanovic.tech/blog/when-your-use-case-half-succeeds-designing-for-partial-failure-in-dotnet?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://www.milanjovanovic.tech/blog-covers/mnw_194.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://code.visualstudio.com/blogs/2026/05/15/agent-harnesses-github-copilot-vscode?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Coding Harness Behind GitHub Copilot in VS Code</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://code.visualstudio.com/blogs/2026/05/15/agent-harnesses-github-copilot-vscode?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://code.visualstudio.com/blogs/2026/05/15/agent-harnesses-github-copilot-vscode</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">What developers actually interact with is the coding harness: the layer that assembles context, exposes tools, runs the agent loop, interprets tool calls, and turns a model's output into something use...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://code.visualstudio.com/blogs/2026/05/15/agent-harnesses-github-copilot-vscode?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://code.visualstudio.com/assets/blogs/2026/05/15/evaluations.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://codewithmukesh.com/blog/ef-core-performance-mistakes/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">10 EF Core Performance Mistakes (and How to Fix Them) in .NET 10</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://codewithmukesh.com/blog/ef-core-performance-mistakes/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://codewithmukesh.com/blog/ef-core-performance-mistakes/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">10 EF Core performance mistakes that ship to production - N+1 queries, missing projections, lazy loading, AsNoTracking, bulk ops - and how to fix each in .NET 10.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://codewithmukesh.com/blog/ef-core-performance-mistakes/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://codewithmukesh.com/_astro/cover.DsDTGljw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://dotnettips.com/2026/05/15/on-net-live-how-coding-standards-supercharge-net-quality-performance/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">On .NET Live: How Coding Standards Supercharge .NET Quality & Performance</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://dotnettips.com/2026/05/15/on-net-live-how-coding-standards-supercharge-net-quality-performance/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://dotnettips.com/2026/05/15/on-net-live-how-coding-standards-supercharge-net-quality-performance/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">For the second time, I’m excited to be a guest on On .NET Live on May 18th at 9 AM PST! I’ll be talking about one of my favorite subjects: coding standards and how they can supercharge .NET code quali...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://dotnettips.com/2026/05/15/on-net-live-how-coding-standards-supercharge-net-quality-performance/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://i0.wp.com/dotnettips.com/wp-content/uploads/2026/05/maxresdefault_live.jpg?fit=1200%2C675&ssl=1" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@balajithilagar/building-a-agent-with-microsoft-agent-framework-and-multiple-ai-service-providers-c2c8875452e1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Building a Agent with Microsoft Agent Framework and Multiple AI Service Providers</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@balajithilagar/building-a-agent-with-microsoft-agent-framework-and-multiple-ai-service-providers-c2c8875452e1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://medium.com/@balajithilagar/building-a-agent-with-microsoft-agent-framework-and-multiple-ai-service-providers-c2c8875452e1?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In this article, we will build a simple Weather Prediction Agent using the Microsoft Agent Framework with support for multiple AI…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@balajithilagar/building-a-agent-with-microsoft-agent-framework-and-multiple-ai-service-providers-c2c8875452e1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/944/1*Byf1RnVs4Hg0qCLkQ9V-jg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@mahmood.alsarraj/securing-swagger-scalar-and-health-endpoints-in-asp-net-a377cbcaccc2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Securing Swagger, Scalar, and Health Endpoints in ASP.NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@mahmood.alsarraj/securing-swagger-scalar-and-health-endpoints-in-asp-net-a377cbcaccc2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://medium.com/@mahmood.alsarraj/securing-swagger-scalar-and-health-endpoints-in-asp-net-a377cbcaccc2?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">🚨 Your API Might Be Secure… But Your Swagger UI Isn’t</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@mahmood.alsarraj/securing-swagger-scalar-and-health-endpoints-in-asp-net-a377cbcaccc2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*0gFZK1AAzky6315ZMTI4mQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://cosmin-vladutu.medium.com/why-i-like-azure-cosmos-db-so-much-371b6eeb09b9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Why I Like Azure Cosmos DB So Much</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://cosmin-vladutu.medium.com/why-i-like-azure-cosmos-db-so-much-371b6eeb09b9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://cosmin-vladutu.medium.com/why-i-like-azure-cosmos-db-so-much-371b6eeb09b9?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Intro</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://cosmin-vladutu.medium.com/why-i-like-azure-cosmos-db-so-much-371b6eeb09b9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1280/0*7tNj2seDwyF4-bPy.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://ajaybisht-dev.medium.com/i-spent-6-months-treating-my-net-api-like-a-react-app-heres-the-mess-i-made-8bbc71c310c4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Spent 6 Months Treating My .NET API Like a React App. Here’s the Mess I Made</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://ajaybisht-dev.medium.com/i-spent-6-months-treating-my-net-api-like-a-react-app-heres-the-mess-i-made-8bbc71c310c4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://ajaybisht-dev.medium.com/i-spent-6-months-treating-my-net-api-like-a-react-app-heres-the-mess-i-made-8bbc71c310c4?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A full-stack confession from someone who should have known better</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://ajaybisht-dev.medium.com/i-spent-6-months-treating-my-net-api-like-a-react-app-heres-the-mess-i-made-8bbc71c310c4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*EmbfPU440nssdt7Ysgi17w.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@narjesswehbi04/frontend-filtering-works-until-pagination-enters-the-chat-d424ac1d57a7?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">“Frontend Filtering Works… Until Pagination Enters the Chat”</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@narjesswehbi04/frontend-filtering-works-until-pagination-enters-the-chat-d424ac1d57a7?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none">https://medium.com/@narjesswehbi04/frontend-filtering-works-until-pagination-enters-the-chat-d424ac1d57a7?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Users were searching for orders that definitely existed in our database — but getting empty results.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@narjesswehbi04/frontend-filtering-works-until-pagination-enters-the-chat-d424ac1d57a7?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-459" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*5tLYazME5HaTOsXDn044Gg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=eb62325e-3f94-42d8-8903-24370f45ad95&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #458</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-458</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-458</guid>
  <pubDate>Tue, 19 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-19T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="a-website-that-works-while-you-slee">A Website That Works While You Sleep</h3><div class="image"><a class="image__link" href="https://readdy.ai/landing/website-builder?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&utm_medium=AIBuilder&utm_term=CreativeD&_bhiiv=opp_59cee375-13b6-42b8-8c14-c79f030e65db_56dc6551&bhcl_id=13036156-7c23-4e80-b59d-fecfe313b405_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/b342a036-9dd2-4be0-abea-0d11d55aa8c1/AI-Version1__1_.jpg?t=1777480916"/></a></div><p class="paragraph" style="text-align:left;">Most AI builders hand you a good-looking site and call it a day.</p><p class="paragraph" style="text-align:left;"><a class="link" href="https://readdy.ai/landing/website-builder?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&utm_medium=AIBuilder&utm_term=CreativeD&_bhiiv=opp_59cee375-13b6-42b8-8c14-c79f030e65db_56dc6551&bhcl_id=13036156-7c23-4e80-b59d-fecfe313b405_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Readdy.ai</a> builds you a business. Your site collects leads, takes payments, and answers customer questions 24/7 — through a built-in AI agent.</p><p class="paragraph" style="text-align:left;">All in one. $15/month.</p><p class="paragraph" style="text-align:left;"><i><a class="link" href="https://readdy.ai/landing/website-builder?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&utm_medium=AIBuilder&utm_term=CreativeD&_bhiiv=opp_59cee375-13b6-42b8-8c14-c79f030e65db_56dc6551&bhcl_id=13036156-7c23-4e80-b59d-fecfe313b405_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Try for Free.</a></i></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Copilot Studio gets faster with .NET 10 on WebAssembly</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Microsoft Copilot Studio recently upgraded its .NET WebAssembly engine to .NET 10. The migration was straightforward, simplified deployment, and delivered another round of meaningful performance gains...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/05/copilot-studio-dotnet10-wasm.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://visualstudiomagazine.com/articles/2026/05/12/the-next-generation-of-developer-productivity-with-github-copilot-and-visual-studio.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Next Generation of Developer Productivity with GitHub Copilot and Visual Studio</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://visualstudiomagazine.com/articles/2026/05/12/the-next-generation-of-developer-productivity-with-github-copilot-and-visual-studio.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://visualstudiomagazine.com/articles/2026/05/12/the-next-generation-of-developer-productivity-with-github-copilot-and-visual-studio.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Simona Liao and Leah Tran, product managers at Microsoft, discuss how GitHub Copilot in Visual Studio has evolved from a code completion tool into an agent-driven development workflow -- and share pra...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://visualstudiomagazine.com/articles/2026/05/12/the-next-generation-of-developer-productivity-with-github-copilot-and-visual-studio.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-4/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET 11 Preview 4 is now available!</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-4/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/dotnet-11-preview-4/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Find out about the new features in .NET 11 Preview 4 across the .NET runtime, SDK, libraries, ASP.NET Core, .NET MAUI, C#, Entity Framework Core, and more! The post .NET 11 Preview 4 is now available...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-4/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/05/dotnet11p4.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-may-2026-servicing-updates/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET and .NET Framework May 2026 servicing releases updates</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-may-2026-servicing-updates/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-may-2026-servicing-updates/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Welcome to our combined .NET servicing updates for May 2026. Let's get into the latest release of .NET & .NET Framework, here is a quick overview of what's new in our servicing releases: Security ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-may-2026-servicing-updates/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/05/netmay.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=RqgccYQuFvo&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How work gets done in the Age of Al: Copilot, Apps and Agents</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=RqgccYQuFvo&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://www.youtube.com/watch?v=RqgccYQuFvo</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=RqgccYQuFvo&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://i.ytimg.com/vi/RqgccYQuFvo/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=-aeWWUDVVEY&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Building Employee Experience Agents with Microsoft Copilot Studio and MCP Integration</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=-aeWWUDVVEY&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://www.youtube.com/watch?v=-aeWWUDVVEY</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Join us for an in-depth session where we explore how to build intelligent AI agents that transform employee experience using Microsoft Copilot Studio, Power Platform and the Model Context Protocol (MC...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=-aeWWUDVVEY&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://i.ytimg.com/vi/-aeWWUDVVEY/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=5xSkNwATAz0&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Agentic User Interfaces in Copilot and Power Platform</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=5xSkNwATAz0&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://www.youtube.com/watch?v=5xSkNwATAz0</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=5xSkNwATAz0&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://i.ytimg.com/vi/5xSkNwATAz0/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.elmah.io/the-complete-guide-to-mastering-dapper-micro-orm-in-net/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The complete guide to mastering Dapper micro-ORM in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.elmah.io/the-complete-guide-to-mastering-dapper-micro-orm-in-net/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://blog.elmah.io/the-complete-guide-to-mastering-dapper-micro-orm-in-net/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">For developers who want to taste ORM but don't want to leave SQL either, Dapper is a perfect choice. Dapper runs SQL queries like ADO.NET but returns results as C# objects, like Entity Framework Core....</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.elmah.io/the-complete-guide-to-mastering-dapper-micro-orm-in-net/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://storage.ghost.io/c/a8/df/a8df410f-f385-46fe-9464-e894f7952067/content/images/size/w1200/2026/05/the-complete-guide-to-mastering-dapper-micro-orm-in-dot.net-o-2.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=Re9_ImKOub0&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Inside Cowork — Vision, Roadmap and What’s Next</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=Re9_ImKOub0&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://www.youtube.com/watch?v=Re9_ImKOub0</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=Re9_ImKOub0&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://i.ytimg.com/vi/Re9_ImKOub0/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/dotnet-maui-moves-to-coreclr-in-dotnet-11/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET MAUI Moves to CoreCLR in .NET 11</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/dotnet-maui-moves-to-coreclr-in-dotnet-11/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/dotnet-maui-moves-to-coreclr-in-dotnet-11/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">.NET MAUI apps on Android, iOS, and Mac Catalyst now run on CoreCLR by default in .NET 11, unifying the runtime across all of .NET. The post .NET MAUI Moves to CoreCLR in .NET 11 appeared first on .N...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/dotnet-maui-moves-to-coreclr-in-dotnet-11/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/05/feature_maui_coreclr.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=DC_z7VjJCJM&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Introducing the VS Code Agents Window (Preview)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=DC_z7VjJCJM&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://www.youtube.com/watch?v=DC_z7VjJCJM</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn more about the Agents window in our documentation: http://aka.ms/VSCode/Agents/docs Browse existing issues: https://aka.ms/github/agents-window</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=DC_z7VjJCJM&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://i.ytimg.com/vi/DC_z7VjJCJM/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=Llg065w53YE&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET AI Community Standup: .NET + AI at Build 2026: What’s Coming Next?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=Llg065w53YE&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://www.youtube.com/watch?v=Llg065w53YE</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=Llg065w53YE&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://i.ytimg.com/vi/Llg065w53YE/maxresdefault.jpg?v=6a04e89a" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/process-api-improvements-in-dotnet-11/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Process API Improvements in .NET 11</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/process-api-improvements-in-dotnet-11/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/process-api-improvements-in-dotnet-11/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Process API improvements in .NET 11, including high-level APIs for starting processes, capturing output without deadlocks, handle inheritance control, lifetime management features, and a lightweight `...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/process-api-improvements-in-dotnet-11/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-458" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/05/process-impr-11.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=042baa6b-4151-4fe6-bab7-5fe907b0e7fd&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #457</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-457</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-457</guid>
  <pubDate>Mon, 18 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-18T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="built-for-builders-not-buzzwords-sa">Built for builders. Not buzzwords. San José 2026</h3><div class="image"><a class="image__link" href="https://www.wearedevelopers.com/world-congress-north-america?utm_source=beehiiv&utm_medium=cpc&=&utm_content=WWC26_US&utm_campaign={{publication_alphanumeric_id}}&utm_term=secondary&_bhiiv=opp_0e9fc49b-cff8-4801-a40d-1c703dafb469_fa8609a6&bhcl_id=4559ccd6-32b2-4df8-a38e-2d91a5764c8e_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/cce5b48e-a968-4953-b537-8b2449aa0000/WWC26_NA_beehiive_ad__1_.png?t=1776044423"/></a></div><p class="paragraph" style="text-align:left;">500+ speakers. 18 content tracks. Workshops, masterclasses, and the people actually shipping the tools you use every day. WeAreDevelopers World Congress — September 23–25. <a class="link" href="https://www.wearedevelopers.com/world-congress-north-america?utm_source=beehiiv&utm_medium=cpc&=&utm_content=WWC26_US&utm_campaign={{publication_alphanumeric_id}}&utm_term=secondary&_bhiiv=opp_0e9fc49b-cff8-4801-a40d-1c703dafb469_fa8609a6&bhcl_id=4559ccd6-32b2-4df8-a38e-2d91a5764c8e_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Use code GITPUSH26 for 10% off.</a></p><p class="paragraph" style="text-align:left;"><i><a class="link" href="https://www.wearedevelopers.com/world-congress-north-america?utm_source=beehiiv&utm_medium=cpc&=&utm_content=WWC26_US&utm_campaign={{publication_alphanumeric_id}}&utm_term=secondary&_bhiiv=opp_0e9fc49b-cff8-4801-a40d-1c703dafb469_fa8609a6&bhcl_id=4559ccd6-32b2-4df8-a38e-2d91a5764c8e_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Secure Your Pass</a></i></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://csharpdigest.net/newsletters/2273-removing-byte-array-allocations-using-readonlyspan?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Removing byte array allocations using ReadOnlySpan</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://csharpdigest.net/newsletters/2273-removing-byte-array-allocations-using-readonlyspan?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://csharpdigest.net/newsletters/2273-removing-byte-array-allocations-using-readonlyspan</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">no matter which version of .NET you're targeting</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://csharpdigest.net/newsletters/2273-removing-byte-array-allocations-using-readonlyspan?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://csharpdigest.net/assets/social/csharp-4407d85e.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://damienbod.com/2026/05/11/using-configurable-token-lifetimes-in-microsoft-entra-id-net-and-microsoft-graph/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Using configurable token lifetimes in Microsoft Entra ID, .NET and Microsoft Graph</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://damienbod.com/2026/05/11/using-configurable-token-lifetimes-in-microsoft-entra-id-net-and-microsoft-graph/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://damienbod.com/2026/05/11/using-configurable-token-lifetimes-in-microsoft-entra-id-net-and-microsoft-graph/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Configurable token lifetimes in the Microsoft identity platform went GA and I thought I would look at implementing this using a .NET console application using Microsoft Graph . This article looks at i...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://damienbod.com/2026/05/11/using-configurable-token-lifetimes-in-microsoft-entra-id-net-and-microsoft-graph/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://i0.wp.com/damienbod.com/wp-content/uploads/2026/05/eid-app-reg-delegated-premissions_01.png?fit=1200%2C1067&ssl=1" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.roundthecode.com/dotnet-tutorials/refactoring-asp-net-core-api-clean-architecture?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Refactoring an ASP.NET Core API with clean architecture</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.roundthecode.com/dotnet-tutorials/refactoring-asp-net-core-api-clean-architecture?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://www.roundthecode.com/dotnet-tutorials/refactoring-asp-net-core-api-clean-architecture</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn how to refactor an ASP.NET Core API using clean architecture by separating validation, business logic, and database access into clear layers. The page Refactoring an ASP.NET Core API with clean ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.roundthecode.com/dotnet-tutorials/refactoring-asp-net-core-api-clean-architecture?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://www.roundthecode.com/media/1w2fzsao/tutorial-profile.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="http://www.mergeconflict.fm/514?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">514: Running Local LLMs in VS Code</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="http://www.mergeconflict.fm/514?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">http://www.mergeconflict.fm/514</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In this episode James and Frank dive into running AI coding models locally versus in the cloud—BYOK/Open Router, VS Code’s chat/agent harness, model runners (Olama, vLLM), and the practicality of 27B ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="http://www.mergeconflict.fm/514?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/0/02d84890-e58d-43eb-ab4c-26bcc8524289/cover_medium.jpg?v=0" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.pietschsoft.com/post/2026/05/11/csharp-how-to-refactor-legacy-code-safely?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C#: How to Refactor Legacy Code Safely</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.pietschsoft.com/post/2026/05/11/csharp-how-to-refactor-legacy-code-safely?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://www.pietschsoft.com/post/2026/05/11/csharp-how-to-refactor-legacy-code-safely</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Legacy C# code is usually not dangerous because it is old. It is dangerous because you do not fully know which parts are stable, which parts are accidentally correct, and which parts are one small cha...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.pietschsoft.com/post/2026/05/11/csharp-how-to-refactor-legacy-code-safely?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://www.pietschsoft.com/images/posts/2026/csharp-how-to-refactory-legacy-code-safely.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/how-to-integrate-a-restful-smm-panel-api-using-c-sharp-and-httpclient/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How to Integrate a RESTful SMM Panel API using C# and HttpClient</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/how-to-integrate-a-restful-smm-panel-api-using-c-sharp-and-httpclient/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://www.c-sharpcorner.com/article/how-to-integrate-a-restful-smm-panel-api-using-c-sharp-and-httpclient/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn how to automate digital marketing operations by integrating a RESTful SMM Panel API using C# and HttpClient. This step-by-step tutorial covers connecting to SMM Bear, a leading Indian SMM panel,...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/how-to-integrate-a-restful-smm-panel-api-using-c-sharp-and-httpclient/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/UploadFile/TwitterCard/twitter_card_logo.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.meziantou.net/propagating-opentelemetry-context-in-dotnet.htm?utm_medium=social&utm_source=syndication" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Propagating OpenTelemetry context in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.meziantou.net/propagating-opentelemetry-context-in-dotnet.htm?utm_medium=social&utm_source=syndication" style="text-decoration:none">https://www.meziantou.net/propagating-opentelemetry-context-in-dotnet.htm?utm_medium=social&utm_source=syndication</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When building distributed systems, maintaining observability across process boundaries is crucial for understanding the flow of requests through your application. OpenTelemetry provides a standard way...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.meziantou.net/propagating-opentelemetry-context-in-dotnet.htm?utm_medium=social&utm_source=syndication" style="text-decoration:none"><img src="https://www.meziantou.net/assets/cover-2f6f4d.jpg?v=508d" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.dotnetframework.org/2026/05/11/the-misleading-indexoutofrangeexception-that-means-your-list-isnt-thread-safe/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Misleading IndexOutOfRangeException That Means “Your List Isn’t Thread-Safe”</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.dotnetframework.org/2026/05/11/the-misleading-indexoutofrangeexception-that-means-your-list-isnt-thread-safe/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://blog.dotnetframework.org/2026/05/11/the-misleading-indexoutofrangeexception-that-means-your-list-isnt-thread-safe/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’ve ever seen a stack trace like this in a .NET application: …and you stared at the offending line — something innocuous like myList.Where(x =&gt; x.IsActive).ToList() — wondering how on earth a LI...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.dotnetframework.org/2026/05/11/the-misleading-indexoutofrangeexception-that-means-your-list-isnt-thread-safe/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://blog.dotnetframework.org/wp-content/uploads/2021/05/image.jpg?w=200" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://visualstudiomagazine.com/articles/2026/05/11/fixing-a-blazor-app-with-vs-codess-new-agent-browser-sharing.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Fixing a Blazor App with VS Code's New Agent Browser Sharing</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://visualstudiomagazine.com/articles/2026/05/11/fixing-a-blazor-app-with-vs-codess-new-agent-browser-sharing.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://visualstudiomagazine.com/articles/2026/05/11/fixing-a-blazor-app-with-vs-codess-new-agent-browser-sharing.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A hands-on Blazor test shows how VS Code 1.119 makes agent browser sharing more visible, permissioned and chat-driven.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://visualstudiomagazine.com/articles/2026/05/11/fixing-a-blazor-app-with-vs-codess-new-agent-browser-sharing.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://andrewlock.net/exploring-the-dotnet-11-preview-1-running-background-tasks-in-blazor-with-web-workers/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Running background tasks in Blazor with Web Workers: Exploring the .NET 11 preview - Part 1</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://andrewlock.net/exploring-the-dotnet-11-preview-1-running-background-tasks-in-blazor-with-web-workers/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://andrewlock.net/exploring-the-dotnet-11-preview-1-running-background-tasks-in-blazor-with-web-workers/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In this post I discuss the new Web Worker template available in .NET 11 for running CPU intensive tasks without blocking the UI</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://andrewlock.net/exploring-the-dotnet-11-preview-1-running-background-tasks-in-blazor-with-web-workers/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://andrewlock.net/content/images/2026/blazor_wasm_banner.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-apr-2026/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">What's new in Microsoft Foundry | April 2026</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-apr-2026/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-apr-2026/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">TL;DR Foundry Local (generally available, GA): Local model inference is production-ready on Windows, macOS on Apple Silicon, and Linux x64. GPT-5.5: The latest GPT-5 family model is available in Micro...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/foundry/whats-new-in-microsoft-foundry-apr-2026/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://devblogs.microsoft.com/foundry/wp-content/uploads/sites/89/2026/05/Whats20New20-20April202026.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMidkFVX3lxTE9ROVFUM3dERXdXRENSTUVmN0N1MUJBX05lTkctajBxZlJMMnY1RWdZcVpjUkw1X2JOdmRBeTQwbDMzOXdBNmlPQzJEbzVUZmZ0Nld1ZDIzOGY2blkwckFpQ05uNjFxUXNkZkpLemhYUVlNVjczcHc?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">38 | Entity Framework Core In ASP.NET Core 6 | EF Core 6 | Entity Framework | ASP.NET (Hindi/Urdu) (A7zfiZo5l3)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMidkFVX3lxTE9ROVFUM3dERXdXRENSTUVmN0N1MUJBX05lTkctajBxZlJMMnY1RWdZcVpjUkw1X2JOdmRBeTQwbDMzOXdBNmlPQzJEbzVUZmZ0Nld1ZDIzOGY2blkwckFpQ05uNjFxUXNkZkpLemhYUVlNVjczcHc?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://news.google.com/rss/articles/CBMidkFVX3lxTE9ROVFUM3dERXdXRENSTUVmN0N1MUJBX05lTkctajBxZlJMMnY1RWdZcVpjUkw1X2JOdmRBeTQwbDMzOXdBNmlPQzJEbzVUZmZ0Nld1ZDIzOGY2blkwckFpQ05uNjFxUXNkZkpLemhYUVlNVjczcHc?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">38 | Entity Framework Core In ASP.NET Core 6 | EF Core 6 | Entity Framework | ASP.NET (Hindi/Urdu) (A7zfiZo5l3)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMidkFVX3lxTE9ROVFUM3dERXdXRENSTUVmN0N1MUJBX05lTkctajBxZlJMMnY1RWdZcVpjUkw1X2JOdmRBeTQwbDMzOXdBNmlPQzJEbzVUZmZ0Nld1ZDIzOGY2blkwckFpQ05uNjFxUXNkZkpLemhYUVlNVjczcHc?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://codeopinion.com/why-sagas-feel-broken/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Why Sagas Feel Broken</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://codeopinion.com/why-sagas-feel-broken/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none">https://codeopinion.com/why-sagas-feel-broken/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">So, you built an elaborate system with commands, queues, an event-driven architecture, retries, timeouts, and, most importantly, compensating actions all handled within sagas. But do you really? Becau...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://codeopinion.com/why-sagas-feel-broken/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-457" style="text-decoration:none"><img src="https://codeopinion.com/wp-content/uploads/2026/05/Twitter-1.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=372f2d8e-a7d1-4d48-a9ff-448815f4ee9a&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #456</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-456</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-456</guid>
  <pubDate>Fri, 15 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-15T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/working-with-span-memory-and-ref-structs-in-high-performance-apps-using-net-9/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Working with Span, Memory, and ref structs in High-Performance Apps using .NET 9</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/working-with-span-memory-and-ref-structs-in-high-performance-apps-using-net-9/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://www.c-sharpcorner.com/article/working-with-span-memory-and-ref-structs-in-high-performance-apps-using-net-9/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Unlock peak .NET 9 performance! Dive into Span&lt;T&gt;, Memory&lt;T&gt;, and ref structs for allocation-free, high-speed code. Master stack-based memory and reduce GC pressure.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/working-with-span-memory-and-ref-structs-in-high-performance-apps-using-net-9/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/oldnewthing/20260506-00/?p=112303&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Why not have changes in API behavior depend on the SDK you link against?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/oldnewthing/20260506-00/?p=112303&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://devblogs.microsoft.com/oldnewthing/20260506-00/?p=112303</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Some time ago, I noted that the Co­Initialize­Security function demands an absolute security descriptor, even though many functions in Windows produce self-relat</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/oldnewthing/20260506-00/?p=112303&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ibrahimahmed9578/modernising-a-legacy-fleet-platform-architectural-decisions-scope-uncertainty-and-a-phased-path-27a94ec9eaa3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Modernising a Legacy Fleet Platform: Architectural Decisions, Scope Uncertainty, and a Phased Path…</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ibrahimahmed9578/modernising-a-legacy-fleet-platform-architectural-decisions-scope-uncertainty-and-a-phased-path-27a94ec9eaa3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://medium.com/@ibrahimahmed9578/modernising-a-legacy-fleet-platform-architectural-decisions-scope-uncertainty-and-a-phased-path-27a94ec9eaa3?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">While working for a client at DevNauts, I often have discussions about how to modernise the application. In the IT world, where AI is…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ibrahimahmed9578/modernising-a-legacy-fleet-platform-architectural-decisions-scope-uncertainty-and-a-phased-path-27a94ec9eaa3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://codewithmukesh.com/blog/concurrency-control-optimistic-locking-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Optimistic Concurrency in EF Core 10: ASP.NET Core Web API Guide</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://codewithmukesh.com/blog/concurrency-control-optimistic-locking-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://codewithmukesh.com/blog/concurrency-control-optimistic-locking-efcore/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn how to prevent data conflicts in ASP.NET Core Web API using optimistic concurrency with EF Core 10. RowVersion tokens, conflict resolution, retry strategies, and a decision matrix.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://codewithmukesh.com/blog/concurrency-control-optimistic-locking-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://codewithmukesh.com/_astro/cover.DxTnpGAt.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@bhargavkoya56/prompt-engineering-in-c-system-messages-few-shot-examples-structured-output-5de99c78a56b?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Prompt Engineering in C#: System Messages, Few-Shot Examples & Structured Output</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@bhargavkoya56/prompt-engineering-in-c-system-messages-few-shot-examples-structured-output-5de99c78a56b?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://medium.com/@bhargavkoya56/prompt-engineering-in-c-system-messages-few-shot-examples-structured-output-5de99c78a56b?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The Problem</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@bhargavkoya56/prompt-engineering-in-c-system-messages-few-shot-examples-structured-output-5de99c78a56b?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1024/0*BzAsmGrrkvOqvTsq" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/durable-workflows-in-microsoft-agent-framework/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Durable Workflows in the Microsoft Agent Framework</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/durable-workflows-in-microsoft-agent-framework/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/durable-workflows-in-microsoft-agent-framework/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Build durable AI agent workflows with the Microsoft Agent Framework. Start with in-process console apps, add durability with the Durable Task runtime, scale with parallel AI agents, and host on Azure ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/durable-workflows-in-microsoft-agent-framework/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/05/MAF_DurableWorkflow_Thumbnail.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/jin-system-architect/the-complete-c-guide-from-access-modifiers-to-zero-allocation-memory-everything-a-production-8b40a5e1eb0f?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Complete C# Guide: From Access Modifiers to Zero-Allocation Memory — Everything a Production…</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/jin-system-architect/the-complete-c-guide-from-access-modifiers-to-zero-allocation-memory-everything-a-production-8b40a5e1eb0f?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://medium.com/jin-system-architect/the-complete-c-guide-from-access-modifiers-to-zero-allocation-memory-everything-a-production-8b40a5e1eb0f?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">C# is one of the most feature-rich languages on the planet. The problem isn’t learning it — it’s knowing which parts actually matter when… Continue reading on JIN System Architect »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/jin-system-architect/the-complete-c-guide-from-access-modifiers-to-zero-allocation-memory-everything-a-production-8b40a5e1eb0f?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*f1Tea8iG-ilcmiXW" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@artillustration391/5-maui-ui-techniques-behind-a-complete-netflix-style-app-6e95adfdbbb1?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">5 MAUI UI Techniques Behind a Complete Netflix-Style App</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@artillustration391/5-maui-ui-techniques-behind-a-complete-netflix-style-app-6e95adfdbbb1?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://medium.com/@artillustration391/5-maui-ui-techniques-behind-a-complete-netflix-style-app-6e95adfdbbb1?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I built a full Netflix-style UI in .NET MAUI from scratch — no libraries. Here are the five techniques that made it work.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@artillustration391/5-maui-ui-techniques-behind-a-complete-netflix-style-app-6e95adfdbbb1?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1280/1*5N_uzGSemSDMT3_z80e8QA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=keiuYN6kbb8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Containerization Assist Integration with AKS VSCode Extension</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=keiuYN6kbb8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://www.youtube.com/watch?v=keiuYN6kbb8</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In this episode, we explore how Containerisation Assist integrates seamlessly with the Azure Kubernetes Service (AKS) VS Code Extension within Visual Studio Code, helping developers go from applicatio...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=keiuYN6kbb8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://i.ytimg.com/vi/keiuYN6kbb8/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://steven-giesel.com/blogPost/00fcb870-6bf7-4f97-824f-8eab1b8838be?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">BackgroundService exceptions now propagate in .NET 11</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://steven-giesel.com/blogPost/00fcb870-6bf7-4f97-824f-8eab1b8838be?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://steven-giesel.com/blogPost/00fcb870-6bf7-4f97-824f-8eab1b8838be</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Here's a bug that lived in .NET for over four years. If your BackgroundService threw an exception after its first await, your host would catch it, log a critical message, and then exit cleanly with ex...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://steven-giesel.com/blogPost/00fcb870-6bf7-4f97-824f-8eab1b8838be?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://linkdotnetblog.azureedge.net/blog/20230215_JsonSerializer/Thumbnail.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/ifdef-windows/announcing-the-winapp-vs-code-extension-run-debug-and-package-windows-apps-in-vs-code/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Announcing the WinApp VS Code Extension — Run, Debug, and Package Windows Apps in VS Code</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/ifdef-windows/announcing-the-winapp-vs-code-extension-run-debug-and-package-windows-apps-in-vs-code/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none">https://devblogs.microsoft.com/ifdef-windows/announcing-the-winapp-vs-code-extension-run-debug-and-package-windows-apps-in-vs-code/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">VS Code is where m</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/ifdef-windows/announcing-the-winapp-vs-code-extension-run-debug-and-package-windows-apps-in-vs-code/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-456" style="text-decoration:none"><img src="https://devblogs.microsoft.com/ifdef-windows/wp-content/uploads/sites/61/2026/05/vsce-header-0.1.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=eb9498d4-87fc-49d4-bde9-824f2c4dd9c2&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #455</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-455</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-455</guid>
  <pubDate>Thu, 14 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-14T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="100-claude-code-hacks-to-ship-code-">100+ Claude Code hacks to ship code 10X faster</h3><div class="image"><a class="image__link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_ee7d4e81-cb2a-42a2-96e1-5fcd64b51c83_94e90c2e&bhcl_id=6a80624f-0f5c-4530-9734-9ce4bff0afc1_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/db5f449a-cb97-4f25-bce5-cff48d221106/100%2B_Claude_Code_hacks_to_ship_10x_faster__in_2026_-_1200_X_600_V4__1___1_.jpg?t=1777043456"/></a></div><p class="paragraph" style="text-align:left;">Top engineers at Anthropic say AI now writes 100% of their code. </p><p class="paragraph" style="text-align:left;">Are you using AI to write yours?</p><p class="paragraph" style="text-align:left;">These <a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_ee7d4e81-cb2a-42a2-96e1-5fcd64b51c83_94e90c2e&bhcl_id=6a80624f-0f5c-4530-9734-9ce4bff0afc1_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">100+ Claude Code hacks</a> show you exactly how. Sign up for The Code and get:</p><ul><li><p class="paragraph" style="text-align:left;">100+ Claude Code hacks — free</p></li><li><p class="paragraph" style="text-align:left;">The Code newsletter — learn the latest AI tools and skills to code faster in 5 mins a day</p></li></ul><p class="paragraph" style="text-align:left;"><a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_ee7d4e81-cb2a-42a2-96e1-5fcd64b51c83_94e90c2e&bhcl_id=6a80624f-0f5c-4530-9734-9ce4bff0afc1_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Claim your free playbook</a></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/oldnewthing/20260504-00/?p=112296&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How do I inform Windows that I'm writing a binary file?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/oldnewthing/20260504-00/?p=112296&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://devblogs.microsoft.com/oldnewthing/20260504-00/?p=112296</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A customer wanted to know how to inform Windows that they were opening a file in text mode, as opposed to binary mode. That way, Windows can perform text conversions as necessary, like adding carriage...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/oldnewthing/20260504-00/?p=112296&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/python/introducing-apache-arrow-support-in-mssql-python/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Introducing Apache Arrow Support in mssql-python</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/python/introducing-apache-arrow-support-in-mssql-python/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://devblogs.microsoft.com/python/introducing-apache-arrow-support-in-mssql-python/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">mssql-python now supports fetching SQL Server data directly as Apache Arrow structures - a faster and more memory-efficient path for anyone working with SQL Server data in Polars, Pandas, DuckDB, or a...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/python/introducing-apache-arrow-support-in-mssql-python/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://devblogs.microsoft.com/python/wp-content/uploads/sites/12/2018/08/importOS-1256.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://visualstudiomagazine.com/articles/2026/05/07/mcp-magic-building-tool-enabled-ai-agents-with-csharp.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">MCP Magic: Building Tool-Enabled AI Agents with C#</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://visualstudiomagazine.com/articles/2026/05/07/mcp-magic-building-tool-enabled-ai-agents-with-csharp.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://visualstudiomagazine.com/articles/2026/05/07/mcp-magic-building-tool-enabled-ai-agents-with-csharp.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Rockford Lhotka previews his Visual Studio Live! San Diego session, "MCP Magic," and explains why the Model Context Protocol is becoming a key building block for AI agents. In this Q&A, ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://visualstudiomagazine.com/articles/2026/05/07/mcp-magic-building-tool-enabled-ai-agents-with-csharp.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@satnamgoldi/memory-gc-the-clr-what-every-net-performance-engineer-must-know-138684da9ec3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Memory, GC & the CLR — What Every .NET Performance Engineer Must Know</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@satnamgoldi/memory-gc-the-clr-what-every-net-performance-engineer-must-know-138684da9ec3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://medium.com/@satnamgoldi/memory-gc-the-clr-what-every-net-performance-engineer-must-know-138684da9ec3?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Before you open a profiler, before you start tuning code, you need to understand what’s actually happening under the hood.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@satnamgoldi/memory-gc-the-clr-what-every-net-performance-engineer-must-know-138684da9ec3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1038/1*g2MMucesFoil4SuRUAkofQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.elmah.io/pattern-matching-in-c-advanced-scenarios-you-didnt-know/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Pattern matching in C#: Advanced scenarios you didn't know</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.elmah.io/pattern-matching-in-c-advanced-scenarios-you-didnt-know/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://blog.elmah.io/pattern-matching-in-c-advanced-scenarios-you-didnt-know/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">table of contents Pattern matching is not just condition checking. It reflects how you think as a developer. Matching and validation can be achieved in a naive, descriptive way. However, a cleaner app...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.elmah.io/pattern-matching-in-c-advanced-scenarios-you-didnt-know/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://storage.ghost.io/c/a8/df/a8df410f-f385-46fe-9464-e894f7952067/content/images/size/w1200/2026/04/pattern-matching-in-csharp-advanced-scenarios-you-didnt-know-o.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.stackademic.com/10-hidden-features-in-c-that-will-make-you-a-better-developer-63ad802aaffa?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">10 Hidden Features in C# That Will Make You a Better Developer</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.stackademic.com/10-hidden-features-in-c-that-will-make-you-a-better-developer-63ad802aaffa?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://blog.stackademic.com/10-hidden-features-in-c-that-will-make-you-a-better-developer-63ad802aaffa?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Most developers learn the basics of C# and stop at classes, loops or maybe a bit of LINQ. But C# has evolved a lot over the years and many… Continue reading on Stackademic »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.stackademic.com/10-hidden-features-in-c-that-will-make-you-a-better-developer-63ad802aaffa?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*BhZ0GQAnKpfBrKRbCN5kFQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@feldyjudahk/simple-multithreading-in-c-with-a-practical-example-net-10-1af4495d2799?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Simple Multithreading in C# with a Practical Example (.NET 10)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@feldyjudahk/simple-multithreading-in-c-with-a-practical-example-net-10-1af4495d2799?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://medium.com/@feldyjudahk/simple-multithreading-in-c-with-a-practical-example-net-10-1af4495d2799?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Multithreading is a fundamental concept in modern programming that allows applications to perform multiple operations concurrently.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@feldyjudahk/simple-multithreading-in-c-with-a-practical-example-net-10-1af4495d2799?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/600/1*qfJbssT4GyyWq-Ofw0qCIQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.roundthecode.com/dotnet-tutorials/how-to-migrate-controllers-to-minimal-apis?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How to migrate from controllers to Minimal APIs</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.roundthecode.com/dotnet-tutorials/how-to-migrate-controllers-to-minimal-apis?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://www.roundthecode.com/dotnet-tutorials/how-to-migrate-controllers-to-minimal-apis</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn why Minimal APIs are now recommended in .NET and follow a step-by-step guide to migrate from controllers to Minimal APIs with versioning and Swagger. The page How to migrate from controllers to ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.roundthecode.com/dotnet-tutorials/how-to-migrate-controllers-to-minimal-apis?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://www.roundthecode.com/media/qrtdozlo/tutorial-profile.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://azure.microsoft.com/en-us/blog/enforcing-trust-and-transparency-open-sourcing-the-azure-integrated-hsm/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Enforcing trust and transparency: Open-sourcing the Azure Integrated HSM</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://azure.microsoft.com/en-us/blog/enforcing-trust-and-transparency-open-sourcing-the-azure-integrated-hsm/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://azure.microsoft.com/en-us/blog/enforcing-trust-and-transparency-open-sourcing-the-azure-integrated-hsm/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">As cloud workloads become more agentic and AI systems handle increasingly sensitive data, trust must be engineered directly into infrastructure. Azure Integrated HSM brings hardware‑enforced key prote...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://azure.microsoft.com/en-us/blog/enforcing-trust-and-transparency-open-sourcing-the-azure-integrated-hsm/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://azure.microsoft.com/en-us/blog/wp-content/uploads/2026/04/Azure-Integrated-Hardware-Security-1.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.jermdavis.dev/posts/2026/content-hub-entity-image?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How do I have an image for my Entity?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.jermdavis.dev/posts/2026/content-hub-entity-image?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://blog.jermdavis.dev/posts/2026/content-hub-entity-image</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I've been spending some time setting up some custom Entities in Content Hub recently. I bumped up against an issue with one feature where it took me a while to find the right info to make it work the ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.jermdavis.dev/posts/2026/content-hub-entity-image?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://blog.jermdavis.dev/img/featured/content-hub-entity-image-social.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@mariammaurice/how-to-use-domain-driven-design-in-clean-architecture-6b21de280cd8?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How To Use Domain-Driven Design In Clean Architecture</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@mariammaurice/how-to-use-domain-driven-design-in-clean-architecture-6b21de280cd8?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://medium.com/@mariammaurice/how-to-use-domain-driven-design-in-clean-architecture-6b21de280cd8?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A Practical Guide for .NET 10 Developers Building Enterprise-Grade Systems</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@mariammaurice/how-to-use-domain-driven-design-in-clean-architecture-6b21de280cd8?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1672/1*s3_kXlTBjUWH-1KmDYTkWQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.poppastring.com/blog/what-we-lost-the-last-time-code-got-cheap?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">What We Lost the Last Time Code Got Cheap</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.poppastring.com/blog/what-we-lost-the-last-time-code-got-cheap?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://www.poppastring.com/blog/what-we-lost-the-last-time-code-got-cheap</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I worked at a startup in Toledo called Heartland Information Services. We provided transcription services to some of the biggest hospitals in the United States, and we weren't small. Heartland was one...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.poppastring.com/blog/what-we-lost-the-last-time-code-got-cheap?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://www.poppastring.com/blog/content/binary/cricket-ball-made-in-india.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/difference-between-valuetask-and-task-in-c-sharp-with-performance-use-cases/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Difference Between ValueTask and Task in C# with Performance Use Cases?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/difference-between-valuetask-and-task-in-c-sharp-with-performance-use-cases/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://www.c-sharpcorner.com/article/difference-between-valuetask-and-task-in-c-sharp-with-performance-use-cases/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Explore Task vs. ValueTask in C# async programming. Learn when to use ValueTask for performance gains by minimizing memory allocation in high-throughput scenarios. Task is simpler and safer!</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/difference-between-valuetask-and-task-in-c-sharp-with-performance-use-cases/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/mr-plan-publication/i-built-my-own-cross-platform-media-player-2d23d38a2ebf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Built My Own Cross-Platform Media Player</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/mr-plan-publication/i-built-my-own-cross-platform-media-player-2d23d38a2ebf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none">https://medium.com/mr-plan-publication/i-built-my-own-cross-platform-media-player-2d23d38a2ebf?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">For a long time, media players felt like one of those things that already existed. Continue reading on Mr. Plan ₿ Publication »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/mr-plan-publication/i-built-my-own-cross-platform-media-player-2d23d38a2ebf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-455" style="text-decoration:none"><img src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*f1Tea8iG-ilcmiXW" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=6f5d7a5b-c8ef-479c-8a27-cee8003b1112&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #454</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-454</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-454</guid>
  <pubDate>Wed, 13 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-13T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="100-claude-code-hacks-to-ship-code-">100+ Claude Code hacks to ship code 10X faster</h3><div class="image"><a class="image__link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_6794d742-5a74-4678-bcf9-4ac3a979f7e4_94e90c2e&bhcl_id=f6bf3e50-8402-4cd7-b8bf-a270257881c8_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/db5f449a-cb97-4f25-bce5-cff48d221106/100%2B_Claude_Code_hacks_to_ship_10x_faster__in_2026_-_1200_X_600_V4__1___1_.jpg?t=1777043456"/></a></div><p class="paragraph" style="text-align:left;">Top engineers at Anthropic say AI now writes 100% of their code. </p><p class="paragraph" style="text-align:left;">Are you using AI to write yours?</p><p class="paragraph" style="text-align:left;">These <a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_6794d742-5a74-4678-bcf9-4ac3a979f7e4_94e90c2e&bhcl_id=f6bf3e50-8402-4cd7-b8bf-a270257881c8_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">100+ Claude Code hacks</a> show you exactly how. Sign up for The Code and get:</p><ul><li><p class="paragraph" style="text-align:left;">100+ Claude Code hacks — free</p></li><li><p class="paragraph" style="text-align:left;">The Code newsletter — learn the latest AI tools and skills to code faster in 5 mins a day</p></li></ul><p class="paragraph" style="text-align:left;"><a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_6794d742-5a74-4678-bcf9-4ac3a979f7e4_94e90c2e&bhcl_id=f6bf3e50-8402-4cd7-b8bf-a270257881c8_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Claim your free playbook</a></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@f.sazanavets/machine-learning-for-c-developers-made-easy-d5e16d959169?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Machine Learning for C# Developers Made Easy</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@f.sazanavets/machine-learning-for-c-developers-made-easy-d5e16d959169?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@f.sazanavets/machine-learning-for-c-developers-made-easy-d5e16d959169?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’ve been following me for a while, you would know that I wrote several books related to .NET and C#. Most recently, I published a…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@f.sazanavets/machine-learning-for-c-developers-made-easy-d5e16d959169?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1200/0*DB9PLv_lhU4Whs5r.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Copilot Studio gets faster with .NET 10 on WebAssembly</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A few months ago, we shared How Copilot Studio uses .NET and WebAssembly for performance and innovation, describing how Microsoft Copilot Studio runs C# in the browser via .NET</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/copilot-studio-dotnet-10-migration/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/05/copilot-studio-dotnet10-wasm.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@chandrashekharsingh25/stop-creating-fake-data-manually-use-bogus-in-net-10-3dc160e283d9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Stop Creating Fake Data Manually — Use Bogus in .NET 10</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@chandrashekharsingh25/stop-creating-fake-data-manually-use-bogus-in-net-10-3dc160e283d9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@chandrashekharsingh25/stop-creating-fake-data-manually-use-bogus-in-net-10-3dc160e283d9?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Every developer has been there — staring at a blank test file, typing "John Doe" for the hundredth time. There's a better way.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@chandrashekharsingh25/stop-creating-fake-data-manually-use-bogus-in-net-10-3dc160e283d9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*NitE97w_3AXCUsPsoLM5kg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://jeremie-litzler.medium.com/how-are-virtual-partial-override-used-in-c-e291d76abb86?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How Are ‘virtual’, ‘partial’, ‘override’ Used in C#?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://jeremie-litzler.medium.com/how-are-virtual-partial-override-used-in-c-e291d76abb86?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://jeremie-litzler.medium.com/how-are-virtual-partial-override-used-in-c-e291d76abb86?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">And what are they in the C# programming language. Let’s review that together.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://jeremie-litzler.medium.com/how-are-virtual-partial-override-used-in-c-e291d76abb86?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1200/0*FjVYn0DetgShbmUY.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@srghimire061/owasp-top-10-for-net-developers-part-1-preventing-broken-access-control-8ce4e40a818f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">OWASP Top 10 for .NET Developers - Part 1: Preventing Broken Access Control</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@srghimire061/owasp-top-10-for-net-developers-part-1-preventing-broken-access-control-8ce4e40a818f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@srghimire061/owasp-top-10-for-net-developers-part-1-preventing-broken-access-control-8ce4e40a818f?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Broken Access Control is ranked as the #1 security risk in the OWASP Top 10 because improperly enforced authorization allows attackers to…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@srghimire061/owasp-top-10-for-net-developers-part-1-preventing-broken-access-control-8ce4e40a818f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*dk8aj2fCrEVjYO8EOqoZHQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=mfj8oxjqdaM&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET MAUI Community Standup: Rust, SkiaSharp Everywhere, AI/ML Live Processing</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=mfj8oxjqdaM&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://www.youtube.com/watch?v=mfj8oxjqdaM</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=mfj8oxjqdaM&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://i.ytimg.com/vi/mfj8oxjqdaM/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@d.shved.wrk/deep-dive-into-dbcontext-in-asp-net-core-identity-1fa4e5eced24?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Deep Dive into DbContext in ASP.NET Core Identity</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@d.shved.wrk/deep-dive-into-dbcontext-in-asp-net-core-identity-1fa4e5eced24?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@d.shved.wrk/deep-dive-into-dbcontext-in-asp-net-core-identity-1fa4e5eced24?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Do you know for sure what’s going on under the hood when you create your ApplicationDbContext using ASP.NET</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@d.shved.wrk/deep-dive-into-dbcontext-in-asp-net-core-identity-1fa4e5eced24?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/batary/i-built-surefire-a-background-job-library-for-modern-net-ae0469fa05b6?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I built Surefire, a background job library for modern .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/batary/i-built-surefire-a-background-job-library-for-modern-net-ae0469fa05b6?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/batary/i-built-surefire-a-background-job-library-for-modern-net-ae0469fa05b6?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I just released a preview of Surefire, the distributed job scheduling library I’ve been working on for the past couple of months. Continue reading on batary »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/batary/i-built-surefire-a-background-job-library-for-modern-net-ae0469fa05b6?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*f1Tea8iG-ilcmiXW" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@queiros.diogo4/goodbye-bootstrap-how-to-integrate-tailwind-css-into-a-blazor-app-4812088ce904?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Goodbye Bootstrap: How to Integrate Tailwind CSS into a Blazor App</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@queiros.diogo4/goodbye-bootstrap-how-to-integrate-tailwind-css-into-a-blazor-app-4812088ce904?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@queiros.diogo4/goodbye-bootstrap-how-to-integrate-tailwind-css-into-a-blazor-app-4812088ce904?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you work with the .NET ecosystem, you know that Blazor has revolutionized the way we build web applications.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@queiros.diogo4/goodbye-bootstrap-how-to-integrate-tailwind-css-into-a-blazor-app-4812088ce904?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*ztgh8SscnrW6JzPRua29_w.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://dotnettips.com/2026/05/10/collection-performance-addrange-vs-insertrange-when-populating-lists/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Collection Performance: AddRange() vs. InsertRange() When Populating Lists</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://dotnettips.com/2026/05/10/collection-performance-addrange-vs-insertrange-when-populating-lists/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://dotnettips.com/2026/05/10/collection-performance-addrange-vs-insertrange-when-populating-lists/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When populating collections in .NET, choosing the right bulk operation improves both clarity and efficiency. Methods like AddRange() and InsertRange() allow multiple items to be added in a single call...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://dotnettips.com/2026/05/10/collection-performance-addrange-vs-insertrange-when-populating-lists/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://i0.wp.com/dotnettips.com/wp-content/uploads/2026/05/20260218_0626_image-generation_remix_01khrbdyg1eawbjk1sb850ntj4.png?fit=1200%2C800&ssl=1&w=640" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@monicalaurenzana/deferred-execution-in-linq-what-finally-made-it-click-b1b4ffc9552a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Deferred Execution in LINQ: What Finally Made It Click</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@monicalaurenzana/deferred-execution-in-linq-what-finally-made-it-click-b1b4ffc9552a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@monicalaurenzana/deferred-execution-in-linq-what-finally-made-it-click-b1b4ffc9552a?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I thought my LINQ query had already run… but it hadn’t.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@monicalaurenzana/deferred-execution-in-linq-what-finally-made-it-click-b1b4ffc9552a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*On3XcQNcw5a9X8BRJ4plMA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@oshadhaj/designing-a-production-ready-backend-in-net-00f4203ed034?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Designing a Production-Ready Backend in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@oshadhaj/designing-a-production-ready-backend-in-net-00f4203ed034?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@oshadhaj/designing-a-production-ready-backend-in-net-00f4203ed034?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">An end-to-end practical architecture walkthrough using modular monoliths, CQRS, domain events, resiliency, and observability</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@oshadhaj/designing-a-production-ready-backend-in-net-00f4203ed034?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*8gKd935FRydndGHQkqMLsw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@michael.kopt/modernizing-net-part-23-migrating-log4net-to-modern-net-logging-ebad712711e5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Modernizing .NET — Part 23: Migrating log4net to Modern .NET Logging</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@michael.kopt/modernizing-net-part-23-migrating-log4net-to-modern-net-logging-ebad712711e5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://medium.com/@michael.kopt/modernizing-net-part-23-migrating-log4net-to-modern-net-logging-ebad712711e5?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Fix log context loss in async .NET Core apps. Migrate log4net from ThreadContext to LogicalThreadContext for seamless diagnostic flow.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@michael.kopt/modernizing-net-part-23-migrating-log4net-to-modern-net-logging-ebad712711e5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*MOOLv7cru3zdv9QZjDFjBA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/insidemsix/there-is-no-install-its-stage-and-register/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">There is no Install - it's 'Stage' and 'Register'</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/insidemsix/there-is-no-install-its-stage-and-register/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none">https://devblogs.microsoft.com/insidemsix/there-is-no-install-its-stage-and-register/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">"Is ContosoParts.msix installed?" is a common - but misleading - question The term install is not a formal concept in MSIX. This may seem paradoxical for a deployment technology, but it make...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/insidemsix/there-is-no-install-its-stage-and-register/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-454" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=44548e83-1979-4d94-bfb7-f54741afa797&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #453</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-453</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-453</guid>
  <pubDate>Tue, 12 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-12T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="100-claude-code-hacks-to-ship-code-">100+ Claude Code hacks to ship code 10X faster</h3><div class="image"><a class="image__link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_34be0842-efa5-4109-90bb-83c59778bd7a_94e90c2e&bhcl_id=77a32f7d-3402-4016-ae5e-397572d3dbcf_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/db5f449a-cb97-4f25-bce5-cff48d221106/100%2B_Claude_Code_hacks_to_ship_10x_faster__in_2026_-_1200_X_600_V4__1___1_.jpg?t=1777043456"/></a></div><p class="paragraph" style="text-align:left;">Top engineers at Anthropic say AI now writes 100% of their code. </p><p class="paragraph" style="text-align:left;">Are you using AI to write yours?</p><p class="paragraph" style="text-align:left;">These <a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_34be0842-efa5-4109-90bb-83c59778bd7a_94e90c2e&bhcl_id=77a32f7d-3402-4016-ae5e-397572d3dbcf_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">100+ Claude Code hacks</a> show you exactly how. Sign up for The Code and get:</p><ul><li><p class="paragraph" style="text-align:left;">100+ Claude Code hacks — free</p></li><li><p class="paragraph" style="text-align:left;">The Code newsletter — learn the latest AI tools and skills to code faster in 5 mins a day</p></li></ul><p class="paragraph" style="text-align:left;"><a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_34be0842-efa5-4109-90bb-83c59778bd7a_94e90c2e&bhcl_id=77a32f7d-3402-4016-ae5e-397572d3dbcf_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Claim your free playbook</a></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@farzadbagheri33/mcp-model-context-protocol-the-future-of-ai-tool-integration-in-net-82a2c1444d7d?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">MCP — Model Context Protocol The Future of AI Tool Integration in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@farzadbagheri33/mcp-model-context-protocol-the-future-of-ai-tool-integration-in-net-82a2c1444d7d?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://medium.com/@farzadbagheri33/mcp-model-context-protocol-the-future-of-ai-tool-integration-in-net-82a2c1444d7d?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">“The day I replaced 400 lines of custom plugin glue code with a 40-line MCP server and watched Claude, GPT-4o, and our internal Phi-4…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@farzadbagheri33/mcp-model-context-protocol-the-future-of-ai-tool-integration-in-net-82a2c1444d7d?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/691/1*e72Zl63b3bMjOdkmHZeIiA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://visualstudiomagazine.com/articles/2026/05/04/special-embrace-vs-code-adapts-to-claude-codes-ecosystem.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Special Embrace? VS Code Adapts to Claude Code's Ecosystem</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://visualstudiomagazine.com/articles/2026/05/04/special-embrace-vs-code-adapts-to-claude-codes-ecosystem.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://visualstudiomagazine.com/articles/2026/05/04/special-embrace-vs-code-adapts-to-claude-codes-ecosystem.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Reflecting a broader trend of Microsoft embracing Claude AI, recent VS Code updates show the company accommodating Claude Code beyond model selection, with support for Claude-specific instruction file...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://visualstudiomagazine.com/articles/2026/05/04/special-embrace-vs-code-adapts-to-claude-codes-ecosystem.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@srishakthivarshini.2005141/stop-memorizing-6-real-world-net-interview-questions-that-actually-get-asked-cb1a91c92faa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Stop Memorizing: 6 Real-World .NET Interview Questions That Actually Get Asked</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@srishakthivarshini.2005141/stop-memorizing-6-real-world-net-interview-questions-that-actually-get-asked-cb1a91c92faa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://medium.com/@srishakthivarshini.2005141/stop-memorizing-6-real-world-net-interview-questions-that-actually-get-asked-cb1a91c92faa?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Think Like a Developer, Not a Textbook</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@srishakthivarshini.2005141/stop-memorizing-6-real-world-net-interview-questions-that-actually-get-asked-cb1a91c92faa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/600/1*rPOWqZExyN1jnyP3Ywb5WQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@pavanpitthdiya/repository-pattern-in-c-complete-guide-with-generic-repository-and-real-world-examples-a8f62ea7ffea?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Repository Pattern in C#: Complete Guide with Generic Repository and Real-World Examples</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@pavanpitthdiya/repository-pattern-in-c-complete-guide-with-generic-repository-and-real-world-examples-a8f62ea7ffea?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://medium.com/@pavanpitthdiya/repository-pattern-in-c-complete-guide-with-generic-repository-and-real-world-examples-a8f62ea7ffea?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When developers start building applications using ASP.NET</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@pavanpitthdiya/repository-pattern-in-c-complete-guide-with-generic-repository-and-real-world-examples-a8f62ea7ffea?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*DukHXhYN8PDQQ_z-sUMwqg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="http://www.mergeconflict.fm/513?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">513: Agents Over Chat: The Future of Developer Workflows</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="http://www.mergeconflict.fm/513?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">http://www.mergeconflict.fm/513</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">James and Frank explore the future of developer workflows powered by AI agents, revealing how developers are shifting from coders to testers and product strategists. They dive into new research-planni...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="http://www.mergeconflict.fm/513?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://media24.fireside.fm/file/fireside-images-2024/podcasts/images/0/02d84890-e58d-43eb-ab4c-26bcc8524289/cover_medium.jpg?v=0" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=9PUt81AjfmA&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Agent Mode with skills, hooks, instructions and more - Sessions 1-8</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=9PUt81AjfmA&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://www.youtube.com/watch?v=9PUt81AjfmA</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In this video, we'll introduce Customization in VS Code, demo five Customization features and finally we'll walk through building an app from scratch. Bluesky: https://bsky.app/profile/vscode.dev</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=9PUt81AjfmA&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://i.ytimg.com/vi/9PUt81AjfmA/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMi3wFBVV95cUxOVTBGSkc4Q18wTWt3dlM1bE4xdzJZYUNhY2p3WTlpWEdYX3VzdngxUURMa2R3bkNoMFB1X1IzSThMbUp2ODBDQU9XNklYSFozTHdlZkE3SVJTOU02SmZtdHFraEgtTVFmSS1OTjRKR3YwQTFNNkMxV2RLeWRhb3VqQ1c3cC1QNEhzSFhIRGpSSkFzdXJ1WGZ4Zm9URHJSVnhIMFhOazNabC0tVDJfd01CX3g0U1dpX0ZUX0xWd3ROZXlHZzlZVjZnNG0zMG5XMkdtN1BOcnFLcWh6dzZiNUVz?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Moderne Expands Agent Tools Platform with C# Support for Deterministic .NET Transformation</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMi3wFBVV95cUxOVTBGSkc4Q18wTWt3dlM1bE4xdzJZYUNhY2p3WTlpWEdYX3VzdngxUURMa2R3bkNoMFB1X1IzSThMbUp2ODBDQU9XNklYSFozTHdlZkE3SVJTOU02SmZtdHFraEgtTVFmSS1OTjRKR3YwQTFNNkMxV2RLeWRhb3VqQ1c3cC1QNEhzSFhIRGpSSkFzdXJ1WGZ4Zm9URHJSVnhIMFhOazNabC0tVDJfd01CX3g0U1dpX0ZUX0xWd3ROZXlHZzlZVjZnNG0zMG5XMkdtN1BOcnFLcWh6dzZiNUVz?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://news.google.com/rss/articles/CBMi3wFBVV95cUxOVTBGSkc4Q18wTWt3dlM1bE4xdzJZYUNhY2p3WTlpWEdYX3VzdngxUURMa2R3bkNoMFB1X1IzSThMbUp2ODBDQU9XNklYSFozTHdlZkE3SVJTOU02SmZtdHFraEgtTVFmSS1OTjRKR3YwQTFNNkMxV2RLeWRhb3VqQ1c3cC1QNEhzSFhIRGpSSkFzdXJ1WGZ4Zm9URHJSVnhIMFhOazNabC0tVDJfd01CX3g0U1dpX0ZUX0xWd3ROZXlHZzlZVjZnNG0zMG5XMkdtN1BOcnFLcWh6dzZiNUVz?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Moderne Expands Agent Tools Platform with C# Support for Deterministic .NET Transformation</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMi3wFBVV95cUxOVTBGSkc4Q18wTWt3dlM1bE4xdzJZYUNhY2p3WTlpWEdYX3VzdngxUURMa2R3bkNoMFB1X1IzSThMbUp2ODBDQU9XNklYSFozTHdlZkE3SVJTOU02SmZtdHFraEgtTVFmSS1OTjRKR3YwQTFNNkMxV2RLeWRhb3VqQ1c3cC1QNEhzSFhIRGpSSkFzdXJ1WGZ4Zm9URHJSVnhIMFhOazNabC0tVDJfd01CX3g0U1dpX0ZUX0xWd3ROZXlHZzlZVjZnNG0zMG5XMkdtN1BOcnFLcWh6dzZiNUVz?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/codetodeploy/10-c-memory-hacks-that-turn-beginners-into-pros-fast-fddd31529253?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">10 C Memory Hacks That Turn Beginners Into Pros Fast</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/codetodeploy/10-c-memory-hacks-that-turn-beginners-into-pros-fast-fddd31529253?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://medium.com/codetodeploy/10-c-memory-hacks-that-turn-beginners-into-pros-fast-fddd31529253?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Practical, real-world strategies to tame memory, pointers, and allocation without fear. Continue reading on CodeToDeploy »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/codetodeploy/10-c-memory-hacks-that-turn-beginners-into-pros-fast-fddd31529253?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*f1Tea8iG-ilcmiXW" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://codewithmukesh.com/blog/prompt-engineering-claude-code-dotnet/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Prompt Engineering for Claude Code - The .NET Developer's Guide</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://codewithmukesh.com/blog/prompt-engineering-claude-code-dotnet/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://codewithmukesh.com/blog/prompt-engineering-claude-code-dotnet/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Write effective Claude Code prompts for .NET 10 projects. The 4-layer instruction hierarchy, 10 Bad vs Better patterns, and a decision matrix from 6 months of daily use.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://codewithmukesh.com/blog/prompt-engineering-claude-code-dotnet/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://codewithmukesh.com/_astro/cover.CdbqSBwL.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMifkFVX3lxTE5HQS1RNWJuWTFVc2tzTy1CM0pRLWZBbmtJMkNWSzJCMkhPQWtwR0Q3Q3ZSRmFVNF9kVDN5UEZNMFFidExUbHhHZkI2dVNJdnlBS05vTWNmNER2RS1QbUlLajROZC1yZW5CU29PMnNrWFA2bm80b2VTbDF4c0ExUQ?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Expanded Agent Tools Platform Offers Support for C#, Enabling Automated Transformation of .NET Applications at Enterprise Scale</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMifkFVX3lxTE5HQS1RNWJuWTFVc2tzTy1CM0pRLWZBbmtJMkNWSzJCMkhPQWtwR0Q3Q3ZSRmFVNF9kVDN5UEZNMFFidExUbHhHZkI2dVNJdnlBS05vTWNmNER2RS1QbUlLajROZC1yZW5CU29PMnNrWFA2bm80b2VTbDF4c0ExUQ?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://news.google.com/rss/articles/CBMifkFVX3lxTE5HQS1RNWJuWTFVc2tzTy1CM0pRLWZBbmtJMkNWSzJCMkhPQWtwR0Q3Q3ZSRmFVNF9kVDN5UEZNMFFidExUbHhHZkI2dVNJdnlBS05vTWNmNER2RS1QbUlLajROZC1yZW5CU29PMnNrWFA2bm80b2VTbDF4c0ExUQ?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Expanded Agent Tools Platform Offers Support for C#, Enabling Automated Transformation of .NET Applications at Enterprise Scale</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMifkFVX3lxTE5HQS1RNWJuWTFVc2tzTy1CM0pRLWZBbmtJMkNWSzJCMkhPQWtwR0Q3Q3ZSRmFVNF9kVDN5UEZNMFFidExUbHhHZkI2dVNJdnlBS05vTWNmNER2RS1QbUlLajROZC1yZW5CU29PMnNrWFA2bm80b2VTbDF4c0ExUQ?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="http://www.binaryintellect.net/articles/7f343558-dffa-46be-a0e3-717d03ed496f.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Observer Pattern in .NET — Events, Streams, and Awareness</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="http://www.binaryintellect.net/articles/7f343558-dffa-46be-a0e3-717d03ed496f.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">http://www.binaryintellect.net/articles/7f343558-dffa-46be-a0e3-717d03ed496f.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In software systems, state changes constantly—but the real challenge lies in propagating those changes to the right parts of the system without creating tight coupling. The Observer Pattern addresses ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="http://www.binaryintellect.net/articles/7f343558-dffa-46be-a0e3-717d03ed496f.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="http://www.binaryintellect.net/articles/content/images/T_ObserverInAspNet.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=RpvqkzdaUD8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Introducing Quest to Compile: A Show for Game Devs Building in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=RpvqkzdaUD8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://www.youtube.com/watch?v=RpvqkzdaUD8</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=RpvqkzdaUD8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://i.ytimg.com/vi/RpvqkzdaUD8/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMidkFVX3lxTE14bUJKRjV2aFVfMFRHX0ZqdlNENndPWk9vMVh5OTQ1WjJZUE9tZTA2UGpwcHd1QXhGcXJNZlBwWk9EUnZYbFJRTmNZVWZNM2cyQjd5SHNWQWJBUTZpV2FQZ0lmVUd1T1ZxS1J5cExRMmJFY0hhR3c?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Blazor Community Standup</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMidkFVX3lxTE14bUJKRjV2aFVfMFRHX0ZqdlNENndPWk9vMVh5OTQ1WjJZUE9tZTA2UGpwcHd1QXhGcXJNZlBwWk9EUnZYbFJRTmNZVWZNM2cyQjd5SHNWQWJBUTZpV2FQZ0lmVUd1T1ZxS1J5cExRMmJFY0hhR3c?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://news.google.com/rss/articles/CBMidkFVX3lxTE14bUJKRjV2aFVfMFRHX0ZqdlNENndPWk9vMVh5OTQ1WjJZUE9tZTA2UGpwcHd1QXhGcXJNZlBwWk9EUnZYbFJRTmNZVWZNM2cyQjd5SHNWQWJBUTZpV2FQZ0lmVUd1T1ZxS1J5cExRMmJFY0hhR3c?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Blazor Community Standup - ASP.NET Core & Blazor Updates In .NET 11 Preview 2 (D0JAMoriRM)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMidkFVX3lxTE14bUJKRjV2aFVfMFRHX0ZqdlNENndPWk9vMVh5OTQ1WjJZUE9tZTA2UGpwcHd1QXhGcXJNZlBwWk9EUnZYbFJRTmNZVWZNM2cyQjd5SHNWQWJBUTZpV2FQZ0lmVUd1T1ZxS1J5cExRMmJFY0hhR3c?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@tnirajaya2001/beyond-distroless-why-we-chiseled-our-net-10-backend-for-nearu-9d5c11469875?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Beyond Distroless: Why We “Chiseled” Our .NET 10 Backend for NearU</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@tnirajaya2001/beyond-distroless-why-we-chiseled-our-net-10-backend-for-nearu-9d5c11469875?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none">https://medium.com/@tnirajaya2001/beyond-distroless-why-we-chiseled-our-net-10-backend-for-nearu-9d5c11469875?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In modern cloud-native development, “done” isn’t enough — it has to be efficient. As the Lead Developer for NearU, a platform built to…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@tnirajaya2001/beyond-distroless-why-we-chiseled-our-net-10-backend-for-nearu-9d5c11469875?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-453" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1672/1*Fx4JzkCFQF0LCwrLatGspw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=894750b5-6d12-4a2b-98db-9f9aeb4e2b6e&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #452</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-452</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-452</guid>
  <pubDate>Mon, 11 May 2026 11:10:30 +0000</pubDate>
  <atom:published>2026-05-11T11:10:30Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="100-claude-code-hacks-to-ship-code-">100+ Claude Code hacks to ship code 10X faster</h3><div class="image"><a class="image__link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_ff3b7cd4-5862-478e-ac28-0752809260a8_94e90c2e&bhcl_id=e6014281-673f-4140-8a31-44decc376223_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/db5f449a-cb97-4f25-bce5-cff48d221106/100%2B_Claude_Code_hacks_to_ship_10x_faster__in_2026_-_1200_X_600_V4__1___1_.jpg?t=1777043456"/></a></div><p class="paragraph" style="text-align:left;">Top engineers at Anthropic say AI now writes 100% of their code. </p><p class="paragraph" style="text-align:left;">Are you using AI to write yours?</p><p class="paragraph" style="text-align:left;">These <a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_ff3b7cd4-5862-478e-ac28-0752809260a8_94e90c2e&bhcl_id=e6014281-673f-4140-8a31-44decc376223_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">100+ Claude Code hacks</a> show you exactly how. Sign up for The Code and get:</p><ul><li><p class="paragraph" style="text-align:left;">100+ Claude Code hacks — free</p></li><li><p class="paragraph" style="text-align:left;">The Code newsletter — learn the latest AI tools and skills to code faster in 5 mins a day</p></li></ul><p class="paragraph" style="text-align:left;"><a class="link" href="https://magic.beehiiv.com/v1/5f7ce6e3-9a71-416b-99a7-606c5f7e2447?email={{email}}&redirect_to=https%3A%2F%2Fcodenewsletter.ai%2Fforms%2F14166360-de71-46c4-8722-878d417fab5c&utm_source=beehiiv&utm_campaign={{publication_alphanumeric_id}}&redirect_delay=3&_bhiiv=opp_ff3b7cd4-5862-478e-ac28-0752809260a8_94e90c2e&bhcl_id=e6014281-673f-4140-8a31-44decc376223_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Claim your free playbook</a></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/java/github-copilot-modernize-101-is-live-on-the-microsoft-developer-channel/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">GitHub Copilot Modernize 101 is live on the Microsoft Developer Channel</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/java/github-copilot-modernize-101-is-live-on-the-microsoft-developer-channel/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://devblogs.microsoft.com/java/github-copilot-modernize-101-is-live-on-the-microsoft-developer-channel/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Modernization used to be something you avoided until you couldn’t anymore. A big rewrite. A long migration plan. A risky cutover. Something you’d maybe do once every few years—if you had to. That mod</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/java/github-copilot-modernize-101-is-live-on-the-microsoft-developer-channel/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://devblogs.microsoft.com/java/wp-content/uploads/sites/51/2026/05/Gemini_Generated_Image_endflrendflrendf.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMiY0FVX3lxTE1zemhMbWswSkR6SUVISjF5UGV1Zy1iNXNldklMNHJoZ2dKWTFFSEVQaDBzZ1hRYU5UbTh3SzhXUjE4REs5M1Jsa2VsM09QN3MzS3hzWm1WdzViY1ZTOVc2Y01URQ?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Implementing the Sidecar Pattern in Microservices-based ASP.NET Core Applications</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMiY0FVX3lxTE1zemhMbWswSkR6SUVISjF5UGV1Zy1iNXNldklMNHJoZ2dKWTFFSEVQaDBzZ1hRYU5UbTh3SzhXUjE4REs5M1Jsa2VsM09QN3MzS3hzWm1WdzViY1ZTOVc2Y01URQ?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://news.google.com/rss/articles/CBMiY0FVX3lxTE1zemhMbWswSkR6SUVISjF5UGV1Zy1iNXNldklMNHJoZ2dKWTFFSEVQaDBzZ1hRYU5UbTh3SzhXUjE4REs5M1Jsa2VsM09QN3MzS3hzWm1WdzViY1ZTOVc2Y01URQ?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Implementing the Sidecar Pattern in Microservices-based ASP.NET Core Applications</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMiY0FVX3lxTE1zemhMbWswSkR6SUVISjF5UGV1Zy1iNXNldklMNHJoZ2dKWTFFSEVQaDBzZ1hRYU5UbTh3SzhXUjE4REs5M1Jsa2VsM09QN3MzS3hzWm1WdzViY1ZTOVc2Y01URQ?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://visualstudiomagazine.com/articles/2026/05/05/building-and-using-mcp-servers-in-visual-studio.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Building and Using MCP Servers in Visual Studio</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://visualstudiomagazine.com/articles/2026/05/05/building-and-using-mcp-servers-in-visual-studio.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://visualstudiomagazine.com/articles/2026/05/05/building-and-using-mcp-servers-in-visual-studio.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Microsoft Product Manager Mike Kistler previews his Visual Studio Live! session on how MCP servers give .NET developers a universal standard for connecting AI models to external data and tools -- and ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://visualstudiomagazine.com/articles/2026/05/05/building-and-using-mcp-servers-in-visual-studio.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.pietschsoft.com/post/2026/05/05/remembering-planet-source-code-sharing-code-before-github-made-it-easy?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Remembering Planet Source Code: Sharing Code Before GitHub Made It Easy</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.pietschsoft.com/post/2026/05/05/remembering-planet-source-code-sharing-code-before-github-made-it-easy?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://www.pietschsoft.com/post/2026/05/05/remembering-planet-source-code-sharing-code-before-github-made-it-easy</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Every once in a while, something from the early days of my software development journey resurfaces and brings with it a flood of memories. Recently, I came across a PlanetSourceCode.com archived GitHu...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.pietschsoft.com/post/2026/05/05/remembering-planet-source-code-sharing-code-before-github-made-it-easy?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://www.pietschsoft.com/images/posts/2026/remembering-planet-source-code.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@adrianw-dev/i-built-a-disaster-relief-web-app-then-realized-i-didnt-fully-understand-it-7796c83c0f22?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Built a Disaster Relief Web App… Then Realized I Didn’t Fully Understand It</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@adrianw-dev/i-built-a-disaster-relief-web-app-then-realized-i-didnt-fully-understand-it-7796c83c0f22?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://medium.com/@adrianw-dev/i-built-a-disaster-relief-web-app-then-realized-i-didnt-fully-understand-it-7796c83c0f22?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I built a Disaster Relief Web App using C# and .NET.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@adrianw-dev/i-built-a-disaster-relief-web-app-then-realized-i-didnt-fully-understand-it-7796c83c0f22?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*J9uG7lnokf9bPGQI3_9xpA.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://csharpdigest.net/newsletters/2268-high-performance-distributed-caching-with-net?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">High-performance distributed caching with .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://csharpdigest.net/newsletters/2268-high-performance-distributed-caching-with-net?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://csharpdigest.net/newsletters/2268-high-performance-distributed-caching-with-net</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">when the in-memory cache expires the database cache keeps things fast</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://csharpdigest.net/newsletters/2268-high-performance-distributed-caching-with-net?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://csharpdigest.net/assets/social/csharp-4407d85e.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@alikeb1990/three-ef-core-bugs-that-quietly-kill-production-net-apps-and-how-to-catch-them-early-b38892b17c35?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Three EF Core Bugs That Quietly Kill Production .NET Apps (And How to Catch Them Early)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@alikeb1990/three-ef-core-bugs-that-quietly-kill-production-net-apps-and-how-to-catch-them-early-b38892b17c35?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://medium.com/@alikeb1990/three-ef-core-bugs-that-quietly-kill-production-net-apps-and-how-to-catch-them-early-b38892b17c35?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A field guide for .NET teams who’ve outgrown “it works on my machine” — covers EF Core 8, 9, and 10</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@alikeb1990/three-ef-core-bugs-that-quietly-kill-production-net-apps-and-how-to-catch-them-early-b38892b17c35?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/0*Thzc7MB9JCea0No4" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.meziantou.net/disable-http-caching-by-default-in-asp-net-core-apis.htm?utm_medium=social&utm_source=syndication" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Disable HTTP caching by default in ASP.NET Core APIs</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.meziantou.net/disable-http-caching-by-default-in-asp-net-core-apis.htm?utm_medium=social&utm_source=syndication" style="text-decoration:none">https://www.meziantou.net/disable-http-caching-by-default-in-asp-net-core-apis.htm?utm_medium=social&utm_source=syndication</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When building APIs with ASP.NET Core, it's crucial to explicitly control caching behavior. Unlike web pages where caching often improves user experience, API responses should not be cached by default ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.meziantou.net/disable-http-caching-by-default-in-asp-net-core-apis.htm?utm_medium=social&utm_source=syndication" style="text-decoration:none"><img src="https://www.meziantou.net/assets/cover-5b8742.jpg?v=7c93" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@logeshdevi2002/i-stopped-rewriting-the-same-spreadsheet-every-month-2ee29d5e076f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Stopped Rewriting the Same Spreadsheet Every Month</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@logeshdevi2002/i-stopped-rewriting-the-same-spreadsheet-every-month-2ee29d5e076f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://medium.com/@logeshdevi2002/i-stopped-rewriting-the-same-spreadsheet-every-month-2ee29d5e076f?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">How I turned “where did it go?” into an app I actually open on my phone.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@logeshdevi2002/i-stopped-rewriting-the-same-spreadsheet-every-month-2ee29d5e076f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*wj2kEdimAoH0JbzfkqW7BQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ninascott646/future-of-net-development-and-why-you-should-invest-in-net-talent-03e82e35655a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Future of .NET Development and Why You Should Invest in .NET Talent</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ninascott646/future-of-net-development-and-why-you-should-invest-in-net-talent-03e82e35655a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://medium.com/@ninascott646/future-of-net-development-and-why-you-should-invest-in-net-talent-03e82e35655a?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Technology moves fast, but some development frameworks continue to evolve with it-and .NET is one of them.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ninascott646/future-of-net-development-and-why-you-should-invest-in-net-talent-03e82e35655a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2000/1*hvZ0vIAWXx79ux19yyL0Cw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@muskankumari00999.mk/implementing-localization-in-asp-net-ed74771bca71?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Implementing Localization in ASP.NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@muskankumari00999.mk/implementing-localization-in-asp-net-ed74771bca71?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://medium.com/@muskankumari00999.mk/implementing-localization-in-asp-net-ed74771bca71?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When I first started implementing localization in ASP.NET Core MVC, I thought it would be a small feature.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@muskankumari00999.mk/implementing-localization-in-asp-net-ed74771bca71?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1867/1*lSIYJWYe558xgr9OiVfxtQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMiwAFBVV95cUxPZGc2MU01THVNajlfdVlpazhFTHBjZTRJbU14VDJFXzZuMWhLcjduaXZVTDYwTVF3ajdiQTh3SFQ2RmlKRGpqY3R5OHhMUGRvd2JrOUVVYlVCdERzalRIcjRUUW11REgtOGpJcFFZN2tNclJ3VUlXU29vNFNtejhTQ3pCTEROLV9pQ2JDdTBNVEd6YjM1bE1FR0R2YmotdFlpZ3lNRWJDQm9aQWF4TlFQMjZLNnZqLVdrTVdXbTVnZGM?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How Enterprise Software Is Built with ASP.NET in 2026: What Actually Happens Behind the Scenes</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMiwAFBVV95cUxPZGc2MU01THVNajlfdVlpazhFTHBjZTRJbU14VDJFXzZuMWhLcjduaXZVTDYwTVF3ajdiQTh3SFQ2RmlKRGpqY3R5OHhMUGRvd2JrOUVVYlVCdERzalRIcjRUUW11REgtOGpJcFFZN2tNclJ3VUlXU29vNFNtejhTQ3pCTEROLV9pQ2JDdTBNVEd6YjM1bE1FR0R2YmotdFlpZ3lNRWJDQm9aQWF4TlFQMjZLNnZqLVdrTVdXbTVnZGM?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://news.google.com/rss/articles/CBMiwAFBVV95cUxPZGc2MU01THVNajlfdVlpazhFTHBjZTRJbU14VDJFXzZuMWhLcjduaXZVTDYwTVF3ajdiQTh3SFQ2RmlKRGpqY3R5OHhMUGRvd2JrOUVVYlVCdERzalRIcjRUUW11REgtOGpJcFFZN2tNclJ3VUlXU29vNFNtejhTQ3pCTEROLV9pQ2JDdTBNVEd6YjM1bE1FR0R2YmotdFlpZ3lNRWJDQm9aQWF4TlFQMjZLNnZqLVdrTVdXbTVnZGM?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">How Enterprise Software Is Built with ASP.NET in 2026: What Actually Happens Behind the Scenes</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMiwAFBVV95cUxPZGc2MU01THVNajlfdVlpazhFTHBjZTRJbU14VDJFXzZuMWhLcjduaXZVTDYwTVF3ajdiQTh3SFQ2RmlKRGpqY3R5OHhMUGRvd2JrOUVVYlVCdERzalRIcjRUUW11REgtOGpJcFFZN2tNclJ3VUlXU29vNFNtejhTQ3pCTEROLV9pQ2JDdTBNVEd6YjM1bE1FR0R2YmotdFlpZ3lNRWJDQm9aQWF4TlFQMjZLNnZqLVdrTVdXbTVnZGM?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.pietschsoft.com/post/2026/05/07/csharp-class-record-struct-or-interface-how-to-choose?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C#: Should This Be a Class, Record, Struct, or Interface?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.pietschsoft.com/post/2026/05/07/csharp-class-record-struct-or-interface-how-to-choose?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://www.pietschsoft.com/post/2026/05/07/csharp-class-record-struct-or-interface-how-to-choose</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Every time you add a new type to a C# codebase, you face the same quiet decision: class, record, struct, or interface? And once you pick class, a second wave of questions arrives — should it be abstra...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.pietschsoft.com/post/2026/05/07/csharp-class-record-struct-or-interface-how-to-choose?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://www.pietschsoft.com/images/posts/2026/csharp-should-this-be-class-record-struct-interface.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.dotnetframework.org/2026/05/07/thread-pool-exhaustion-in-asp-net-the-async-database-trap/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Thread Pool Exhaustion in ASP.NET: The Async Database Trap</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.dotnetframework.org/2026/05/07/thread-pool-exhaustion-in-asp-net-the-async-database-trap/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none">https://blog.dotnetframework.org/2026/05/07/thread-pool-exhaustion-in-asp-net-the-async-database-trap/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’ve ever migrated a working ASP.NET application from synchronous database calls to async, and suddenly found yourself hitting connection pool timeouts under load, you’ve likely fallen into one o...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.dotnetframework.org/2026/05/07/thread-pool-exhaustion-in-asp-net-the-async-database-trap/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-452" style="text-decoration:none"><img src="https://blog.dotnetframework.org/wp-content/uploads/2021/05/image.jpg?w=200" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=d8aad8cb-9974-49c3-bb65-4a629941d6c4&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #451</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-451</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-451</guid>
  <pubDate>Fri, 08 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-08T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@evansrose623/common-challenges-developers-face-with-net-services-and-how-to-solve-them-e07f2cab392f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Common Challenges Developers Face with .NET Services and How to Solve Them</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@evansrose623/common-challenges-developers-face-with-net-services-and-how-to-solve-them-e07f2cab392f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://medium.com/@evansrose623/common-challenges-developers-face-with-net-services-and-how-to-solve-them-e07f2cab392f?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The .NET ecosystem continues to power a wide range of modern applications, from enterprise systems to cloud-based platforms. Its…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@evansrose623/common-challenges-developers-face-with-net-services-and-how-to-solve-them-e07f2cab392f?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*2KAFaANzcNfcoprLASl22g.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ahmad.sohail/greater-than-or-equal-in-c-unlocking-the-power-of-comparison-for-robust-net-applications-5e73d6eb3735?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Greater Than or Equal (&gt;=) in C#: Unlocking the Power of Comparison for Robust .NET Applications</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ahmad.sohail/greater-than-or-equal-in-c-unlocking-the-power-of-comparison-for-robust-net-applications-5e73d6eb3735?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://medium.com/@ahmad.sohail/greater-than-or-equal-in-c-unlocking-the-power-of-comparison-for-robust-net-applications-5e73d6eb3735?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The &gt;= operator may seem simple, but if you’ve spent any time in C# or .NET development, you’ve almost certainly relied on its logic…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ahmad.sohail/greater-than-or-equal-in-c-unlocking-the-power-of-comparison-for-robust-net-applications-5e73d6eb3735?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*CzO34VjuTI0qQ00uMzg9ZA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@gabrielmarinho2007/from-allocation-to-iteration-optimizing-your-collections-in-net-ca032a586b53?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">From Allocation to Iteration: Optimizing Your Collections in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@gabrielmarinho2007/from-allocation-to-iteration-optimizing-your-collections-in-net-ca032a586b53?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://medium.com/@gabrielmarinho2007/from-allocation-to-iteration-optimizing-your-collections-in-net-ca032a586b53?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When working with collections in .NET, developers often overlook one of the most impactful optimization techniques: initializing a List&lt;T&gt;…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@gabrielmarinho2007/from-allocation-to-iteration-optimizing-your-collections-in-net-ca032a586b53?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1672/1*2T3rY51n0qfV8EORHAHeCw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/vscode-blog/visual-studio-code-1.119?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Visual Studio Code 1.119</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/vscode-blog/visual-studio-code-1.119?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://devblogs.microsoft.com/vscode-blog/visual-studio-code-1.119</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn what's new in Visual Studio Code 1.119 (Insiders) Read the full article</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/vscode-blog/visual-studio-code-1.119?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ravikumar.makwana/c-14-features-every-net-developer-should-know-in-2026-ad1e1f333676?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# 14 Features Every .NET Developer Should Know in 2026</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ravikumar.makwana/c-14-features-every-net-developer-should-know-in-2026-ad1e1f333676?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://medium.com/@ravikumar.makwana/c-14-features-every-net-developer-should-know-in-2026-ad1e1f333676?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The latest C# improvements that instantly make code cleaner, safer, and more modern</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ravikumar.makwana/c-14-features-every-net-developer-should-know-in-2026-ad1e1f333676?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*Kmxyva4cKFRb8wOLEGxw-g.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@mahmood.alsarraj/asguard-a-lightweight-request-exception-logger-for-asp-net-core-with-built-in-dashboard-0e58d414e486?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">AsGuard: A Lightweight Request & Exception Logger for ASP.NET Core (With Built-in Dashboard</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@mahmood.alsarraj/asguard-a-lightweight-request-exception-logger-for-asp-net-core-with-built-in-dashboard-0e58d414e486?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://medium.com/@mahmood.alsarraj/asguard-a-lightweight-request-exception-logger-for-asp-net-core-with-built-in-dashboard-0e58d414e486?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Stop guessing what’s happening in your API — log, monitor, and debug requests in real time without external tools.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@mahmood.alsarraj/asguard-a-lightweight-request-exception-logger-for-asp-net-core-with-built-in-dashboard-0e58d414e486?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1018/1*39rwBZFmC-FaZj9MDXqFYQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://serkanozbeykurucu.medium.com/dataannotations-or-fluentvalidation-stop-picking-one-for-everything-76f50e57cd06?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">DataAnnotations or FluentValidation? Stop Picking One for Everything</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://serkanozbeykurucu.medium.com/dataannotations-or-fluentvalidation-stop-picking-one-for-everything-76f50e57cd06?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://serkanozbeykurucu.medium.com/dataannotations-or-fluentvalidation-stop-picking-one-for-everything-76f50e57cd06?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I keep getting the same question from .NET developers: “Should I use FluentValidation or DataAnnotations?”</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://serkanozbeykurucu.medium.com/dataannotations-or-fluentvalidation-stop-picking-one-for-everything-76f50e57cd06?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1856/1*NRoNWYq31NFeYaT7IRgLZA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/authentication-in-net-core/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Authentication in .NET Core</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/authentication-in-net-core/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://www.c-sharpcorner.com/article/authentication-in-net-core/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Authentication in .NET Core</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/authentication-in-net-core/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE8tb1VKdHlOaWM2c01MUnVxZWNLbWVYOGxvcGd4ajVMVldRMVpqSW1sOXVWbWgyZ29ObWNOSjRlZVZnWjUwLUhMRFJ6RUVSOTFTUF9fdVhYdG5pdVNSM0gzakRxOG00Zk96SHE3blFjSG8?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">ASP.NET Web API CRUD Operations</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE8tb1VKdHlOaWM2c01MUnVxZWNLbWVYOGxvcGd4ajVMVldRMVpqSW1sOXVWbWgyZ29ObWNOSjRlZVZnWjUwLUhMRFJ6RUVSOTFTUF9fdVhYdG5pdVNSM0gzakRxOG00Zk96SHE3blFjSG8?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none">https://news.google.com/rss/articles/CBMicEFVX3lxTE8tb1VKdHlOaWM2c01MUnVxZWNLbWVYOGxvcGd4ajVMVldRMVpqSW1sOXVWbWgyZ29ObWNOSjRlZVZnWjUwLUhMRFJ6RUVSOTFTUF9fdVhYdG5pdVNSM0gzakRxOG00Zk96SHE3blFjSG8?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">ASP.NET Web API CRUD Operations - .NET8 And Entity Framework Core Tutorial (yY7pLCuHov)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE8tb1VKdHlOaWM2c01MUnVxZWNLbWVYOGxvcGd4ajVMVldRMVpqSW1sOXVWbWgyZ29ObWNOSjRlZVZnWjUwLUhMRFJ6RUVSOTFTUF9fdVhYdG5pdVNSM0gzakRxOG00Zk96SHE3blFjSG8?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-451" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=95cc52b7-f06f-4c27-ae82-bc72c0909e70&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #450</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-450-f634</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-450-f634</guid>
  <pubDate>Thu, 07 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-07T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE9wcUs5OC1UN21wYUNfYTIwTzRVbmRjQnNOS3g2ZVpHMzJNbzFLVU9MS3EyUzEzUHVaSHRfb1VmTkMyOXA1aEluSDFjX2tabVFoSjRDQ29vbzNkb3FEVlY2MENGRGhHSGY2X01LeGg1Y0Q?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Zero To First Agent (Azure OpenAI)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE9wcUs5OC1UN21wYUNfYTIwTzRVbmRjQnNOS3g2ZVpHMzJNbzFLVU9MS3EyUzEzUHVaSHRfb1VmTkMyOXA1aEluSDFjX2tabVFoSjRDQ29vbzNkb3FEVlY2MENGRGhHSGY2X01LeGg1Y0Q?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://news.google.com/rss/articles/CBMicEFVX3lxTE9wcUs5OC1UN21wYUNfYTIwTzRVbmRjQnNOS3g2ZVpHMzJNbzFLVU9MS3EyUzEzUHVaSHRfb1VmTkMyOXA1aEluSDFjX2tabVFoSjRDQ29vbzNkb3FEVlY2MENGRGhHSGY2X01LeGg1Y0Q?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Zero To First Agent (Azure OpenAI) - AI In C# (Microsoft Agent Framework) (X3DYrdlcLf)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE9wcUs5OC1UN21wYUNfYTIwTzRVbmRjQnNOS3g2ZVpHMzJNbzFLVU9MS3EyUzEzUHVaSHRfb1VmTkMyOXA1aEluSDFjX2tabVFoSjRDQ29vbzNkb3FEVlY2MENGRGhHSGY2X01LeGg1Y0Q?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.poppastring.com/blog/the-limit-of-software-brain?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Limit of Software Brain</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.poppastring.com/blog/the-limit-of-software-brain?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://www.poppastring.com/blog/the-limit-of-software-brain</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Software brain, AI backlash, databases, and automation by Nilay Patel on Decoder: I've been calling it software brain, and it's a particular way of seeing the world that fits everything into algorithm...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.poppastring.com/blog/the-limit-of-software-brain?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://www.poppastring.com/images/mark-downie-poppastring.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/collections-in-net-c-sharp-guide-for-beginners/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Collections in .Net (C# Guide for Beginners)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/collections-in-net-c-sharp-guide-for-beginners/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://www.c-sharpcorner.com/article/collections-in-net-c-sharp-guide-for-beginners/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Master .NET collections in C#! This beginner's guide covers generic, non-generic, and concurrent collections. Learn to efficiently store and manage data for APIs, databases, caching, and real-time app...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/collections-in-net-c-sharp-guide-for-beginners/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTFBmV2ZVVkxzbUF6RXVnaGRlZTlfT0RwTEwzVXF6bUlMY3dLelg4cUhpTjlROUo2VUxxSl9SZ0RzMC0xV0M2WGpjSjFkS2w2V0ZqQWVXb3RabllXS1pkTExtdDdYemNocFY4QjFJWWplNU0?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Get Started With ENTITY FRAMEWORK In C#! (rhtBVESaBp)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTFBmV2ZVVkxzbUF6RXVnaGRlZTlfT0RwTEwzVXF6bUlMY3dLelg4cUhpTjlROUo2VUxxSl9SZ0RzMC0xV0M2WGpjSjFkS2w2V0ZqQWVXb3RabllXS1pkTExtdDdYemNocFY4QjFJWWplNU0?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://news.google.com/rss/articles/CBMicEFVX3lxTFBmV2ZVVkxzbUF6RXVnaGRlZTlfT0RwTEwzVXF6bUlMY3dLelg4cUhpTjlROUo2VUxxSl9SZ0RzMC0xV0M2WGpjSjFkS2w2V0ZqQWVXb3RabllXS1pkTExtdDdYemNocFY4QjFJWWplNU0?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Get Started With ENTITY FRAMEWORK In C#! (rhtBVESaBp)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTFBmV2ZVVkxzbUF6RXVnaGRlZTlfT0RwTEwzVXF6bUlMY3dLelg4cUhpTjlROUo2VUxxSl9SZ0RzMC0xV0M2WGpjSjFkS2w2V0ZqQWVXb3RabllXS1pkTExtdDdYemNocFY4QjFJWWplNU0?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE1sTGk3OVlzYWx3VEpqQzFGMUdkSnE4T1VBUkM1eWx0Vzd5Z3dsZ3Z4dXo0dHlsZUQyd2ktV1NGaWUzTU0yZl9ZNGFjNFp0UzNfdnhPZWVxR0VZVkVLam5GT3I0Rk1PQzdkeEZCRDFlVi0?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">ASP.NET Community Standup</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE1sTGk3OVlzYWx3VEpqQzFGMUdkSnE4T1VBUkM1eWx0Vzd5Z3dsZ3Z4dXo0dHlsZUQyd2ktV1NGaWUzTU0yZl9ZNGFjNFp0UzNfdnhPZWVxR0VZVkVLam5GT3I0Rk1PQzdkeEZCRDFlVi0?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://news.google.com/rss/articles/CBMicEFVX3lxTE1sTGk3OVlzYWx3VEpqQzFGMUdkSnE4T1VBUkM1eWx0Vzd5Z3dsZ3Z4dXo0dHlsZUQyd2ktV1NGaWUzTU0yZl9ZNGFjNFp0UzNfdnhPZWVxR0VZVkVLam5GT3I0Rk1PQzdkeEZCRDFlVi0?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">ASP.NET Community Standup - Why Aren't You Using Minimal APIs? (avy3AoSZsS)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE1sTGk3OVlzYWx3VEpqQzFGMUdkSnE4T1VBUkM1eWx0Vzd5Z3dsZ3Z4dXo0dHlsZUQyd2ktV1NGaWUzTU0yZl9ZNGFjNFp0UzNfdnhPZWVxR0VZVkVLam5GT3I0Rk1PQzdkeEZCRDFlVi0?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.pietschsoft.com/post/2026/05/01/agentic-ai-tools-are-orchestrators-not-magic?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Agentic AI Tools Are Orchestrators, Not Magic</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.pietschsoft.com/post/2026/05/01/agentic-ai-tools-are-orchestrators-not-magic?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://www.pietschsoft.com/post/2026/05/01/agentic-ai-tools-are-orchestrators-not-magic</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The LLM is not doing everything. It is the last 5% of a much larger system.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.pietschsoft.com/post/2026/05/01/agentic-ai-tools-are-orchestrators-not-magic?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Governing MCP tool calls in .NET with the Agent Governance Toolkit</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">AI agents are connecting to real tools — reading files, calling APIs, querying databases — through the Model Context Protocol (MCP). The Agent Governance Toolkit (AGT) provides a governance layer for ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/04/governing-mcp-tool-calls-in-dotnet-with-the-agent-governance-toolkit.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://naved-shaikh.medium.com/the-localstack-chronicles-a-net-developers-survival-guide-8bd080b40bc8?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The LocalStack Chronicles: A .NET Developer’s Survival Guide</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://naved-shaikh.medium.com/the-localstack-chronicles-a-net-developers-survival-guide-8bd080b40bc8?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://naved-shaikh.medium.com/the-localstack-chronicles-a-net-developers-survival-guide-8bd080b40bc8?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">How I fought Docker networking, timeout traps, and type-mapping demons — and won.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://naved-shaikh.medium.com/the-localstack-chronicles-a-net-developers-survival-guide-8bd080b40bc8?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@alt.wibbing/from-enum-to-union-type-b94fdd81f398?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">From Enum to Union Type</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@alt.wibbing/from-enum-to-union-type-b94fdd81f398?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://medium.com/@alt.wibbing/from-enum-to-union-type-b94fdd81f398?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">What are union types?</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@alt.wibbing/from-enum-to-union-type-b94fdd81f398?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@cassio.bjhones/the-hidden-power-of-sealed-in-c-1f8fd65af315?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Hidden Power of sealed in C#</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@cassio.bjhones/the-hidden-power-of-sealed-in-c-1f8fd65af315?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://medium.com/@cassio.bjhones/the-hidden-power-of-sealed-in-c-1f8fd65af315?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The sealed modifier is at the center of many discussions, benchmarks, and articles within the .NET community. Although it is a…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@cassio.bjhones/the-hidden-power-of-sealed-in-c-1f8fd65af315?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*N7tomOS7v7-zXQHM0_IZhQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://muhammadirwanto.medium.com/the-architecture-of-url-paths-why-kebab-case-is-the-industry-gold-standard-2f305a055798?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Architecture of URL Paths: Why Kebab-Case is the Industry Gold Standard</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://muhammadirwanto.medium.com/the-architecture-of-url-paths-why-kebab-case-is-the-industry-gold-standard-2f305a055798?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://muhammadirwanto.medium.com/the-architecture-of-url-paths-why-kebab-case-is-the-industry-gold-standard-2f305a055798?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If your API documentation looks like a naming lottery, your developer experience (DX) is already failing. Consistency isn’t just about…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://muhammadirwanto.medium.com/the-architecture-of-url-paths-why-kebab-case-is-the-industry-gold-standard-2f305a055798?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1376/1*wcEJmMH0xlw4L1I_d4D_Uw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE04Q3ExNXZaTWdpUnNhNjBHMG9DSUM5Y2xfVjgxZ2RRMndiY0stMmdmR2pybkNMNFlXOG5za2xqVmtyY3gtaE1KT1lWQjcwU2MyZlNfT243cnhORXZCcm05UmFPU0FOY0owdEJ5bEZkNkY?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Make Cursor AI Debug C# Code In 9 Minutes! (aNGzL7uy5M)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE04Q3ExNXZaTWdpUnNhNjBHMG9DSUM5Y2xfVjgxZ2RRMndiY0stMmdmR2pybkNMNFlXOG5za2xqVmtyY3gtaE1KT1lWQjcwU2MyZlNfT243cnhORXZCcm05UmFPU0FOY0owdEJ5bEZkNkY?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://news.google.com/rss/articles/CBMicEFVX3lxTE04Q3ExNXZaTWdpUnNhNjBHMG9DSUM5Y2xfVjgxZ2RRMndiY0stMmdmR2pybkNMNFlXOG5za2xqVmtyY3gtaE1KT1lWQjcwU2MyZlNfT243cnhORXZCcm05UmFPU0FOY0owdEJ5bEZkNkY?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Make Cursor AI Debug C# Code In 9 Minutes! (aNGzL7uy5M)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTE04Q3ExNXZaTWdpUnNhNjBHMG9DSUM5Y2xfVjgxZ2RRMndiY0stMmdmR2pybkNMNFlXOG5za2xqVmtyY3gtaE1KT1lWQjcwU2MyZlNfT243cnhORXZCcm05UmFPU0FOY0owdEJ5bEZkNkY?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@hanxuyang0826/c-traps-edge-cases-part-1-from-basics-through-async-0b0d454a2908?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# Traps & Edge Cases — Part 1: From Basics Through Async</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@hanxuyang0826/c-traps-edge-cases-part-1-from-basics-through-async-0b0d454a2908?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none">https://medium.com/@hanxuyang0826/c-traps-edge-cases-part-1-from-basics-through-async-0b0d454a2908?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">This article is Part 1 of a two-part series. It covers Sections 1–7 (types through async/Task). Part 2 continues with OOP, generics…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@hanxuyang0826/c-traps-edge-cases-part-1-from-basics-through-async-0b0d454a2908?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-450" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/620/1*8s1RvWAOjVrOf_UDimicFw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=aafebded-d5ff-4047-b7a0-e5da1c97ca71&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #449</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-449-facd</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-449-facd</guid>
  <pubDate>Wed, 06 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-06T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.pietschsoft.com/post/2026/04/29/csharp-dotnet-performance-what-to-optimize-first?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# / .NET Performance: Why Is It Slow 'Here' and What Should You Optimize First?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.pietschsoft.com/post/2026/04/29/csharp-dotnet-performance-what-to-optimize-first?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://www.pietschsoft.com/post/2026/04/29/csharp-dotnet-performance-what-to-optimize-first</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">You open a profiler, squint at the code, and ask: “Why is this slow?” Before you even finish the thought, someone — or an AI assistant — suggests switching from List&lt;T&gt; to Span&lt;T&gt;, or inlining a...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.pietschsoft.com/post/2026/04/29/csharp-dotnet-performance-what-to-optimize-first?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.pietschsoft.com/post/2026/05/01/csharp-dotnet-cleanest-way-to-add-cross-cutting-concerns?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# / .NET: The Cleanest Way to Introduce a New Cross-Cutting Concern</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.pietschsoft.com/post/2026/05/01/csharp-dotnet-cleanest-way-to-add-cross-cutting-concerns?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://www.pietschsoft.com/post/2026/05/01/csharp-dotnet-cleanest-way-to-add-cross-cutting-concerns</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Logging, validation, caching, retries, authorization, telemetry, auditing. Every non-trivial .NET application accumulates cross-cutting concerns — behavior that applies broadly but doesn’t belong in t...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.pietschsoft.com/post/2026/05/01/csharp-dotnet-cleanest-way-to-add-cross-cutting-concerns?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/high-performance-distributed-caching-dotnet-postgres-azure/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">High-Performance Distributed Caching with .NET and Postgres on Azure</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/high-performance-distributed-caching-dotnet-postgres-azure/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/high-performance-distributed-caching-dotnet-postgres-azure/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Adding caching to your application architecture can significantly improve key performance metrics, cut latency, and reduce load across downstream systems. In this walkthrough, we highlight the latest ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/high-performance-distributed-caching-dotnet-postgres-azure/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/04/distributedcachepostgres.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@gr.ramesh025/inside-multithreading-memory-layout-and-kernal-execution-f6c75e15ac9d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Inside Multithreading: Memory Layout and Kernel Execution</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@gr.ramesh025/inside-multithreading-memory-layout-and-kernal-execution-f6c75e15ac9d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://medium.com/@gr.ramesh025/inside-multithreading-memory-layout-and-kernal-execution-f6c75e15ac9d?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Kernel Executing Code — Why Page faults, TLB Mises, False Sharing</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@gr.ramesh025/inside-multithreading-memory-layout-and-kernal-execution-f6c75e15ac9d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@parani2002/scaling-background-jobs-in-net-how-we-tuned-hangfire-workers-for-high-load-processing-485819978cc9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Scaling Background Jobs in .NET: How We Tuned Hangfire Workers for High-Load Processing</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@parani2002/scaling-background-jobs-in-net-how-we-tuned-hangfire-workers-for-high-load-processing-485819978cc9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://medium.com/@parani2002/scaling-background-jobs-in-net-how-we-tuned-hangfire-workers-for-high-load-processing-485819978cc9?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In modern .NET applications, background job processing plays a key role in handling long-running tasks such as document processing, email…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@parani2002/scaling-background-jobs-in-net-how-we-tuned-hangfire-workers-for-high-load-processing-485819978cc9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://dotnettips.com/2026/05/03/rock-your-code-i-let-ai-build-a-visual-studio-extension-heres-what-really-happened/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Rock Your Code: I Let AI Build a Visual Studio Extension—Here’s What REALLY Happened</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://dotnettips.com/2026/05/03/rock-your-code-i-let-ai-build-a-visual-studio-extension-heres-what-really-happened/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://dotnettips.com/2026/05/03/rock-your-code-i-let-ai-build-a-visual-studio-extension-heres-what-really-happened/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In March 2026, I challenged GitHub Copilot to build a Visual Studio extension, "Version Sync," from scratch without coding. Despite initial failures and needing extensive feedback, it succee...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://dotnettips.com/2026/05/03/rock-your-code-i-let-ai-build-a-visual-studio-extension-heres-what-really-happened/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://i0.wp.com/dotnettips.com/wp-content/uploads/2026/03/chatgpt-image-mar-31-2026-10_16_47-am.png?fit=1200%2C800&ssl=1" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@mahdi.com.haidar/stop-guessing-how-net-manages-memory-f91b127d7dcf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Stop Guessing How .NET Manages Memory</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@mahdi.com.haidar/stop-guessing-how-net-manages-memory-f91b127d7dcf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://medium.com/@mahdi.com.haidar/stop-guessing-how-net-manages-memory-f91b127d7dcf?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A practical guide to Stack, Heap, Garbage Collection, generations, SOH, LOH, and why your app might throw OutOfMemoryException even when…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@mahdi.com.haidar/stop-guessing-how-net-manages-memory-f91b127d7dcf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/941/1*ZkAq8b4ZzFNvLNqiAs5i_A.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://alimumtaz205.medium.com/managed-vs-unmanaged-code-why-it-matters-in-net-development-5dbc80e41952?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Managed vs Unmanaged Code: Why it matters in .NET development</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://alimumtaz205.medium.com/managed-vs-unmanaged-code-why-it-matters-in-net-development-5dbc80e41952?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://alimumtaz205.medium.com/managed-vs-unmanaged-code-why-it-matters-in-net-development-5dbc80e41952?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Ever wondered why you do not have to worry about memory leaks in C# most of the time, while a C++ developer has to spend a lot of time…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://alimumtaz205.medium.com/managed-vs-unmanaged-code-why-it-matters-in-net-development-5dbc80e41952?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://malshikay.medium.com/kafka-consumer-group-pattern-in-net-a-simple-guide-with-a-real-world-example-101ceff0ecfb?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Kafka Consumer Group Pattern in .NET: A Simple Guide with a Real-World Example</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://malshikay.medium.com/kafka-consumer-group-pattern-in-net-a-simple-guide-with-a-real-world-example-101ceff0ecfb?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://malshikay.medium.com/kafka-consumer-group-pattern-in-net-a-simple-guide-with-a-real-world-example-101ceff0ecfb?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When building applications with Apache Kafka, one of the most powerful patterns is the Consumer Group Pattern.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://malshikay.medium.com/kafka-consumer-group-pattern-in-net-a-simple-guide-with-a-real-world-example-101ceff0ecfb?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1920/1*CnJ5QSaz7vuN0kSy-X7q0A.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@umairg404/net-11-vs-net-10-faster-smarter-and-quietly-powerful-664c6df5048a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET 11 vs .NET 10 — Faster, Smarter, and Quietly Powerful</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@umairg404/net-11-vs-net-10-faster-smarter-and-quietly-powerful-664c6df5048a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://medium.com/@umairg404/net-11-vs-net-10-faster-smarter-and-quietly-powerful-664c6df5048a?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Every year, Microsoft pushes .NET forward — and this time, .NET 11 is shaping up to be less about hype… and more about serious refinement.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@umairg404/net-11-vs-net-10-faster-smarter-and-quietly-powerful-664c6df5048a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*0cQ3D1T6fSCfmmlM99RnGw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/cosmosdb/welcome-to-azure-cosmos-db-conf-2026/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Welcome to Azure Cosmos DB Conf 2026</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/cosmosdb/welcome-to-azure-cosmos-db-conf-2026/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://devblogs.microsoft.com/cosmosdb/welcome-to-azure-cosmos-db-conf-2026/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Today is the day. Azure Cosmos DB Conf 2026, in partnership with AMD, is a free virtual developer event focused on building modern, scalable applications with Azure Cosmos DB. The</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/cosmosdb/welcome-to-azure-cosmos-db-conf-2026/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2026/04/welcome_to.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@pavanpitthdiya/dependency-injection-in-c-complete-guide-with-real-examples-constructor-setter-method-ad879b45acff?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Dependency Injection in C# — Complete Guide with Real Examples (Constructor + Setter + Method)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@pavanpitthdiya/dependency-injection-in-c-complete-guide-with-real-examples-constructor-setter-method-ad879b45acff?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://medium.com/@pavanpitthdiya/dependency-injection-in-c-complete-guide-with-real-examples-constructor-setter-method-ad879b45acff?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’re building scalable .NET applications, Dependency Injection (DI) is not optional — it’s foundational.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@pavanpitthdiya/dependency-injection-in-c-complete-guide-with-real-examples-constructor-setter-method-ad879b45acff?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*BN4ILwhsXtVsk-OMZD793Q.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://wiemksaier.medium.com/net-threads-tasks-async-await-what-actually-happens-under-the-hood-a3dc7524bcbd?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET Threads, Tasks & async/await — What Actually Happens Under the Hood</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://wiemksaier.medium.com/net-threads-tasks-async-await-what-actually-happens-under-the-hood-a3dc7524bcbd?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none">https://wiemksaier.medium.com/net-threads-tasks-async-await-what-actually-happens-under-the-hood-a3dc7524bcbd?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Most developers use async/await daily.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://wiemksaier.medium.com/net-threads-tasks-async-await-what-actually-happens-under-the-hood-a3dc7524bcbd?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-449" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=1ed0392f-29cc-419b-8f0a-40b825048e03&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #448</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-448</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-448</guid>
  <pubDate>Tue, 05 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-05T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://codewithmukesh.com/blog/cleaning-migrations-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Cleaning Migrations in EF Core 10 - Squash, Reset & Manage History</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://codewithmukesh.com/blog/cleaning-migrations-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://codewithmukesh.com/blog/cleaning-migrations-efcore/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn when and how to clean EF Core 10 migrations. Squash, reset, remove, resolve team conflicts, plus a decision matrix for the right cleanup strategy.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://codewithmukesh.com/blog/cleaning-migrations-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://codewithmukesh.com/_astro/Cleaning%20Migrations%20in%20EF%20Core.voKyvMXH.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@support_74639/a-semantic-kernel-alternative-for-net-when-and-why-youd-reach-for-one-a72db71ef400?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">A Semantic Kernel Alternative for .NET — When and Why You’d Reach for One</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@support_74639/a-semantic-kernel-alternative-for-net-when-and-why-youd-reach-for-one-a72db71ef400?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@support_74639/a-semantic-kernel-alternative-for-net-when-and-why-youd-reach-for-one-a72db71ef400?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’re building an AI feature in .NET in 2026, the first framework you hear about is Microsoft Semantic Kernel. It’s well-funded…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@support_74639/a-semantic-kernel-alternative-for-net-when-and-why-youd-reach-for-one-a72db71ef400?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1200/1*haoznMasfEbr4kEnmmAYeQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@a95yman/async-await-in-production-the-bug-that-only-appeared-under-load-0e351e145be4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Common Async/Await Bug in C# (That Only Shows Up in Production)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@a95yman/async-await-in-production-the-bug-that-only-appeared-under-load-0e351e145be4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@a95yman/async-await-in-production-the-bug-that-only-appeared-under-load-0e351e145be4?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The Async/Await Bug That Took Down Our API (And Why Local Tests Didn’t Catch It)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@a95yman/async-await-in-production-the-bug-that-only-appeared-under-load-0e351e145be4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*f-2Ld7e3S--Ef5PfU7hBRA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://codewithmukesh.com/blog/running-migrations-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Running Migrations in EF Core 10 - 5 Ways Compared</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://codewithmukesh.com/blog/running-migrations-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://codewithmukesh.com/blog/running-migrations-efcore/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn 5 ways to apply EF Core 10 migrations: CLI, Migrate(), SQL scripts, migration bundles, and EnsureCreated. Includes a decision matrix and production checklist.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://codewithmukesh.com/blog/running-migrations-efcore/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://codewithmukesh.com/_astro/cover.9atPjHfK.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/integrating-hangfire-into-net-9-applications/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">🚀 Integrating Hangfire into .NET 9 Applications</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/integrating-hangfire-into-net-9-applications/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://www.c-sharpcorner.com/article/integrating-hangfire-into-net-9-applications/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Master background task management in .NET 9 with Hangfire! This tutorial covers setup, job creation, security, monitoring, and best practices for reliable background processing.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/integrating-hangfire-into-net-9-applications/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@mohsho10/youre-copying-data-in-c-without-knowing-it-and-it-s-costing-you-35-performance-06bc58127e11?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">You’re Copying Data in C# Without Knowing It (And It’s Costing You 35% Performance)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@mohsho10/youre-copying-data-in-c-without-knowing-it-and-it-s-costing-you-35-performance-06bc58127e11?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@mohsho10/youre-copying-data-in-c-without-knowing-it-and-it-s-costing-you-35-performance-06bc58127e11?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">(And it’s silently killing your performance)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@mohsho10/youre-copying-data-in-c-without-knowing-it-and-it-s-costing-you-35-performance-06bc58127e11?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://miro.medium.com/v2/resize:fill:64:64/1*FZAGQUBsOxAr7U-m_cl9zQ.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ahmad.sohail/how-to-collaborate-in-c-cooperative-programming-techniques-for-modern-net-teams-9945bc51c8fa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How to Collaborate in C#: Cooperative Programming Techniques for Modern .NET Teams</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ahmad.sohail/how-to-collaborate-in-c-cooperative-programming-techniques-for-modern-net-teams-9945bc51c8fa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@ahmad.sohail/how-to-collaborate-in-c-cooperative-programming-techniques-for-modern-net-teams-9945bc51c8fa?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’re working in any sizable .NET project, you’ve probably heard someone ask, “How do we collaborate?” — as in, how do we coordinate…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ahmad.sohail/how-to-collaborate-in-c-cooperative-programming-techniques-for-modern-net-teams-9945bc51c8fa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*ZXaqeNA4xRposBwinKq5fQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ahmad.sohail/getters-in-c-the-essential-guide-for-modern-net-developers-68c601beade2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Getters in C#: The Essential Guide for Modern .NET Developers</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ahmad.sohail/getters-in-c-the-essential-guide-for-modern-net-developers-68c601beade2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@ahmad.sohail/getters-in-c-the-essential-guide-for-modern-net-developers-68c601beade2?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’ve been searching for clear answers on property getters in C# and .NET, you’re not alone. Maybe you’re looking for a deep dive into…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ahmad.sohail/getters-in-c-the-essential-guide-for-modern-net-developers-68c601beade2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*biF35PfJ46HcamwQAc4GFw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@a95yman/linq-looks-clean-until-you-care-about-performance-5997a029e13e?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">LINQ Looks Clean Until You Care About Performance</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@a95yman/linq-looks-clean-until-you-care-about-performance-5997a029e13e?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@a95yman/linq-looks-clean-until-you-care-about-performance-5997a029e13e?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">LINQ is great. Until it isn’t.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@a95yman/linq-looks-clean-until-you-care-about-performance-5997a029e13e?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@mitesh_shah/your-logs-are-lying-to-you-practical-structured-logging-for-backend-engineers-2bcf3a4c43ea?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Your Logs Are Lying to You : Practical Structured Logging for Backend Engineers</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@mitesh_shah/your-logs-are-lying-to-you-practical-structured-logging-for-backend-engineers-2bcf3a4c43ea?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@mitesh_shah/your-logs-are-lying-to-you-practical-structured-logging-for-backend-engineers-2bcf3a4c43ea?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Structured logging done right for backend engineers, what to log, what to stop logging & why your current logs are probably making life…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@mitesh_shah/your-logs-are-lying-to-you-practical-structured-logging-for-backend-engineers-2bcf3a4c43ea?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1220/1*JitaC2ApaT5s6Qd-AvYsyw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/api-versioning-in-dotnet-10-applications/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Combining API versioning with OpenAPI in .NET 10 applications</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/api-versioning-in-dotnet-10-applications/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/api-versioning-in-dotnet-10-applications/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn how to implement API versioning in your .NET 10 applications using OpenAPI for better API management and documentation. The post Combining API versioning with OpenAPI in .NET 10 applications ap...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/api-versioning-in-dotnet-10-applications/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/04/api-versioning.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://naved-shaikh.medium.com/building-a-modern-event-driven-system-locally-net-10-kinesis-and-localstack-f355b3e1ce78?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Building a Modern Event-Driven System Locally: .NET 10, Kinesis, and LocalStack</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://naved-shaikh.medium.com/building-a-modern-event-driven-system-locally-net-10-kinesis-and-localstack-f355b3e1ce78?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://naved-shaikh.medium.com/building-a-modern-event-driven-system-locally-net-10-kinesis-and-localstack-f355b3e1ce78?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When designing scalable architectures, we often talk about decoupling services.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://naved-shaikh.medium.com/building-a-modern-event-driven-system-locally-net-10-kinesis-and-localstack-f355b3e1ce78?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@mahdi.com.haidar/your-program-is-living-a-lie-about-memory-ccf2acec8ae8?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Your Program Is Living a Lie About Memory</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@mahdi.com.haidar/your-program-is-living-a-lie-about-memory-ccf2acec8ae8?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none">https://medium.com/@mahdi.com.haidar/your-program-is-living-a-lie-about-memory-ccf2acec8ae8?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Everything you think you know about how your process uses RAM is mediated by a beautifully crafted illusion — Virtual Memory.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@mahdi.com.haidar/your-program-is-living-a-lie-about-memory-ccf2acec8ae8?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-448" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/762/1*wxrv6CN3DsskAuXfuQxbyQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=f047784e-9227-4b41-9403-9e050faf6076&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #447</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-447</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-447</guid>
  <pubDate>Mon, 04 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-04T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/data-science-collective/i-rebuilt-nanogpt-in-c-so-net-developers-can-understand-llms-f26a121ef97c?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Rebuilt nanoGPT in C# So .NET Developers Can Understand LLMs</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/data-science-collective/i-rebuilt-nanogpt-in-c-so-net-developers-can-understand-llms-f26a121ef97c?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://medium.com/data-science-collective/i-rebuilt-nanogpt-in-c-so-net-developers-can-understand-llms-f26a121ef97c?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">This article looks at the nanoGPT repo and follows on my previous article, how to build an LLM in C# by using TorchSharp to build a GPT. Continue reading on Data Science Collective »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/data-science-collective/i-rebuilt-nanogpt-in-c-so-net-developers-can-understand-llms-f26a121ef97c?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*f1Tea8iG-ilcmiXW" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@bumuthuchamod/dependency-injection-in-net-a-deep-dive-into-design-and-lifetimes-2be58e5396e1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Dependency Injection in .NET: A Deep Dive into Design and Lifetimes.</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@bumuthuchamod/dependency-injection-in-net-a-deep-dive-into-design-and-lifetimes-2be58e5396e1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://medium.com/@bumuthuchamod/dependency-injection-in-net-a-deep-dive-into-design-and-lifetimes-2be58e5396e1?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When I first learned Dependency Injection (DI), it felt like just another concept to memorize. We know the basic usage pattern of…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@bumuthuchamod/dependency-injection-in-net-a-deep-dive-into-design-and-lifetimes-2be58e5396e1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1376/1*4CziOwYjhSMKUrX_Bp8pNg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@clarkjoesph247/mern-vs-net-vs-node-js-how-to-pick-the-best-tech-stack-for-your-project-in-2026-80e5d9c7a989?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">MERN vs .NET vs Node.js: How to Pick the Best Tech Stack for Your Project in 2026</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@clarkjoesph247/mern-vs-net-vs-node-js-how-to-pick-the-best-tech-stack-for-your-project-in-2026-80e5d9c7a989?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://medium.com/@clarkjoesph247/mern-vs-net-vs-node-js-how-to-pick-the-best-tech-stack-for-your-project-in-2026-80e5d9c7a989?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Choosing the right technology stack is one of the most important decisions when starting a web development project. With multiple powerful…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@clarkjoesph247/mern-vs-net-vs-node-js-how-to-pick-the-best-tech-stack-for-your-project-in-2026-80e5d9c7a989?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*inI9wpw-3J-N180vBdymNw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://csharpdigest.net/newsletters/2263-how-i-accidentally-made-the-fastest-c-csv-parser?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How I accidentally made the fastest C# CSV parser</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://csharpdigest.net/newsletters/2263-how-i-accidentally-made-the-fastest-c-csv-parser?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://csharpdigest.net/newsletters/2263-how-i-accidentally-made-the-fastest-c-csv-parser</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">a fast CSV parser can locate field boundaries in one pass</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://csharpdigest.net/newsletters/2263-how-i-accidentally-made-the-fastest-c-csv-parser?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://csharpdigest.net/assets/social/csharp-4407d85e.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@a95yman/i-thought-i-knew-backend-development-until-i-couldnt-answer-these-50-questions-1347e15a7452?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Thought I Knew Backend Development Until I Couldn’t Answer These 50 Questions</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@a95yman/i-thought-i-knew-backend-development-until-i-couldnt-answer-these-50-questions-1347e15a7452?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://medium.com/@a95yman/i-thought-i-knew-backend-development-until-i-couldnt-answer-these-50-questions-1347e15a7452?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I have a confession to make.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@a95yman/i-thought-i-knew-backend-development-until-i-couldnt-answer-these-50-questions-1347e15a7452?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@thomsmed/ergonomic-ado-net-28548a3b5bd5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Ergonomic ADO.NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@thomsmed/ergonomic-ado-net-28548a3b5bd5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://medium.com/@thomsmed/ergonomic-ado-net-28548a3b5bd5?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Types and extensions to help improve your ADO.NET code</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@thomsmed/ergonomic-ado-net-28548a3b5bd5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1920/1*7I1LJHs-y8N7i21fYp078A.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@shivanshgaur28/the-solid-principles-a-developers-guide-that-won-t-put-you-to-sleep-ff543c78241e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The SOLID Principles — A Developer’s Guide That Won’t Put You to Sleep</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@shivanshgaur28/the-solid-principles-a-developers-guide-that-won-t-put-you-to-sleep-ff543c78241e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://medium.com/@shivanshgaur28/the-solid-principles-a-developers-guide-that-won-t-put-you-to-sleep-ff543c78241e?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” — Martin Fowler</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@shivanshgaur28/the-solid-principles-a-developers-guide-that-won-t-put-you-to-sleep-ff543c78241e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1024/1*a9GheeTzNft1PuP4RyLM0g.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMiYEFVX3lxTE05cnZXSENvQ3laa3BkYTNVN1ZleHZLbE9mWjZwZGhPSXlCQnY5Ym8wOHB2YkFkalliZHdTQlNkU0VFcFZyWnBMeFNDcmpJbmFwc0tIaThhZ0xkTGRCeHZrSA?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">CVE-2026-40372: ASP.NET Core Privilege Escalation</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMiYEFVX3lxTE05cnZXSENvQ3laa3BkYTNVN1ZleHZLbE9mWjZwZGhPSXlCQnY5Ym8wOHB2YkFkalliZHdTQlNkU0VFcFZyWnBMeFNDcmpJbmFwc0tIaThhZ0xkTGRCeHZrSA?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://news.google.com/rss/articles/CBMiYEFVX3lxTE05cnZXSENvQ3laa3BkYTNVN1ZleHZLbE9mWjZwZGhPSXlCQnY5Ym8wOHB2YkFkalliZHdTQlNkU0VFcFZyWnBMeFNDcmpJbmFwc0tIaThhZ0xkTGRCeHZrSA?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">CVE-2026-40372: ASP.NET Core Privilege Escalation</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMiYEFVX3lxTE05cnZXSENvQ3laa3BkYTNVN1ZleHZLbE9mWjZwZGhPSXlCQnY5Ym8wOHB2YkFkalliZHdTQlNkU0VFcFZyWnBMeFNDcmpJbmFwc0tIaThhZ0xkTGRCeHZrSA?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.roundthecode.com/dotnet-tutorials/best-way-create-email-templates?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The best way to create email templates in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.roundthecode.com/dotnet-tutorials/best-way-create-email-templates?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://www.roundthecode.com/dotnet-tutorials/best-way-create-email-templates</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn how to generate reusable email HTML using Razor Views in ASP.NET Core with strongly-typed models. The page The best way to create email templates in .NET appeared on Round The Code.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.roundthecode.com/dotnet-tutorials/best-way-create-email-templates?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://www.roundthecode.com/media/3clg3fbn/tutorial-profile.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@monicalaurenzana/value-types-vs-reference-types-in-c-what-finally-made-it-click-7c31db2ee58c?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Value Types vs Reference Types in C#: What Finally Made It Click</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@monicalaurenzana/value-types-vs-reference-types-in-c-what-finally-made-it-click-7c31db2ee58c?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://medium.com/@monicalaurenzana/value-types-vs-reference-types-in-c-what-finally-made-it-click-7c31db2ee58c?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I had used value types and reference types for a long time, but I didn’t really understand what the difference actually meant in real code.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@monicalaurenzana/value-types-vs-reference-types-in-c-what-finally-made-it-click-7c31db2ee58c?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*yWfFuiOuAKsb6CyZey4QlA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://naved-shaikh.medium.com/mastering-high-concurrency-building-a-thread-safe-configuration-service-in-net-0b3e8824e63d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Mastering High-Concurrency: Building a Thread-Safe Configuration Service in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://naved-shaikh.medium.com/mastering-high-concurrency-building-a-thread-safe-configuration-service-in-net-0b3e8824e63d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://naved-shaikh.medium.com/mastering-high-concurrency-building-a-thread-safe-configuration-service-in-net-0b3e8824e63d?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In high-frequency financial environments — like those I’ve navigated throughout my 15+ years in engineering — system stability often…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://naved-shaikh.medium.com/mastering-high-concurrency-building-a-thread-safe-configuration-service-in-net-0b3e8824e63d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="http://www.bipinjoshi.net/articles/7550a950-3411-47e9-87f8-593d149bb174.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">ASP.NET, Factory Patterns, and the Illusion of Control</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="http://www.bipinjoshi.net/articles/7550a950-3411-47e9-87f8-593d149bb174.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">http://www.bipinjoshi.net/articles/7550a950-3411-47e9-87f8-593d149bb174.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In the world of ASP.NET and .NET, there is a quiet but persistent instinct: the desire to control how things come into existence. Object creation, in particular, feels like something that must be care...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="http://www.bipinjoshi.net/articles/7550a950-3411-47e9-87f8-593d149bb174.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="http://www.binaryintellect.net/articles/content/images/T_AspNetCoreFactory.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/oldnewthing/20260428-00/?p=112278&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Developing a cross-process reader/writer lock with limited readers, part 1: A semaphore</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/oldnewthing/20260428-00/?p=112278&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none">https://devblogs.microsoft.com/oldnewthing/20260428-00/?p=112278</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Say you want to have the functionality of a reader/writer lock, but have it work cross-process. The built-in SRWLOCK works only within a single process. Can we build a reader/writer lock that works ac...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/oldnewthing/20260428-00/?p=112278&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-447" style="text-decoration:none"><img src="https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=599a1581-2c7d-4b90-8b76-1dba5aa9c9d0&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #446</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-446</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-446</guid>
  <pubDate>Fri, 01 May 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-05-01T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/agent-framework/chat-history-storage-patterns-in-microsoft-agent-framework/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Chat History Storage Patterns in Microsoft Agent Framework</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/agent-framework/chat-history-storage-patterns-in-microsoft-agent-framework/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://devblogs.microsoft.com/agent-framework/chat-history-storage-patterns-in-microsoft-agent-framework/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When people talk about building AI agents, they usually focus on models, tools, and prompts. In practice, one of the most important architectural decisions is much simpler: where does the conversation...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/agent-framework/chat-history-storage-patterns-in-microsoft-agent-framework/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://devblogs.microsoft.com/agent-framework/wp-content/uploads/sites/78/2026/04/image_small.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/dotnet-10-0-7-oob-security-update/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET 10.0.7 Out-of-Band Security Update</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/dotnet-10-0-7-oob-security-update/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/dotnet-10-0-7-oob-security-update/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">We are releasing .NET 10.0.7 as an out-of-band (OOB) update to address a security issue introduced in Microsoft.AspNetCore.DataProtection Security update details This release includes a fix for</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/dotnet-10-0-7-oob-security-update/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/04/thumbnail-1776800944887.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://antondevtips.com/blog/building-file-based-apps-in-dotnet-with-multi-file-support?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Building File-Based Apps in .NET: A Complete Guide With Multi-File Support</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://antondevtips.com/blog/building-file-based-apps-in-dotnet-with-multi-file-support?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://antondevtips.com/blog/building-file-based-apps-in-dotnet-with-multi-file-support</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn how to build file-based apps in .NET 10 and .NET 11 Preview 3. This guide covers single-file C# scripts, multi-file apps with the #:include directive, including SDK, including project files and</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://antondevtips.com/blog/building-file-based-apps-in-dotnet-with-multi-file-support?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://antondevtips.com/media/welcome.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://melkisetoglu.medium.com/caching-a-geo-restricted-app-without-the-cache-exploding-4b0c00d1410e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Caching a geo-restricted app without the cache exploding</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://melkisetoglu.medium.com/caching-a-geo-restricted-app-without-the-cache-exploding-4b0c00d1410e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://melkisetoglu.medium.com/caching-a-geo-restricted-app-without-the-cache-exploding-4b0c00d1410e?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A small .NET pattern that’s really just a small idea — and works in any web stack.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://melkisetoglu.medium.com/caching-a-geo-restricted-app-without-the-cache-exploding-4b0c00d1410e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/960/1*sGCBX23P9L78FrCXGq4J9Q.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/difference-between-ref-and-out-parameters-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Difference Between ref and out Parameters in C# with Examples?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/difference-between-ref-and-out-parameters-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://www.c-sharpcorner.com/article/difference-between-ref-and-out-parameters-in-c-sharp-with-examples/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Unlock the power of ref and out parameters in C#! Master passing arguments by reference, modifying existing values with ref, and returning multiple values with out. Enhance your C# coding skills!</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/difference-between-ref-and-out-parameters-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@rustemsoft/obfuscator-code-virtualization-d3910c36df3d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Obfuscator: Code Virtualization</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@rustemsoft/obfuscator-code-virtualization-d3910c36df3d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://medium.com/@rustemsoft/obfuscator-code-virtualization-d3910c36df3d?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A practical guide to protecting .NET applications</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@rustemsoft/obfuscator-code-virtualization-d3910c36df3d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2048/1*IV1opo9I_YKxsxPh28rChA.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@sweetondonie/string-vs-json-vs-object-in-net-why-beginners-get-confused-67e949d88b59?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">String vs JSON vs Object in .NET — Why Beginners Get Confused</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@sweetondonie/string-vs-json-vs-object-in-net-why-beginners-get-confused-67e949d88b59?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://medium.com/@sweetondonie/string-vs-json-vs-object-in-net-why-beginners-get-confused-67e949d88b59?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When I started working with APIs in .NET, this was one of the most confusing things:</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@sweetondonie/string-vs-json-vs-object-in-net-why-beginners-get-confused-67e949d88b59?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1024/1*K54zzCoKL1jLyMfbIO4qfw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://unicorn-dev.medium.com/ai-integrations-rely-or-verify-checking-semantic-kernel-a07f71b1f11a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">AI integrations: Rely or verify? Checking Semantic Kernel</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://unicorn-dev.medium.com/ai-integrations-rely-or-verify-checking-semantic-kernel-a07f71b1f11a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://unicorn-dev.medium.com/ai-integrations-rely-or-verify-checking-semantic-kernel-a07f71b1f11a?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Semantic Kernel is a Microsoft’s SDK for integrating AI models into applications.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://unicorn-dev.medium.com/ai-integrations-rely-or-verify-checking-semantic-kernel-a07f71b1f11a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1600/0*wDm9AvIqElA1jIz_.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@sainitesh/do-agent-skills-actually-save-tokens-with-vs-without-skills-loading-in-microsoft-agent-framework-98d1f0ade703?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Do Agent Skills Actually Save Tokens? With vs Without Skills Loading in Microsoft Agent Framework</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@sainitesh/do-agent-skills-actually-save-tokens-with-vs-without-skills-loading-in-microsoft-agent-framework-98d1f0ade703?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://medium.com/@sainitesh/do-agent-skills-actually-save-tokens-with-vs-without-skills-loading-in-microsoft-agent-framework-98d1f0ade703?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">After exploring agent sessions, I wanted to dig into how the Microsoft Agent Framework handles domain knowledge. The question was: if I…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@sainitesh/do-agent-skills-actually-save-tokens-with-vs-without-skills-loading-in-microsoft-agent-framework-98d1f0ade703?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*cMC7EZM4pn8hmoK-UeXEBw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/oldnewthing/20260423-00/?p=112261&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Another crash caused by uninstaller code injection into Explorer</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/oldnewthing/20260423-00/?p=112261&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://devblogs.microsoft.com/oldnewthing/20260423-00/?p=112261</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Some time ago, I noted that any sufficiently advanced uninstaller is indistinguishable from malware.¹ During one of our regular debugging chats, a colleague of mine mentione</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/oldnewthing/20260423-00/?p=112261&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://devblogs.microsoft.com/oldnewthing/wp-content/uploads/sites/38/2019/02/ShowCover.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/writing-nodejs-addons-with-dotnet-native-aot/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Writing Node.js addons with .NET Native AOT</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/writing-nodejs-addons-with-dotnet-native-aot/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/writing-nodejs-addons-with-dotnet-native-aot/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">C# Dev Kit is a VS Code extension. Like all VS Code extensions, its front end is TypeScript running in Node.js. For certain platform-specific tasks, such as reading the Windows Registry, we've histori...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/writing-nodejs-addons-with-dotnet-native-aot/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/04/writing-nodejs-addons.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.spreaker.com/episode/how-we-beat-the-y2k-bug--71580154?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How We Beat the Y2K Bug</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.spreaker.com/episode/how-we-beat-the-y2k-bug--71580154?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none">https://www.spreaker.com/episode/how-we-beat-the-y2k-bug--71580154</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The Y2K bug turned out to be a non-event on January 1, 2000. How did that happen? Carl and Richard bring together a number of stories from folks who were there, fixing the software and updating system...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.spreaker.com/episode/how-we-beat-the-y2k-bug--71580154?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-446" style="text-decoration:none"><img src="https://d3wo5wojvuv7l.cloudfront.net/t_facebook_share/images.spreaker.com/original/d609b60f7cc16bfd0e6416ce8d5596ec.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=e972822a-37d1-48db-9397-959e79772532&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #445</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-445</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-445</guid>
  <pubDate>Thu, 30 Apr 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-04-30T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/all-things-azure/i-wasted-68-minutes-a-day-re-explaining-my-code-then-i-built-auto-memory/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Wasted 68 Minutes a Day Re-Explaining My Code. Then I Built auto-memory.</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/all-things-azure/i-wasted-68-minutes-a-day-re-explaining-my-code-then-i-built-auto-memory/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://devblogs.microsoft.com/all-things-azure/i-wasted-68-minutes-a-day-re-explaining-my-code-then-i-built-auto-memory/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">~1,900 lines of Python. Zero dependencies. Saves you an hour a day. GitHub → · pip install auto-memory Now give Copilot CLI enhanced context recall. Point it at</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/all-things-azure/i-wasted-68-minutes-a-day-re-explaining-my-code-then-i-built-auto-memory/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://devblogs.microsoft.com/all-things-azure/wp-content/uploads/sites/83/2026/04/Gemini_Generated_Image_rm910yrm910yrm91-scaled.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@quentinsims89/serving-media-from-azure-blob-storage-in-asp-net-core-downloads-streaming-and-secure-tickets-0e4b9a2410bb?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Serving Media from Azure Blob Storage in ASP.NET Core : Downloads, Streaming and Secure Tickets</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@quentinsims89/serving-media-from-azure-blob-storage-in-asp-net-core-downloads-streaming-and-secure-tickets-0e4b9a2410bb?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://medium.com/@quentinsims89/serving-media-from-azure-blob-storage-in-asp-net-core-downloads-streaming-and-secure-tickets-0e4b9a2410bb?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Azure Blob Storage is one of those services that quietly underpins a huge number of production systems. It’s where your audio recordings…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@quentinsims89/serving-media-from-azure-blob-storage-in-asp-net-core-downloads-streaming-and-secure-tickets-0e4b9a2410bb?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/devops/optimizing-git-policy-management-at-scale/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Optimizing Git policy management at scale</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/devops/optimizing-git-policy-management-at-scale/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://devblogs.microsoft.com/devops/optimizing-git-policy-management-at-scale/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">With just a single improvement in the REST API of Azure DevOps, we achieved a massive reduction in CPU usage and execution time when managing Git policies: 2x less CPU and 10-15x faster execution! Thi...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/devops/optimizing-git-policy-management-at-scale/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://devblogs.microsoft.com/devops/wp-content/uploads/sites/6/2026/04/Featured-image-1.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-list-t-49835d6c2a36?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# Dotnet collection internals — List</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-list-t-49835d6c2a36?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-list-t-49835d6c2a36?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Its essentially a dynamic array wrapper implented in managed code.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-list-t-49835d6c2a36?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://rohitsakhare.medium.com/ienumerable-vs-iqueryable-69c727c8d54e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">IEnumerable vs IQueryable</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://rohitsakhare.medium.com/ienumerable-vs-iqueryable-69c727c8d54e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://rohitsakhare.medium.com/ienumerable-vs-iqueryable-69c727c8d54e?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The Difference That Decides Where Your Query Runs</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://rohitsakhare.medium.com/ienumerable-vs-iqueryable-69c727c8d54e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/850/1*vIsRUJotVXWovA82TOTmzw.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.roundthecode.com/dotnet-tutorials/simplest-way-secure-minimal-api-with-swagger?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The simplest way to secure a Minimal API (With Swagger)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.roundthecode.com/dotnet-tutorials/simplest-way-secure-minimal-api-with-swagger?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://www.roundthecode.com/dotnet-tutorials/simplest-way-secure-minimal-api-with-swagger</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Secure your .NET Minimal API quickly using API key authentication, with full Swagger support for testing and protecting endpoints. The page The simplest way to secure a Minimal API (With Swagger) appe...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.roundthecode.com/dotnet-tutorials/simplest-way-secure-minimal-api-with-swagger?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://www.roundthecode.com/media/x3ipzwyk/tutorial-profile.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@pilalojovanitho884/why-converting-browser-html-to-pdf-in-net-is-harder-than-you-think-68a77cd94e8e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Why Converting Browser HTML to PDF in .NET Is Harder Than You Think</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@pilalojovanitho884/why-converting-browser-html-to-pdf-in-net-is-harder-than-you-think-68a77cd94e8e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://medium.com/@pilalojovanitho884/why-converting-browser-html-to-pdf-in-net-is-harder-than-you-think-68a77cd94e8e?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">You open a web page, inspect the DOM, and think: “I’ll just grab the HTML and convert it to PDF.”</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@pilalojovanitho884/why-converting-browser-html-to-pdf-in-net-is-harder-than-you-think-68a77cd94e8e?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1400/1*iuSpwk_yWlPhD1T2zfTDbQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://damienbod.com/2026/04/20/remove-sign-up-from-entra-external-id-user-flows/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Remove sign-up from Entra External ID user flows</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://damienbod.com/2026/04/20/remove-sign-up-from-entra-external-id-user-flows/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://damienbod.com/2026/04/20/remove-sign-up-from-entra-external-id-user-flows/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">This article shows how to remove the sign-up flow from Entra External ID user flows. This is required because SMS and Phone validation can be abused by bots to run up costs on the tenant. The bots cre...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://damienbod.com/2026/04/20/remove-sign-up-from-entra-external-id-user-flows/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://i0.wp.com/damienbod.com/wp-content/uploads/2026/03/disablesign-up-entraexternalid_01.png?fit=1200%2C826&ssl=1" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=vhrpjCJw1CY&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET MAUI Engineering Team Live Stream: AI-Powered .NET MAUI Development with MauiDevFlow</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=vhrpjCJw1CY&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://www.youtube.com/watch?v=vhrpjCJw1CY</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Join Jakub Florkowski, Shane Neuville, and Gerald Versluis of the .NET MAUI team as we build an app live using MauiDevFlow — an open-source toolkit that gives AI agents eyes and hands inside your runn...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=vhrpjCJw1CY&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://i.ytimg.com/vi/vhrpjCJw1CY/maxresdefault.jpg?v=69e9242a" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@natebennett2/extract-word-table-data-using-c-c9f40b92c634?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Extract Word Table Data Using C#</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@natebennett2/extract-word-table-data-using-c-c9f40b92c634?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://medium.com/@natebennett2/extract-word-table-data-using-c-c9f40b92c634?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In daily office operations and software devlopment, developers often need to extract table data from Word documents for database imports…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@natebennett2/extract-word-table-data-using-c-c9f40b92c634?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://developerchandan.medium.com/30-net-interview-questions-every-developer-should-know-2-years-exp-a08a7714af69?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">30 .NET Interview Questions Every Developer Should Know (2 Years Exp)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://developerchandan.medium.com/30-net-interview-questions-every-developer-should-know-2-years-exp-a08a7714af69?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://developerchandan.medium.com/30-net-interview-questions-every-developer-should-know-2-years-exp-a08a7714af69?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Preparing for a mid-level .NET interview? Here are 30 must-know questions on C#, async/await, EF Core, DI, and memory management — with…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://developerchandan.medium.com/30-net-interview-questions-every-developer-should-know-2-years-exp-a08a7714af69?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1693/1*5FGH_74iilmFKzdipFPK3A.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@neupanebibek14/mastering-linq-in-net-a-practical-guide-for-backend-developers-c563c51c2cc0?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Mastering LINQ in .NET: A Practical Guide for Backend Developers</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@neupanebibek14/mastering-linq-in-net-a-practical-guide-for-backend-developers-c563c51c2cc0?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://medium.com/@neupanebibek14/mastering-linq-in-net-a-practical-guide-for-backend-developers-c563c51c2cc0?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’re working with C# and .NET, LINQ (Language Integrated Query) is one of the most powerful tools in your toolkit. It allows you to…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@neupanebibek14/mastering-linq-in-net-a-practical-guide-for-backend-developers-c563c51c2cc0?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/shorts/SStk3FMkL0c?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">VS Code tip: this is how you should be selecting code</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/shorts/SStk3FMkL0c?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://www.youtube.com/shorts/SStk3FMkL0c</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/shorts/SStk3FMkL0c?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://i.ytimg.com/vi/SStk3FMkL0c/oar2.jpg?sqp=-oaymwEoCJUDENAFSFqQAgHyq4qpAxcIARUAAIhC2AEB4gEKCBgQAhgGOAFAAQ==&rs=AOn4CLCzTT8pqB7kNgfCzN6iUmyo8Kt-rQ&usqp=CCk" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/codetodeploy/the-hidden-bottlenecks-in-net-apps-that-kill-scalability-and-how-to-fix-them-1ad528836fab?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Hidden Bottlenecks in .NET Apps That Kill Scalability (And How to Fix Them)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/codetodeploy/the-hidden-bottlenecks-in-net-apps-that-kill-scalability-and-how-to-fix-them-1ad528836fab?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://medium.com/codetodeploy/the-hidden-bottlenecks-in-net-apps-that-kill-scalability-and-how-to-fix-them-1ad528836fab?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Your .NET API works perfectly. Continue reading on CodeToDeploy »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/codetodeploy/the-hidden-bottlenecks-in-net-apps-that-kill-scalability-and-how-to-fix-them-1ad528836fab?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*f1Tea8iG-ilcmiXW" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTFBvcXZRYWpieHV2TTdneHdUWHVsc2NsNDRCdzh6U1dWTFY3NFltMzgyVlRYWVRzdTg3WG5JYXh5eTREZlFzSlNoNVlxc25MTFNyeTI4aEVWZHgyTDNlZU8zQk5iNUowTXdNYnhOdEc2X0k?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# Entity Framework Tutorial | C Sharp Entity Framework Explained | C# Tutorial | Simplilearn (BN2K5qfOQG)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTFBvcXZRYWpieHV2TTdneHdUWHVsc2NsNDRCdzh6U1dWTFY3NFltMzgyVlRYWVRzdTg3WG5JYXh5eTREZlFzSlNoNVlxc25MTFNyeTI4aEVWZHgyTDNlZU8zQk5iNUowTXdNYnhOdEc2X0k?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://news.google.com/rss/articles/CBMicEFVX3lxTFBvcXZRYWpieHV2TTdneHdUWHVsc2NsNDRCdzh6U1dWTFY3NFltMzgyVlRYWVRzdTg3WG5JYXh5eTREZlFzSlNoNVlxc25MTFNyeTI4aEVWZHgyTDNlZU8zQk5iNUowTXdNYnhOdEc2X0k?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">C# Entity Framework Tutorial | C Sharp Entity Framework Explained | C# Tutorial | Simplilearn (BN2K5qfOQG)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMicEFVX3lxTFBvcXZRYWpieHV2TTdneHdUWHVsc2NsNDRCdzh6U1dWTFY3NFltMzgyVlRYWVRzdTg3WG5JYXh5eTREZlFzSlNoNVlxc25MTFNyeTI4aEVWZHgyTDNlZU8zQk5iNUowTXdNYnhOdEc2X0k?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=oyMMotLlcgQ&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Instructions vs Skills vs Hooks & More Explained By Copilot Itself | Ep 7 of 8</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=oyMMotLlcgQ&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none">https://www.youtube.com/watch?v=oyMMotLlcgQ</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn how to build comparison charts, quizzes, and reusable references to better understand when and how to use each feature. 01:20 Using Copilot to learn the differences between Customization feature...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=oyMMotLlcgQ&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-445" style="text-decoration:none"><img src="https://i.ytimg.com/vi/oyMMotLlcgQ/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=e845af37-81f3-4ff4-9233-d8ad5a1c34bf&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #444</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-444</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-444</guid>
  <pubDate>Wed, 29 Apr 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-04-29T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@sweetondonie/newtonsoft-json-vs-system-text-json-which-should-you-use-in-net-88fd402160e2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Newtonsoft.Json vs System.Text.Json Which Should You Use in .NET?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@sweetondonie/newtonsoft-json-vs-system-text-json-which-should-you-use-in-net-88fd402160e2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@sweetondonie/newtonsoft-json-vs-system-text-json-which-should-you-use-in-net-88fd402160e2?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’ve worked with JSON in .NET, you’ve probably seen two different ways to handle it:</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@sweetondonie/newtonsoft-json-vs-system-text-json-which-should-you-use-in-net-88fd402160e2?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1024/1*cwqqkfFAR1WM6BmUc7BFZg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@abhinavkumarsingh06/beyond-the-wizard-why-modernization-chat-is-the-new-standard-for-net-upgrades-82697ed96f45?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Beyond the Wizard: Why Modernization Chat is the New Standard for .NET Upgrades</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@abhinavkumarsingh06/beyond-the-wizard-why-modernization-chat-is-the-new-standard-for-net-upgrades-82697ed96f45?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@abhinavkumarsingh06/beyond-the-wizard-why-modernization-chat-is-the-new-standard-for-net-upgrades-82697ed96f45?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Introduction</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@abhinavkumarsingh06/beyond-the-wizard-why-modernization-chat-is-the-new-standard-for-net-upgrades-82697ed96f45?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1376/1*47j4hwcs1ThhOS4VrM78eA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.stackademic.com/claude-code-two-agent-workflow-c95116d4bac3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Claude Code: Two-Agent Workflow</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.stackademic.com/claude-code-two-agent-workflow-c95116d4bac3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://blog.stackademic.com/claude-code-two-agent-workflow-c95116d4bac3?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Architect + Developer role split: plan-implement-review cycle for .NET Microservices Continue reading on Stackademic »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.stackademic.com/claude-code-two-agent-workflow-c95116d4bac3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*Y9QbYu4n_e6mcS2FcbFaWQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-dictionary-cd65d7a40c2a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# Dotnet collection internals — Dictionary</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-dictionary-cd65d7a40c2a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-dictionary-cd65d7a40c2a?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Core Structures — Dictionary&lt; TKey, TValue &gt;</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-dictionary-cd65d7a40c2a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@remigiuszzalewski/setup-ci-build-pipeline-in-azure-devops-for-asp-net-core-web-api-fc1b2953ded4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Setup CI Build Pipeline in Azure DevOps for ASP.NET Core Web API</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@remigiuszzalewski/setup-ci-build-pipeline-in-azure-devops-for-asp-net-core-web-api-fc1b2953ded4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@remigiuszzalewski/setup-ci-build-pipeline-in-azure-devops-for-asp-net-core-web-api-fc1b2953ded4?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Subscibe to my weekly .NET newsletter</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@remigiuszzalewski/setup-ci-build-pipeline-in-azure-devops-for-asp-net-core-web-api-fc1b2953ded4?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1280/0*IsnKw_8h850_PKsN" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://achuchiwilliam.medium.com/global-error-handling-in-asp-net-core-web-api-building-reliable-secure-and-production-ready-apis-67e24dceb320?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Global Error Handling in ASP.NET Core Web API: Building Reliable, Secure, and Production-Ready APIs</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://achuchiwilliam.medium.com/global-error-handling-in-asp-net-core-web-api-building-reliable-secure-and-production-ready-apis-67e24dceb320?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://achuchiwilliam.medium.com/global-error-handling-in-asp-net-core-web-api-building-reliable-secure-and-production-ready-apis-67e24dceb320?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Modern backend systems are expected to be stable, predictable, and easy to maintain. Users may forgive a failed request, but they rarely…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://achuchiwilliam.medium.com/global-error-handling-in-asp-net-core-web-api-building-reliable-secure-and-production-ready-apis-67e24dceb320?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1280/1*zJfpWjGUw29BQ1mu62MxFg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/shorts/XnwJIgTqkEg?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">#VSCode Newsletter on LinkedIn 📩</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/shorts/XnwJIgTqkEg?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://www.youtube.com/shorts/XnwJIgTqkEg</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/shorts/XnwJIgTqkEg?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://i.ytimg.com/vi/XnwJIgTqkEg/oar2.jpg?sqp=-oaymwEoCJUDENAFSFqQAgHyq4qpAxcIARUAAIhC2AEB4gEKCBgQAhgGOAFAAQ==&rs=AOn4CLD0K1jnXozVseqn5rLnwJlbjvag5w&usqp=CCk" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@phuonganhnthi98/datetime-vs-datetimeoffset-in-c-what-you-get-wrong-until-you-dont-ab1bce6f99b1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">DateTime vs DateTimeOffset in C#: What you get wrong until you don’t</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@phuonganhnthi98/datetime-vs-datetimeoffset-in-c-what-you-get-wrong-until-you-dont-ab1bce6f99b1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@phuonganhnthi98/datetime-vs-datetimeoffset-in-c-what-you-get-wrong-until-you-dont-ab1bce6f99b1?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A field guide for engineers who’ve been burned by timezone bugs in production.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@phuonganhnthi98/datetime-vs-datetimeoffset-in-c-what-you-get-wrong-until-you-dont-ab1bce6f99b1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/860/1*OFZJ2e7OymClxvB8soFCEw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://dotnettips.com/2026/04/26/microsoft-net-code-analysis-avoid-out-parameters-in-methods/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Microsoft .NET Code Analysis: Avoid Out Parameters in Methods</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://dotnettips.com/2026/04/26/microsoft-net-code-analysis-avoid-out-parameters-in-methods/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://dotnettips.com/2026/04/26/microsoft-net-code-analysis-avoid-out-parameters-in-methods/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">The excerpt emphasizes the importance of clarity and maintainability in designing APIs and methods in Microsoft .NET. It explains that while out parameters can be useful, they often lead to reduced re...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://dotnettips.com/2026/04/26/microsoft-net-code-analysis-avoid-out-parameters-in-methods/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://i0.wp.com/dotnettips.com/wp-content/uploads/2026/02/20260211_0918_image-generation_remix_01kh6mf9qjefta24a5adtap0br.png?fit=1200%2C800&ssl=1" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/what-is-the-difference-between-struct-and-class-in-c-sharp-with-performance-compariso/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">What is the difference between struct and class in C# with performance comparison?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/what-is-the-difference-between-struct-and-class-in-c-sharp-with-performance-compariso/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://www.c-sharpcorner.com/article/what-is-the-difference-between-struct-and-class-in-c-sharp-with-performance-compariso/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Unlock C# performance! Explore struct vs. class differences: memory, speed, and use cases. Optimize your .NET apps with the right choice for efficiency.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/what-is-the-difference-between-struct-and-class-in-c-sharp-with-performance-compariso/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@nikolaajdukovic/linq-groupby-igrouping-t-9cb2cd550eab?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">LINQ GroupBy & IGrouping</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@nikolaajdukovic/linq-groupby-igrouping-t-9cb2cd550eab?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@nikolaajdukovic/linq-groupby-igrouping-t-9cb2cd550eab?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Understanding Grouping as a Domain Modeling Tool — Not Just a Query Operator</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@nikolaajdukovic/linq-groupby-igrouping-t-9cb2cd550eab?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*LOngPrcAfdjSPP19EcJl-w.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/cosmosdb/7-tips-to-optimize-azure-cosmos-db-costs-for-ai-and-agentic-workloads/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">7 tips to optimize Azure Cosmos DB costs for AI and agentic workloads</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/cosmosdb/7-tips-to-optimize-azure-cosmos-db-costs-for-ai-and-agentic-workloads/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://devblogs.microsoft.com/cosmosdb/7-tips-to-optimize-azure-cosmos-db-costs-for-ai-and-agentic-workloads/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">AI apps and agentic workloads expose inefficiencies in your data layer faster than any previous generation of apps. You’re storing embeddings, serving low-latency retrieval, handling bursty traffic fr...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/cosmosdb/7-tips-to-optimize-azure-cosmos-db-costs-for-ai-and-agentic-workloads/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://devblogs.microsoft.com/cosmosdb/wp-content/uploads/sites/52/2026/04/optimizing-azure-cosmos-db-e1776890757666.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-queue-33a0c161abed?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">C# Dotnet collection internals — Queue</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-queue-33a0c161abed?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-queue-33a0c161abed?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">How queues use arrays, circular buffer internally?</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@gr.ramesh025/c-dotnet-collection-internals-queue-33a0c161abed?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://akash-shah.medium.com/record-vs-class-in-c-when-to-use-what-with-real-examples-ef-core-guide-3c5780f44e73?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Record vs Class in C#: When to Use What (With Real Examples & EF Core Guide)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://akash-shah.medium.com/record-vs-class-in-c-when-to-use-what-with-real-examples-ef-core-guide-3c5780f44e73?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://akash-shah.medium.com/record-vs-class-in-c-when-to-use-what-with-real-examples-ef-core-guide-3c5780f44e73?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn C# record vs class with examples, immutability, equality, EF Core limitations, and best practices for clean architecture.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://akash-shah.medium.com/record-vs-class-in-c-when-to-use-what-with-real-examples-ef-core-guide-3c5780f44e73?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*4eiGKuKhLt203iBRv9njxQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@vikpoca/on-why-devs-from-other-languages-find-authentication-in-net-the-most-difficult-part-36dd3cb52cfb?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">On why devs from other languages find Authentication in .NET the most difficult part</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@vikpoca/on-why-devs-from-other-languages-find-authentication-in-net-the-most-difficult-part-36dd3cb52cfb?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@vikpoca/on-why-devs-from-other-languages-find-authentication-in-net-the-most-difficult-part-36dd3cb52cfb?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A translator’s guide to .NET authentication, for developers coming from Node, Python, Ruby, or Go.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@vikpoca/on-why-devs-from-other-languages-find-authentication-in-net-the-most-difficult-part-36dd3cb52cfb?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://miro.medium.com/v2/resize:fill:88:88/1*kJdJhLautQHX7ra_f7Aslg.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@rajesh.gsn9/fail-fast-for-incorrect-or-missing-configuration-717464329456?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Fail Fast — for incorrect or missing configuration</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@rajesh.gsn9/fail-fast-for-incorrect-or-missing-configuration-717464329456?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none">https://medium.com/@rajesh.gsn9/fail-fast-for-incorrect-or-missing-configuration-717464329456?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In the .NET world, it’s common to store configuration such as connection strings, topic names, API keys, and log levels in configuration…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@rajesh.gsn9/fail-fast-for-incorrect-or-missing-configuration-717464329456?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-444" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*4DIKklhzaspzr7zfqIyCWg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=19d1f991-e3b8-4753-ba5d-261e62137620&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #443</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-443</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-443</guid>
  <pubDate>Tue, 28 Apr 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-04-28T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@sweetondonie/serialization-vs-deserialization-in-net-explained-simply-e7e14dcf99f9?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Serialization vs Deserialization in .NET — Explained Simply</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@sweetondonie/serialization-vs-deserialization-in-net-explained-simply-e7e14dcf99f9?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://medium.com/@sweetondonie/serialization-vs-deserialization-in-net-explained-simply-e7e14dcf99f9?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When I first started working with APIs in .NET, I kept seeing these two terms everywhere:</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@sweetondonie/serialization-vs-deserialization-in-net-explained-simply-e7e14dcf99f9?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1024/1*nvjPv6YH8nVTnKGjcGa45g.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://pub.towardsai.net/securing-the-ai-youre-building-what-the-owasp-genai-data-security-guide-means-for-developers-who-aff35a604ed1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Securing the AI You’re Building: What the OWASP GenAI Data Security Guide Means for Developers Who…</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://pub.towardsai.net/securing-the-ai-youre-building-what-the-owasp-genai-data-security-guide-means-for-developers-who-aff35a604ed1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://pub.towardsai.net/securing-the-ai-youre-building-what-the-owasp-genai-data-security-guide-means-for-developers-who-aff35a604ed1?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Most AI security articles are written by security professionals explaining risks to developers. Continue reading on Towards AI »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://pub.towardsai.net/securing-the-ai-youre-building-what-the-owasp-genai-data-security-guide-means-for-developers-who-aff35a604ed1?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1200/1*PhjcNSHK0IMELKAnZ2qNvQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/difference-between-ienumerable-and-iqueryable-in-c-sharp/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Difference Between IEnumerable and IQueryable in C#</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/difference-between-ienumerable-and-iqueryable-in-c-sharp/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://www.c-sharpcorner.com/article/difference-between-ienumerable-and-iqueryable-in-c-sharp/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Feature IEnumerable IQueryable Execution Location In-memory Database / Remote Query Execution Immediate Deferred Performance Slower for large data Faster for large data Filtering Client-side Server-si...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/difference-between-ienumerable-and-iqueryable-in-c-sharp/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://codeopinion.com/just-use-postgres-as-a-queue/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Just Use Postgres as a Queue?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://codeopinion.com/just-use-postgres-as-a-queue/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://codeopinion.com/just-use-postgres-as-a-queue/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I’ve noticed a trend, and a lot of people are saying the same thing: just use Postgres as a queue. No Kafka, no Redis, no RabbitMQ, just one database for everything. And I totally get it. I get the ap...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://codeopinion.com/just-use-postgres-as-a-queue/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://codeopinion.com/wp-content/uploads/2026/04/Twitter-2.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://towardsdev.com/6-pillars-of-code-quality-494eba3526d5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">6 Pillars of code quality</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://towardsdev.com/6-pillars-of-code-quality-494eba3526d5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://towardsdev.com/6-pillars-of-code-quality-494eba3526d5?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I’ve recently been reading ‘Good Code, Bad Code’ by Manning, and the section on the 6 Pillars of Code Quality really resonated with me. I… Continue reading on Towards Dev »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://towardsdev.com/6-pillars-of-code-quality-494eba3526d5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1264/1*0OayAznDQHBFGtDWQkyRqg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=I47G-pid-g8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">ASP.NET Community Standup: Simplifying Entra ID authentication with AI</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=I47G-pid-g8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://www.youtube.com/watch?v=I47G-pid-g8</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=I47G-pid-g8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://i.ytimg.com/vi/I47G-pid-g8/maxresdefault.jpg?v=69ea48cf" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@nerudaj/tuesday-coding-tip-96-reference-equality-in-c-77e4a38c204b?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Tuesday Coding Tip 96 — Reference equality in C#</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@nerudaj/tuesday-coding-tip-96-reference-equality-in-c-77e4a38c204b?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://medium.com/@nerudaj/tuesday-coding-tip-96-reference-equality-in-c-77e4a38c204b?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Tuesday coding tips are short posts about various coding tidbits, mainly from C++, but also from other programming languages I use.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@nerudaj/tuesday-coding-tip-96-reference-equality-in-c-77e4a38c204b?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://miro.medium.com/v2/resize:fill:88:88/1*U01Nj0q2Y8AfpJWkfWIiEw.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@bisheshdhiman5514/microservices-architecture-vs-monolithic-architecture-in-net-116ba7ce19d0?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Microservices Architecture vs Monolithic Architecture in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@bisheshdhiman5514/microservices-architecture-vs-monolithic-architecture-in-net-116ba7ce19d0?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://medium.com/@bisheshdhiman5514/microservices-architecture-vs-monolithic-architecture-in-net-116ba7ce19d0?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Introduction</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@bisheshdhiman5514/microservices-architecture-vs-monolithic-architecture-in-net-116ba7ce19d0?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*yf8LXvjmXmCR99lmW_qviw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://fries-dotnet-legacy.medium.com/i-built-a-lead-generation-funnel-with-blazor-heres-every-architectural-decision-i-made-007c44d3623d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">I Built a Lead-Generation Funnel With Blazor — Here’s Every Architectural Decision I Made</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://fries-dotnet-legacy.medium.com/i-built-a-lead-generation-funnel-with-blazor-heres-every-architectural-decision-i-made-007c44d3623d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://fries-dotnet-legacy.medium.com/i-built-a-lead-generation-funnel-with-blazor-heres-every-architectural-decision-i-made-007c44d3623d?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A practitioner’s walkthrough of a real-world Blazor WebAssembly application with quiz engine, Double-Opt-In, PDF delivery, and fully…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://fries-dotnet-legacy.medium.com/i-built-a-lead-generation-funnel-with-blazor-heres-every-architectural-decision-i-made-007c44d3623d?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*lMxK8FyzIjSwBujb_D34WA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=ENxVTtLW_Bc&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Inside The Agent Loop with Pierce Boggan</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=ENxVTtLW_Bc&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://www.youtube.com/watch?v=ENxVTtLW_Bc</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=ENxVTtLW_Bc&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://i.ytimg.com/vi/ENxVTtLW_Bc/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://developer.microsoft.com/blog/langchainjs-for-beginners?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">LangChain.js for Beginners: A Free Course to Build Agentic AI Apps with JavaScript</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://developer.microsoft.com/blog/langchainjs-for-beginners?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://developer.microsoft.com/blog/langchainjs-for-beginners</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Want to build AI agents with JavaScript that go beyond basic chat completions? Agents that reason, call tools, and pull from knowledge bases on their own? We put together a free, open source course to...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://developer.microsoft.com/blog/langchainjs-for-beginners?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://devblogs.microsoft.com/wp-content/uploads/2026/04/word-image-21337-1.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://aindotnet.medium.com/ai-in-net-why-most-implementations-stall-and-how-to-build-systems-that-actually-scale-439a51f15fec?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">AI in .NET: Why Most Implementations Stall and How to Build Systems That Actually Scale</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://aindotnet.medium.com/ai-in-net-why-most-implementations-stall-and-how-to-build-systems-that-actually-scale-439a51f15fec?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://aindotnet.medium.com/ai-in-net-why-most-implementations-stall-and-how-to-build-systems-that-actually-scale-439a51f15fec?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">AI adoption is growing fast but real impact still feels slow.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://aindotnet.medium.com/ai-in-net-why-most-implementations-stall-and-how-to-build-systems-that-actually-scale-439a51f15fec?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/940/1*W-J-26mlEB6-3B7wOXY_5Q.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/asp-net-core-latest-microsoft-release/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">ASP.NET Core (Latest Microsoft Release)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/asp-net-core-latest-microsoft-release/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://www.c-sharpcorner.com/article/asp-net-core-latest-microsoft-release/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">This article explores the latest advancements in ASP.NET Core with the release of .NET 10, focusing on performance improvements, enhanced Minimal APIs, and Blazor updates. It provides practical code e...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/asp-net-core-latest-microsoft-release/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="http://www.binaryintellect.net/articles/7fbf5eb8-028f-4f3c-a436-b94358ad5dd0.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Dependency Injection as a Practice of Surrender</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="http://www.binaryintellect.net/articles/7fbf5eb8-028f-4f3c-a436-b94358ad5dd0.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">http://www.binaryintellect.net/articles/7fbf5eb8-028f-4f3c-a436-b94358ad5dd0.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In the early stages of a developer’s journey, there is a natural inclination toward control. We construct our dependencies explicitly, wire objects together manually, and take comfort in knowing exact...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="http://www.binaryintellect.net/articles/7fbf5eb8-028f-4f3c-a436-b94358ad5dd0.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="http://www.binaryintellect.net/articles/content/images/T_DISurrender.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@remigiuszzalewski/ef-core-performance-n-1-cartesian-explosion-and-how-to-fix-both-ee4eb679b0ec?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">EF Core Performance - N+1, Cartesian Explosion and How to Fix Both</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@remigiuszzalewski/ef-core-performance-n-1-cartesian-explosion-and-how-to-fix-both-ee4eb679b0ec?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://medium.com/@remigiuszzalewski/ef-core-performance-n-1-cartesian-explosion-and-how-to-fix-both-ee4eb679b0ec?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">ZZZ Projects’ EF Core Extensions Struggling with slow EF Core operations? Boost performance like never before. Experience up to 14× faster…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@remigiuszzalewski/ef-core-performance-n-1-cartesian-explosion-and-how-to-fix-both-ee4eb679b0ec?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1280/0*9T2IqJwVIhwb3KLU" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@farzadbagheri33/ai-security-safety-protecting-your-net-ai-apps-in-2026-d1c69819c2a7?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">AI Security & Safety Protecting Your .NET AI Apps in 2026</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@farzadbagheri33/ai-security-safety-protecting-your-net-ai-apps-in-2026-d1c69819c2a7?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none">https://medium.com/@farzadbagheri33/ai-security-safety-protecting-your-net-ai-apps-in-2026-d1c69819c2a7?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">“In 2025, a Fortune 500 company’s internal AI assistant was tricked — via a carefully crafted PDF a user uploaded — into revealing the…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@farzadbagheri33/ai-security-safety-protecting-your-net-ai-apps-in-2026-d1c69819c2a7?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-443" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/693/1*iyfplhy5eoHCnhz6q5JcEA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=0fba7934-dcda-4438-8ea6-437aee7d2ca5&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #442</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-442</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-442</guid>
  <pubDate>Mon, 27 Apr 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-04-27T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://andrewlock.net/removingbyte-array-allocations-in-dotnet-framework-using-readonlyspan-t/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Removing byte[] allocations in .NET Framework using ReadOnlySpan</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://andrewlock.net/removingbyte-array-allocations-in-dotnet-framework-using-readonlyspan-t/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://andrewlock.net/removingbyte-array-allocations-in-dotnet-framework-using-readonlyspan-t/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In this post I describe how to remove static byte[] allocations, even on .NET Framework, by using Span</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://andrewlock.net/removingbyte-array-allocations-in-dotnet-framework-using-readonlyspan-t/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://andrewlock.net/content/images/2026/readonlyspan_banner.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@monicalaurenzana/service-lifetimes-in-net-what-finally-made-it-click-5a48499eca4d?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Service Lifetimes in .NET: What Finally Made It Click</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@monicalaurenzana/service-lifetimes-in-net-what-finally-made-it-click-5a48499eca4d?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@monicalaurenzana/service-lifetimes-in-net-what-finally-made-it-click-5a48499eca4d?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I understood dependency injection, but I didn’t really understand what scoped, transient, and singleton actually meant.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@monicalaurenzana/service-lifetimes-in-net-what-finally-made-it-click-5a48499eca4d?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*EiwTDkuqawfRXk8bV8G3-A.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.meziantou.net/evaluating-cron-and-rrule-expressions-in-dotnet.htm?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Evaluating CRON and RRule expressions in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.meziantou.net/evaluating-cron-and-rrule-expressions-in-dotnet.htm?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://www.meziantou.net/evaluating-cron-and-rrule-expressions-in-dotnet.htm</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Evaluating recurring date patterns is a common requirement in many applications. Whether you need every day, every Monday at 9 AM, or the last day of each month, you need a reliable way to calculate u...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.meziantou.net/evaluating-cron-and-rrule-expressions-in-dotnet.htm?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://www.meziantou.net/assets/cover-d0fb69.jpg?v=f36a" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@rgpatel119/slowly-changing-dimensions-the-complete-sql-guide-11ea9aa104dc?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Slowly Changing Dimensions: The complete SQL guide</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@rgpatel119/slowly-changing-dimensions-the-complete-sql-guide-11ea9aa104dc?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@rgpatel119/slowly-changing-dimensions-the-complete-sql-guide-11ea9aa104dc?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Data warehouses are designed to answer one key question: what happened, and what did things look like at that time? This is where Slowly…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@rgpatel119/slowly-changing-dimensions-the-complete-sql-guide-11ea9aa104dc?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://muhammadirwanto.medium.com/stop-using-classes-for-dtos-why-its-time-to-switch-to-records-e15e28a446c9?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Stop Using Classes for DTOs: Why It’s Time to Switch to Records</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://muhammadirwanto.medium.com/stop-using-classes-for-dtos-why-its-time-to-switch-to-records-e15e28a446c9?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://muhammadirwanto.medium.com/stop-using-classes-for-dtos-why-its-time-to-switch-to-records-e15e28a446c9?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you are still defining your Data Transfer Objects (DTOs) as classes, you are carrying unnecessary baggage. In the modern C# ecosystem…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://muhammadirwanto.medium.com/stop-using-classes-for-dtos-why-its-time-to-switch-to-records-e15e28a446c9?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1083/1*hk1FzwL28phnk6a3OOIfLA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@aniket-sonkar/feature-management-in-net-real-production-pattern-with-targeting-filter-e784876369f9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Feature Management in .NET | Real Production Pattern with Targeting Filter</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@aniket-sonkar/feature-management-in-net-real-production-pattern-with-targeting-filter-e784876369f9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@aniket-sonkar/feature-management-in-net-real-production-pattern-with-targeting-filter-e784876369f9?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Modern applications don’t release features to everyone at once — they rely on controlled rollouts, user targeting, and safe deployments.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@aniket-sonkar/feature-management-in-net-real-production-pattern-with-targeting-filter-e784876369f9?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*1oBNICyQ-DaQJipnDae2QA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@pankaj.ikhar/http-3-and-quic-the-next-generation-of-net-web-performance-75b3c38e7cff?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">HTTP/3 and QUIC: The Next Generation of .NET Web Performance</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@pankaj.ikhar/http-3-and-quic-the-next-generation-of-net-web-performance-75b3c38e7cff?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@pankaj.ikhar/http-3-and-quic-the-next-generation-of-net-web-performance-75b3c38e7cff?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Understanding why the fastest websites are moving beyond TCP and how to implement HTTP/3 in your .NET applications today</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@pankaj.ikhar/http-3-and-quic-the-next-generation-of-net-web-performance-75b3c38e7cff?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1536/1*s4KZMEhaMpDZde0Q4PEsHQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/agent-framework/codeact-with-hyperlight/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">CodeAct in Agent Framework: Faster Agents with Fewer Model Turns</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/agent-framework/codeact-with-hyperlight/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://devblogs.microsoft.com/agent-framework/codeact-with-hyperlight/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Modern AI agents often aren't bottlenecked by model quality, they are bottlenecked by orchestration overhead. When an agent chains together many small tool calls, each step typically requires a new mo...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/agent-framework/codeact-with-hyperlight/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://devblogs.microsoft.com/agent-framework/wp-content/uploads/sites/78/2026/04/2026-04-17-115256-mai-image-2e.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ahmad.sohail/coroutines-in-c-the-missing-guide-to-cooperative-programming-concurrency-and-more-150935cdc594?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Coroutines in C#: The Missing Guide to Cooperative Programming, Concurrency, and More</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ahmad.sohail/coroutines-in-c-the-missing-guide-to-cooperative-programming-concurrency-and-more-150935cdc594?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@ahmad.sohail/coroutines-in-c-the-missing-guide-to-cooperative-programming-concurrency-and-more-150935cdc594?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’ve ever wondered how coroutines work in C#, you’re not alone. Whether you’ve stumbled upon “co” prefixes in concurrency discussions…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ahmad.sohail/coroutines-in-c-the-missing-guide-to-cooperative-programming-concurrency-and-more-150935cdc594?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*ZDS7WKYN6o1u7NL4nXDXzg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://antondevtips.com?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">The Real Cost of Returning the Identity Value in EF Core</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://antondevtips.com?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://antondevtips.com</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn why EF Core SaveChanges becomes slow when inserting thousands of rows when returning identity values and how BulkInsert and BulkInsertOptimized from Entity Framework Extensions deliver up to 23x</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://antondevtips.com?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://antondevtips.com/media/welcome.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@salomonakoa44/why-net-and-c-are-still-one-of-the-best-choices-for-modern-development-in-2026-4fb14e8c40bf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Why .NET and C# Are Still One of the Best Choices for Modern Development in 2026</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@salomonakoa44/why-net-and-c-are-still-one-of-the-best-choices-for-modern-development-in-2026-4fb14e8c40bf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@salomonakoa44/why-net-and-c-are-still-one-of-the-best-choices-for-modern-development-in-2026-4fb14e8c40bf?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">If you’ve been around software development for a while, you’ve probably heard people argue about languages and frameworks like it’s a…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@salomonakoa44/why-net-and-c-are-still-one-of-the-best-choices-for-modern-development-in-2026-4fb14e8c40bf?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*7Ftcue83O6CIBDPs4wdMZA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@Has_San/primary-constructors-for-my-di-service-classes-1f2dc0433e2a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Primary constructors for my DI service classes</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@Has_San/primary-constructors-for-my-di-service-classes-1f2dc0433e2a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@Has_San/primary-constructors-for-my-di-service-classes-1f2dc0433e2a?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I resisted primary constructors for a while. When C# 12 extended them from record types to regular classes and structs, my gut reaction…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@Has_San/primary-constructors-for-my-di-service-classes-1f2dc0433e2a?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1168/1*rmq2LrBwHoFOOglpS8sc4g.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.lhotka.net/2026/04/23/My-Claude-Code-Workflow?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">My Claude Code Workflow</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.lhotka.net/2026/04/23/My-Claude-Code-Workflow?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://blog.lhotka.net/2026/04/23/My-Claude-Code-Workflow</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I’ve been through a lot of workflow tooling on top of Claude Code over the past few months. They imposed structure — ideate, plan, implement, test, PR — and that structure was genuinely helpful when C...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.lhotka.net/2026/04/23/My-Claude-Code-Workflow?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://blog.lhotka.net/assets/2026-04-23-My-Claude-Code-Workflow/featured-image.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@swethane28/blazor-in-net-building-modern-web-apps-without-javascript-00bab3253cc5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Blazor in .NET: Building Modern Web Apps Without JavaScript</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@swethane28/blazor-in-net-building-modern-web-apps-without-javascript-00bab3253cc5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@swethane28/blazor-in-net-building-modern-web-apps-without-javascript-00bab3253cc5?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">How Microsoft’s full-stack framework is changing the way .NET developers approach the web</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@swethane28/blazor-in-net-building-modern-web-apps-without-javascript-00bab3253cc5?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*6PmFMQLawhAKKzeqT_Khqw.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@adrianbailador/anti-corruption-layer-in-net-protecting-your-domain-from-external-apis-2e239532d195?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Anti-Corruption Layer in .NET: Protecting Your Domain from External APIs</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@adrianbailador/anti-corruption-layer-in-net-protecting-your-domain-from-external-apis-2e239532d195?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://medium.com/@adrianbailador/anti-corruption-layer-in-net-protecting-your-domain-from-external-apis-2e239532d195?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">We had a clean domain. Orders, customers, payments — all modelled carefully, all speaking the same language. Then we integrated with a…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@adrianbailador/anti-corruption-layer-in-net-protecting-your-domain-from-external-apis-2e239532d195?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://miro.medium.com/v2/resize:fill:88:88/1*xK9Rt2cKSZ7s3FW_678XbA@2x.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://dotnettips.com/2026/04/20/guidance-counselor-2-0-with-david-mccarter/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Guidance Counselor 2.0 with David McCarter</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://dotnettips.com/2026/04/20/guidance-counselor-2-0-with-david-mccarter/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none">https://dotnettips.com/2026/04/20/guidance-counselor-2-0-with-david-mccarter/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Join Taylor Desseyn and David McCarter live on the Guidance Counselor 2.0 podcast on April 21, 2026, at 9:30 AM CST. They'll discuss strategies for success in the tech job market, insights from McCart...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://dotnettips.com/2026/04/20/guidance-counselor-2-0-with-david-mccarter/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-442" style="text-decoration:none"><img src="https://i0.wp.com/dotnettips.com/wp-content/uploads/2026/04/ChatGPT-Image-Apr-20-2026-08_58_31-AM.png?fit=1200%2C800&ssl=1" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=16d8f798-5950-4032-a075-f0f8a78021da&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #441</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-441</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-441</guid>
  <pubDate>Fri, 24 Apr 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-04-24T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="will-your-retirement-income-last">Will Your Retirement Income Last?</h3><div class="image"><a class="image__link" href="https://pembletonfinancial.com/?a=1376&c=21427&s1={{publication_alphanumeric_id}}&_bhiiv=opp_ea8ccaba-7a57-42bf-891e-42ab9ff33e15_191e16fc&bhcl_id=5e38339d-69fa-4604-b4e1-3a291f4ae5b4_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/1198a9f1-fea6-447d-967a-e4a29209f8b5/CoupleCounterPhone_1000X750__9___2_.jpg?t=1772726613"/></a></div><p class="paragraph" style="text-align:left;"><span style="color:#000000;">A clear retirement income plan starts with knowing your costs and building a portfolio that can meet them. </span><span style="color:#000000;"><a class="link" href="https://pembletonfinancial.com/?a=1376&c=21427&s1={{publication_alphanumeric_id}}&_bhiiv=opp_ea8ccaba-7a57-42bf-891e-42ab9ff33e15_191e16fc&bhcl_id=5e38339d-69fa-4604-b4e1-3a291f4ae5b4_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Fisher Investments&#39; Definitive Guide to Retirement Income</a></span><span style="color:#000000;"> helps investors with $1,000,000 or more structure a strategy built to last.</span></p><p class="paragraph" style="text-align:left;"><span style="color:#000000;"><i><a class="link" href="https://pembletonfinancial.com/?a=1376&c=21427&s1={{publication_alphanumeric_id}}&_bhiiv=opp_ea8ccaba-7a57-42bf-891e-42ab9ff33e15_191e16fc&bhcl_id=5e38339d-69fa-4604-b4e1-3a291f4ae5b4_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Download your free guide.</a></i></span></p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@monicalaurenzana/middleware-in-asp-net-core-what-actually-happens-4c843ac7ed08?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Middleware in ASP.NET Core: What Actually Happens</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@monicalaurenzana/middleware-in-asp-net-core-what-actually-happens-4c843ac7ed08?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://medium.com/@monicalaurenzana/middleware-in-asp-net-core-what-actually-happens-4c843ac7ed08?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I had been using middleware in ASP.NET Core without really understanding what it was doing.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@monicalaurenzana/middleware-in-asp-net-core-what-actually-happens-4c843ac7ed08?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1024/1*ehifDqBIAognRxuHCkmk6g.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@turkayurkmez/asp-net-core-minimal-api-ve-repr-pattern-5fb4892bbd16?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">ASP.NET Core Minimal API ve REPR Pattern</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@turkayurkmez/asp-net-core-minimal-api-ve-repr-pattern-5fb4892bbd16?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://medium.com/@turkayurkmez/asp-net-core-minimal-api-ve-repr-pattern-5fb4892bbd16?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Her Endpoint’e bir oda ver baba :)</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@turkayurkmez/asp-net-core-minimal-api-ve-repr-pattern-5fb4892bbd16?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/0*rLLFYMmfiKRVAI5E" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.youtube.com/watch?v=fZVa-kYJ2i8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Azure Cost Estimation: Navigate Database Pricing</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.youtube.com/watch?v=fZVa-kYJ2i8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://www.youtube.com/watch?v=fZVa-kYJ2i8</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word"></p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.youtube.com/watch?v=fZVa-kYJ2i8&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://i.ytimg.com/vi/fZVa-kYJ2i8/maxresdefault.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://antondevtips.com?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Getting Started With Dapr for Building Cloud-Native Microservices in .NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://antondevtips.com?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://antondevtips.com</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Learn what Dapr is, how the sidecar architecture works, understand building blocks and components, and set up Dapr with .NET Aspire for your .NET microservices. Code examples in .NET to publish event</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://antondevtips.com?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://antondevtips.com/media/welcome.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@avazgarayev/keys-and-rooms-solution-in-c-436cf807ce7a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Keys and Rooms solution in c#</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@avazgarayev/keys-and-rooms-solution-in-c-436cf807ce7a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://medium.com/@avazgarayev/keys-and-rooms-solution-in-c-436cf807ce7a?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">So lets break it in pieces to make the algorithm clear for everyone who uses different programming languages:</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@avazgarayev/keys-and-rooms-solution-in-c-436cf807ce7a?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1920/1*U-guHsnxoEnOh_0KpcMzxA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/difference-between-abstract-class-and-interface-in-c-sharp3/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Difference between Abstract Class and Interface in C#</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/difference-between-abstract-class-and-interface-in-c-sharp3/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://www.c-sharpcorner.com/article/difference-between-abstract-class-and-interface-in-c-sharp3/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Unlock C# abstraction! Explore the key differences between abstract classes and interfaces with real-world examples. Learn when to use each for cleaner, scalable code.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/difference-between-abstract-class-and-interface-in-c-sharp3/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@wmukhtar/jwt-refresh-token-authentication-in-react-18-asp-net-749de08a1981?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">JWT + Refresh Token Authentication in React 18 + ASP.NET</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@wmukhtar/jwt-refresh-token-authentication-in-react-18-asp-net-749de08a1981?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://medium.com/@wmukhtar/jwt-refresh-token-authentication-in-react-18-asp-net-749de08a1981?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">I implemented this exact flow and it stopped 3 a.m.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@wmukhtar/jwt-refresh-token-authentication-in-react-18-asp-net-749de08a1981?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*xClux8zSHdiXTD7FQpKUAA.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://divsriv.medium.com/migrate-from-sln-to-slnx-in-net-10-complete-guide-to-the-new-solution-format-14c6e00f1036?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Migrate from .sln to .slnx in .NET 10 — Complete Guide to the New Solution Format</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://divsriv.medium.com/migrate-from-sln-to-slnx-in-net-10-complete-guide-to-the-new-solution-format-14c6e00f1036?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://divsriv.medium.com/migrate-from-sln-to-slnx-in-net-10-complete-guide-to-the-new-solution-format-14c6e00f1036?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Starting with .NET 10, dotnet new sln generates .slnx files by default. Your old .sln files still work, but the writing is on the wall …</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://divsriv.medium.com/migrate-from-sln-to-slnx-in-net-10-complete-guide-to-the-new-solution-format-14c6e00f1036?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1254/0*q4WUi5SAubJ5JYMy.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://blog.peakcyber.com/smart-query-splitting-in-entity-framework-core-smartsplitqueryinterceptor-1373e6c882fc?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Smart Query Splitting in Entity Framework Core: SmartSplitQueryInterceptor</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://blog.peakcyber.com/smart-query-splitting-in-entity-framework-core-smartsplitqueryinterceptor-1373e6c882fc?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://blog.peakcyber.com/smart-query-splitting-in-entity-framework-core-smartsplitqueryinterceptor-1373e6c882fc?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">One of the most common dilemmas when developing with Entity Framework Core (EF Core) is deciding whether to use Single Query or Split… Continue reading on PeakCyber Technologies »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://blog.peakcyber.com/smart-query-splitting-in-entity-framework-core-smartsplitqueryinterceptor-1373e6c882fc?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1024/1*BOJNuWnvQkqRbOFKQRqXJQ.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-april-2026-servicing-updates/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">.NET and .NET Framework April 2026 servicing releases updates</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-april-2026-servicing-updates/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-april-2026-servicing-updates/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">A recap of the latest servicing updates for .NET and .NET Framework for April 2026. The post .NET and .NET Framework April 2026 servicing releases updates appeared first on .NET Blog.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/dotnet-and-dotnet-framework-april-2026-servicing-updates/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/04/april-2026.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@remigiuszzalewski/insane-performance-boost-in-ef-core-using-entity-framework-extensions-86b9f4803fde?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Insane Performance Boost in EF Core using Entity Framework Extensions</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@remigiuszzalewski/insane-performance-boost-in-ef-core-using-entity-framework-extensions-86b9f4803fde?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none">https://medium.com/@remigiuszzalewski/insane-performance-boost-in-ef-core-using-entity-framework-extensions-86b9f4803fde?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">ZZZ Projects’ EF Core Extensions Struggling with slow EF Core operations? Boost performance like never before. Experience up to 14× faster…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@remigiuszzalewski/insane-performance-boost-in-ef-core-using-entity-framework-extensions-86b9f4803fde?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-441" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1280/0*qd8yzxH2Epxiq3yn" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=ce308476-c5ae-4a5b-aa54-0849cd559a72&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

      <item>
  <title>The .NET News Daily Issue #440</title>
  <description>Your Daily Dose of .NET Insights, Tools, and Trends</description>
  <link>https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-440</link>
  <guid isPermaLink="true">https://dotnetnews.beehiiv.com/p/the-net-news-daily-issue-440</guid>
  <pubDate>Thu, 23 Apr 2026 11:00:00 +0000</pubDate>
  <atom:published>2026-04-23T11:00:00Z</atom:published>
    <dc:creator>Jasen Fici</dc:creator>
  <content:encoded><![CDATA[
    <div class='beehiiv'><style>
  .bh__table, .bh__table_header, .bh__table_cell { border: 1px solid #C0C0C0; }
  .bh__table_cell { padding: 5px; background-color: #FFFFFF; }
  .bh__table_cell p { color: #2D2D2D; font-family: 'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
  .bh__table_header { padding: 5px; background-color:#F1F1F1; }
  .bh__table_header p { color: #2A2A2A; font-family:'Open Sans','Segoe UI','Apple SD Gothic Neo','Lucida Grande','Lucida Sans Unicode',sans-serif !important; overflow-wrap: break-word; }
</style><div class='beehiiv__body'><h3 class="heading" style="text-align:left;" id="become-an-ai-expert-in-just-5-minut">Become An AI Expert In Just 5 Minutes</h3><div class="image"><a class="image__link" href="https://subscribe.thedeepview.com/?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&utm_medium=newsletter&_bhiiv=opp_f460c242-093a-46ea-92d5-1c94625aec75_12ba3285&bhcl_id=93e57689-18e5-44fc-94a0-09e02ac770cd_{{subscriber_id}}_{{email_address_id}}" rel="noopener" target="_blank"><img class="image__image" style="" src="https://media.beehiiv.com/cdn-cgi/image/fit=scale-down,format=auto,onerror=redirect,quality=80/uploads/asset/file/92c7ce90-e2c8-4d1a-a474-b31fa3759647/Vintage_11.png?t=1757641001"/></a></div><p class="paragraph" style="text-align:left;">If you’re a decision maker at your company, you need to be on the bleeding edge of, well, everything. But before you go signing up for seminars, conferences, lunch ‘n learns, and all that jazz, just know there’s a far better (and simpler) way: <a class="link" href="https://subscribe.thedeepview.com/?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&utm_medium=newsletter&_bhiiv=opp_f460c242-093a-46ea-92d5-1c94625aec75_12ba3285&bhcl_id=93e57689-18e5-44fc-94a0-09e02ac770cd_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Subscribing to The Deep View.</a></p><p class="paragraph" style="text-align:left;">This daily newsletter condenses everything you need to know about the <a class="link" href="https://subscribe.thedeepview.com/?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&utm_medium=newsletter&_bhiiv=opp_f460c242-093a-46ea-92d5-1c94625aec75_12ba3285&bhcl_id=93e57689-18e5-44fc-94a0-09e02ac770cd_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">latest and greatest AI developments</a> into a 5-minute read. Squeeze it into your morning coffee break and before you know it, you’ll be an expert too. </p><p class="paragraph" style="text-align:left;"><a class="link" href="https://subscribe.thedeepview.com/?utm_campaign={{publication_alphanumeric_id}}&utm_source=beehiiv&utm_medium=newsletter&_bhiiv=opp_f460c242-093a-46ea-92d5-1c94625aec75_12ba3285&bhcl_id=93e57689-18e5-44fc-94a0-09e02ac770cd_{{subscriber_id}}_{{email_address_id}}" target="_blank" rel="noopener noreferrer nofollow">Subscribe right here</a>. It’s totally free, wildly informative, and trusted by 600,000+ readers at Google, Meta, Microsoft, and beyond.</p><div class="custom_html"><div style="margin:20px 0;padding:16px;background-color:#f8f9fa;border-left:4px solid #3a9bf3;border-radius:4px"><p style="margin:0 0 12px 0;font-size:16px;line-height:24px;color:#2d2d2d">Enjoying the newsletter? Your feedback helps us grow and reach more developers.</p><p style="margin:0;font-size:15px;line-height:22px"><a href="https://senja.io/p/dotnetnews/r/qreNWQ?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="color:#3a9bf3;text-decoration:none;font-weight:600">Share your testimonial →</a></p></div><h2 class="articles-header">Today's Articles</h2><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/azure-sdk/azd-update/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Stop juggling package managers—just run `azd update`</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/azure-sdk/azd-update/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://devblogs.microsoft.com/azure-sdk/azd-update/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Updating azd used to mean remembering which package manager you installed it with. Now one command handles it on every platform. What's new? The azd update command updates the Azure Developer CLI (azd...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/azure-sdk/azd-update/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://devblogs.microsoft.com/azure-sdk/wp-content/uploads/sites/58/2026/04/azd-upgrade-blog.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@ardabuyuk2738/source-generator-based-cqrs-library-in-c-a-review-of-the-mevora-library-5bfd0eed17ca?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Source Generator-Based CQRS Library in C#: A Review of the Mevora Library</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@ardabuyuk2738/source-generator-based-cqrs-library-in-c-a-review-of-the-mevora-library-5bfd0eed17ca?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://medium.com/@ardabuyuk2738/source-generator-based-cqrs-library-in-c-a-review-of-the-mevora-library-5bfd0eed17ca?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Hello, fellow .NET developers! Today, I’d like to talk to you about a new library — Mevora — that promises to be quite exciting, and how…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@ardabuyuk2738/source-generator-based-cqrs-library-in-c-a-review-of-the-mevora-library-5bfd0eed17ca?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/syncfusion/import-and-export-word-documents-in-net-maui-rich-text-editor-with-docio-f3cf74c5096b?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Import and Export Word Documents in .NET MAUI Rich Text Editor with DocIO</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/syncfusion/import-and-export-word-documents-in-net-maui-rich-text-editor-with-docio-f3cf74c5096b?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://medium.com/syncfusion/import-and-export-word-documents-in-net-maui-rich-text-editor-with-docio-f3cf74c5096b?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Tired of broken Word formatting in .NET MAUI apps? See how rich text and images can be imported and exported reliably, no cross-platform. Continue reading on Syncfusion »</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/syncfusion/import-and-export-word-documents-in-net-maui-rich-text-editor-with-docio-f3cf74c5096b?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://miro.medium.com/v2/da:true/resize:fill:64:64/0*f1Tea8iG-ilcmiXW" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@remigiuszzalewski/minimal-api-validation-in-net-10-built-in-support-with-data-annotations-82cbc9fc4e51?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Minimal API Validation in .NET 10 Built-In Support with Data Annotations</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@remigiuszzalewski/minimal-api-validation-in-net-10-built-in-support-with-data-annotations-82cbc9fc4e51?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://medium.com/@remigiuszzalewski/minimal-api-validation-in-net-10-built-in-support-with-data-annotations-82cbc9fc4e51?source=rss------csharp-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Connect with me 👇</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@remigiuszzalewski/minimal-api-validation-in-net-10-built-in-support-with-data-annotations-82cbc9fc4e51?source=rss------csharp-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1280/0*CLwXr6uNLHqm2vJZ" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://dotnetcore.show/season-8/context-is-everything-getting-the-most-from-github-copilot-with-joydip-kanjilal/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Context Is Everything: Getting the Most from GitHub Copilot with Joydip Kanjilal</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://dotnetcore.show/season-8/context-is-everything-getting-the-most-from-github-copilot-with-joydip-kanjilal/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://dotnetcore.show/season-8/context-is-everything-getting-the-most-from-github-copilot-with-joydip-kanjilal/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Strategic Technology Consultation Services This episode of The Modern .NET Show is supported, in part, by RJJ Software's Strategic Technology Consultation Services. If you're an SME (Small to Medium ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://dotnetcore.show/season-8/context-is-everything-getting-the-most-from-github-copilot-with-joydip-kanjilal/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://dotnetcore.show/header-images/817-JoydipKanjial-GitHub-Copilot.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@orkhanmustafayev/stop-handing-over-your-entire-wallet-dtos-in-net-explained-6ddd7e1c69fa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Stop Handing Over Your Entire Wallet: DTOs in .NET Explained</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@orkhanmustafayev/stop-handing-over-your-entire-wallet-dtos-in-net-explained-6ddd7e1c69fa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://medium.com/@orkhanmustafayev/stop-handing-over-your-entire-wallet-dtos-in-net-explained-6ddd7e1c69fa?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Let’s say you go to a coffee shop. Your coffee costs $5. Do you hand the barista your entire wallet, let them dig through your credit…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@orkhanmustafayev/stop-handing-over-your-entire-wallet-dtos-in-net-explained-6ddd7e1c69fa?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://picsum.photos/240/240" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/difference-between-record-and-class-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Difference Between Record and Class in C# with Examples?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/difference-between-record-and-class-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://www.c-sharpcorner.com/article/difference-between-record-and-class-in-c-sharp-with-examples/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Unlock the secrets of C#! Discover the key differences between records and classes, including mutability, equality, and use cases. Write cleaner, safer code!</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/difference-between-record-and-class-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="http://www.binaryintellect.net/articles/fe01f733-5402-49f1-8034-1c3e008d8519.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Abstractions That Heal, Abstractions That Harm</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="http://www.binaryintellect.net/articles/fe01f733-5402-49f1-8034-1c3e008d8519.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">http://www.binaryintellect.net/articles/fe01f733-5402-49f1-8034-1c3e008d8519.aspx</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Every non-trivial software system rests on a foundation of abstractions. In the world of .NET and ASP.NET, abstractions are not merely language features or framework conveniences—they are the primary ...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="http://www.binaryintellect.net/articles/fe01f733-5402-49f1-8034-1c3e008d8519.aspx?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="http://www.binaryintellect.net/articles/content/images/T_AbstractionsHealHarm.jpg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@salomonakoa44/how-to-enable-swagger-in-net-10-step-by-step-guide-video-ad03e9d19451?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">How to Enable Swagger in .NET 10 (Step-by-Step Guide + Video)</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@salomonakoa44/how-to-enable-swagger-in-net-10-step-by-step-guide-video-ad03e9d19451?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://medium.com/@salomonakoa44/how-to-enable-swagger-in-net-10-step-by-step-guide-video-ad03e9d19451?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">When building APIs in .NET, testing endpoints manually can quickly become frustrating.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@salomonakoa44/how-to-enable-swagger-in-net-10-step-by-step-guide-video-ad03e9d19451?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1366/1*3v_6USi275CkA6XsuHoKjg.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://news.google.com/rss/articles/CBMiqgFBVV95cUxNZEh2MHBrMElBY0JZcDhXVlI2WHV5RnZLeUtuem1ITk42WFh4ZWQzanhjSjg4RzZ6OXF4bmNhbXJnT2ZCUlVHNXNQVVFfRHlUNjNqVU9SQUVsTUNCRkFUTkFkQ3hvd0d1UkMyLThhQV9YSVVEbEp4Q3JjcTJGc2lwQ0hBaFgtY0FHdUZSRXd2RTJsN0NFX2RIRFpWWlI4R0VIU0ZsYklndzQ3dw?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Microsoft calls time on ASP.NET Core 2.3 on .NET Framework</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://news.google.com/rss/articles/CBMiqgFBVV95cUxNZEh2MHBrMElBY0JZcDhXVlI2WHV5RnZLeUtuem1ITk42WFh4ZWQzanhjSjg4RzZ6OXF4bmNhbXJnT2ZCUlVHNXNQVVFfRHlUNjNqVU9SQUVsTUNCRkFUTkFkQ3hvd0d1UkMyLThhQV9YSVVEbEp4Q3JjcTJGc2lwQ0hBaFgtY0FHdUZSRXd2RTJsN0NFX2RIRFpWWlI4R0VIU0ZsYklndzQ3dw?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://news.google.com/rss/articles/CBMiqgFBVV95cUxNZEh2MHBrMElBY0JZcDhXVlI2WHV5RnZLeUtuem1ITk42WFh4ZWQzanhjSjg4RzZ6OXF4bmNhbXJnT2ZCUlVHNXNQVVFfRHlUNjNqVU9SQUVsTUNCRkFUTkFkQ3hvd0d1UkMyLThhQV9YSVVEbEp4Q3JjcTJGc2lwQ0hBaFgtY0FHdUZSRXd2RTJsN0NFX2RIRFpWWlI4R0VIU0ZsYklndzQ3dw?oc=5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Microsoft calls time on ASP.NET Core 2.3 on .NET Framework</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://news.google.com/rss/articles/CBMiqgFBVV95cUxNZEh2MHBrMElBY0JZcDhXVlI2WHV5RnZLeUtuem1ITk42WFh4ZWQzanhjSjg4RzZ6OXF4bmNhbXJnT2ZCUlVHNXNQVVFfRHlUNjNqVU9SQUVsTUNCRkFUTkFkQ3hvd0d1UkMyLThhQV9YSVVEbEp4Q3JjcTJGc2lwQ0hBaFgtY0FHdUZSRXd2RTJsN0NFX2RIRFpWWlI4R0VIU0ZsYklndzQ3dw?oc=5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://lh3.googleusercontent.com/J6_coFbogxhRI9iM864NL_liGXvsQp2AupsKei7z0cNNfDvGUmWUy20nuUhkREQyrpY4bEeIBuc=s0-w300-rw" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://muhammadirwanto.medium.com/do-you-still-need-the-repository-pattern-in-modern-net-3446d553edef?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Do You Still Need the Repository Pattern in Modern .NET?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://muhammadirwanto.medium.com/do-you-still-need-the-repository-pattern-in-modern-net-3446d553edef?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://muhammadirwanto.medium.com/do-you-still-need-the-repository-pattern-in-modern-net-3446d553edef?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In modern .NET development, it’s becoming increasingly common to question long-established patterns. One of them is the Repository Pattern…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://muhammadirwanto.medium.com/do-you-still-need-the-repository-pattern-in-modern-net-3446d553edef?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/1408/1*3hNb2uq7uYmbXHyorWQ84g.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://medium.com/@jesywilson70/why-your-business-needs-asp-net-developers-for-digital-transformation-73e49fb20ec3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Why Your Business Needs ASP.NET Developers for Digital Transformation</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://medium.com/@jesywilson70/why-your-business-needs-asp-net-developers-for-digital-transformation-73e49fb20ec3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://medium.com/@jesywilson70/why-your-business-needs-asp-net-developers-for-digital-transformation-73e49fb20ec3?source=rss------dotnet-5</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">In today’s rapidly evolving digital landscape, businesses must continuously adapt to stay competitive. Digital transformation is no longer…</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://medium.com/@jesywilson70/why-your-business-needs-asp-net-developers-for-digital-transformation-73e49fb20ec3?source=rss------dotnet-5&utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://cdn-images-1.medium.com/max/2600/1*HfdA1NCZfvZ8j_ZzMa-OSA.jpeg" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://www.c-sharpcorner.com/article/difference-between-readonly-and-const-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Difference Between readonly and const in C# with Examples?</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://www.c-sharpcorner.com/article/difference-between-readonly-and-const-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://www.c-sharpcorner.com/article/difference-between-readonly-and-const-in-c-sharp-with-examples/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">Understand the crucial differences between `readonly` and `const` in C#. Learn when to use each keyword for optimal code clarity, performance, and maintainability in C# applications.</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://www.c-sharpcorner.com/article/difference-between-readonly-and-const-in-c-sharp-with-examples/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://www.c-sharpcorner.com/images/csharp-corner-new.png" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table><table><tbody><tr><td align="center" valign="top" style="padding:10px 2px 10px 2px"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="center" valign="top" style="padding:7px 6px;background-color:#fff;border:2px solid #f1f1f1;border-radius:10px"><table border="0" cellspacing="0" cellpadding="0" align="right" width="100%"><tbody><tr><td align="center" valign="top" style="padding:0 0"><table width="100%" border="0" cellspacing="0" cellpadding="0" align="center"><tbody><tr><td align="left" valign="top"><a href="https://devblogs.microsoft.com/dotnet/pin-clustering-in-dotnet-maui-maps/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none;color:#2d2d2d"><p style="padding:0;margin:0;font-size:18px;line-height:21px;font-weight:bold;color:#2d2d2d;padding-bottom:6px">Pin Clustering in .NET MAUI Maps</p></a></td></tr><tr><td align="left" valign="bottom" style="vertical-align:bottom;padding-top:12px"><p style="padding:0;margin:0;font-size:14px;line-height:17px;color:#3a9bf3;padding-bottom:6px;word-break:break-word"><a href="https://devblogs.microsoft.com/dotnet/pin-clustering-in-dotnet-maui-maps/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none">https://devblogs.microsoft.com/dotnet/pin-clustering-in-dotnet-maui-maps/</a></p><p style="padding:0;margin:0;font-size:16px;line-height:17px;padding-bottom:6px;word-break:break-word">.NET MAUI 11 adds pin clustering to the Map control, automatically grouping nearby pins into cluster markers. Learn how to enable clustering, create separate clustering groups, and handle cluster taps...</p></td></tr></tbody></table></td><td align="center" valign="top" style="width:35%;min-height:100px;padding:0 0 0 12px;vertical-align:middle" class="hide-on-mobile"><a href="https://devblogs.microsoft.com/dotnet/pin-clustering-in-dotnet-maui-maps/?utm_source=dotnetnews.beehiiv.com&utm_medium=newsletter&utm_campaign=the-net-news-daily-issue-440" style="text-decoration:none"><img src="https://devblogs.microsoft.com/dotnet/wp-content/uploads/sites/10/2026/04/Cover-Image-20.webp" width="100%" style="display:block" class="hide-on-mobile" data-bit="iit"></a></td></tr></tbody></table></td></tr></tbody></table></td></tr></tbody></table></div></div><div class='beehiiv__footer'><br class='beehiiv__footer__break'><hr class='beehiiv__footer__line'><a target="_blank" class="beehiiv__footer_link" style="text-align: center;" href="https://www.beehiiv.com/?utm_campaign=b18c4dcd-5498-425f-ac2d-2c5516c204f9&utm_medium=post_rss&utm_source=net_news">Powered by beehiiv</a></div></div>
  ]]></content:encoded>
</item>

  </channel>
</rss>
