<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Yass- Cloud and AI Explorer</title>
    <description>The latest articles on DEV Community by Yass- Cloud and AI Explorer (@yass_cloudtech).</description>
    <link>https://dev.to/yass_cloudtech</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4177841%2Fb8b6b4ef-e24d-4ce1-810c-b41e7d0dd9f4.webp</url>
      <title>DEV Community: Yass- Cloud and AI Explorer</title>
      <link>https://dev.to/yass_cloudtech</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yass_cloudtech"/>
    <language>en</language>
    <item>
      <title>Can You Pass This .NET 11 Challenge? 3 Tricky EF Core 11 &amp; ASP.NET Core 11 Scenarios (20-Question Quiz)</title>
      <dc:creator>Yass- Cloud and AI Explorer</dc:creator>
      <pubDate>Mon, 26 Oct 2026 20:49:33 +0000</pubDate>
      <link>https://dev.to/yass_cloudtech/can-you-pass-this-net-11-challenge-3-tricky-ef-core-11-aspnet-core-11-scenarios-20-question-2ec1</link>
      <guid>https://dev.to/yass_cloudtech/can-you-pass-this-net-11-challenge-3-tricky-ef-core-11-aspnet-core-11-scenarios-20-question-2ec1</guid>
      <description>&lt;p&gt;Following the great discussions on our recent guide covering &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/whats-new-ef-core-11-aspnet-core-11.html" rel="noopener noreferrer"&gt;What's New in EF Core 11 and ASP.NET Core 11&lt;/a&gt;&lt;/strong&gt;, it's clear that while &lt;code&gt;.NET 11&lt;/code&gt; brings fantastic performance gains, its subtle breaking changes will catch many teams off guard in production.&lt;/p&gt;

&lt;p&gt;To help developers audit their code before the November 2026 GA release, I created a full &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/ef-core-11-aspnet-core-11-practice-test.html" rel="noopener noreferrer"&gt;20-Question Interactive Practice Test &amp;amp; Cheat Sheet on Iwalen&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Here are &lt;strong&gt;3 tricky real-world scenarios&lt;/strong&gt; from the test. Can you spot the bug or the right architectural fix? Drop your answers in the comments before checking the key! 👇&lt;/p&gt;




&lt;h3&gt;
  
  
  Challenge 1: The Disappearing Vectors in SQL Server 2025
&lt;/h3&gt;

&lt;p&gt;Your RAG service re-ranks search results in C# after a database lookup. Right after upgrading to EF Core 11, the re-ranker throws an exception because &lt;code&gt;doc.Embedding&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Document&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;required&lt;/span&gt; &lt;span class="kt"&gt;string&lt;/span&gt; &lt;span class="n"&gt;Title&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TypeName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"vector(1536)"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;SqlVector&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Embedding&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;doc&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Documents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;FirstAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt; &lt;span class="p"&gt;==&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;score&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;Reranker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Score&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;doc&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Embedding&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;queryVector&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt; &lt;span class="c1"&gt;// doc.Embedding is NULL in EF Core 11!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What is the fix?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A)&lt;/strong&gt; Call &lt;code&gt;.Include(d =&amp;gt; d.Embedding)&lt;/code&gt; to include the vector column.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B)&lt;/strong&gt; EF Core 11 omits &lt;code&gt;SqlVector&amp;lt;T&amp;gt;&lt;/code&gt; columns from default entity &lt;code&gt;SELECT&lt;/code&gt; statements; project the column explicitly via &lt;code&gt;.Select(d =&amp;gt; new { d.Id, d.Embedding })&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C)&lt;/strong&gt; Change the property type to &lt;code&gt;SqlVector&amp;lt;float&amp;gt;?&lt;/code&gt; because EF Core 11 only skips non-nullable vectors.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;D)&lt;/strong&gt; Await a lazy-loading proxy call because vectors are now lazy-loaded on property access.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Challenge 2: The Staging Authentication Crash
&lt;/h3&gt;

&lt;p&gt;After upgrading an order service to EF Core 11, all integration tests pass locally against a Docker container with password auth. But in Azure staging, startup crashes immediately with this connection string:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Server=tcp:contoso-sql.database.windows.net;Database=Orders;Authentication=Active Directory Managed Identity;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No C# code changed during the upgrade. What is missing?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A)&lt;/strong&gt; Managed Identity was removed from SqlClient 7.0; you must migrate to SQL authentication.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B)&lt;/strong&gt; You must set &lt;code&gt;UseCompatibilityLevel(150)&lt;/code&gt; in &lt;code&gt;UseSqlServer(...)&lt;/code&gt; because level 160 breaks Entra ID tokens.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C)&lt;/strong&gt; You must install &lt;code&gt;Microsoft.Data.SqlClient.Extensions.Azure&lt;/code&gt;, because &lt;code&gt;SqlClient&lt;/code&gt; 7.0 unbundled Entra ID dependencies from the core package.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;D)&lt;/strong&gt; Switch to &lt;code&gt;Authentication=Active Directory Password&lt;/code&gt;, which remains in core SqlClient 7.0.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Challenge 3: The Cross-Assembly Validation Trap
&lt;/h3&gt;

&lt;p&gt;You split your solution into a host project (&lt;code&gt;Contoso.Api.dll&lt;/code&gt;) and a class library containing your Minimal API route groups (&lt;code&gt;Contoso.Orders.Endpoints.dll&lt;/code&gt;):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Host project Program.cs:&lt;/span&gt;
&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddValidation&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapOrderEndpoints&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="c1"&gt;// In Contoso.Orders.Endpoints.dll:&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;OrderEndpoints&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;static&lt;/span&gt; &lt;span class="k"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;MapOrderEndpoints&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;this&lt;/span&gt; &lt;span class="n"&gt;IEndpointRouteBuilder&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
        &lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapPost&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/orders"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;CreateOrderRequest&lt;/span&gt; &lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;TypedResults&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Ok&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;req&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;sealed&lt;/span&gt; &lt;span class="k"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;CreateOrderRequest&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Required&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;Range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="m"&gt;100&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt; &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="n"&gt;Quantity&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When a client sends &lt;code&gt;{ "quantity": 500 }&lt;/code&gt;, the endpoint returns &lt;code&gt;200 OK&lt;/code&gt; instead of &lt;code&gt;400 Bad Request&lt;/code&gt;. Why?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;A)&lt;/strong&gt; The validation source generator only scans types in the assembly where &lt;code&gt;AddValidation()&lt;/code&gt; is called; you must call &lt;code&gt;services.AddValidation()&lt;/code&gt; inside the endpoints assembly.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;B)&lt;/strong&gt; DataAnnotations in class libraries require registering &lt;code&gt;builder.Services.AddControllers()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;C)&lt;/strong&gt; You must add &lt;code&gt;[assembly: ValidatableType]&lt;/code&gt; inside the host &lt;code&gt;Program.cs&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;D)&lt;/strong&gt; Minimal API validation is disabled in Production by default.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Ready to Test Yourself on All 20 Scenarios?
&lt;/h2&gt;

&lt;p&gt;The full test covers 17 additional scenarios including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Complex types on TPT/TPC hierarchies with &lt;code&gt;.ToJson()&lt;/code&gt; &amp;amp; lambda chained indexing&lt;/li&gt;
&lt;li&gt;Cosmos DB unmapped JSON data loss &amp;amp; synchronous I/O removal&lt;/li&gt;
&lt;li&gt;SQL Server compatibility level &lt;code&gt;160&lt;/code&gt; (&lt;code&gt;LEAST&lt;/code&gt;/&lt;code&gt;GREATEST&lt;/code&gt;) and &lt;code&gt;170&lt;/code&gt; (&lt;code&gt;JSON_CONTAINS&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;Stripping no-op SQL &lt;code&gt;CAST&lt;/code&gt;s and &lt;code&gt;FullJoin&lt;/code&gt; LINQ queries&lt;/li&gt;
&lt;li&gt;OpenAPI 3.2 default, binary response schemas (&lt;code&gt;FileContentResult&lt;/code&gt;), and &lt;code&gt;anyOf&lt;/code&gt; responses&lt;/li&gt;
&lt;li&gt;Replacing the deleted &lt;code&gt;ConcurrencyLimiter&lt;/code&gt; middleware&lt;/li&gt;
&lt;li&gt;Built-in OpenTelemetry HTTP server span tags&lt;/li&gt;
&lt;li&gt;Blazor &lt;code&gt;DisplayName&lt;/code&gt; component precedence &amp;amp; QuickGrid URL-based pagination/sorting&lt;/li&gt;
&lt;li&gt;Static SSR header-based CSRF protection (&lt;code&gt;Sec-Fetch-Site&lt;/code&gt;) vs token middleware&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Take the complete test, get an instant score breakdown, and inspect detailed architectural explanations for every option:&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/ef-core-11-aspnet-core-11-practice-test.html" rel="noopener noreferrer"&gt;Take the Free 20-Question .NET 11 Practice Test on Iwalen&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  More from our .NET 11 &amp;amp; C# 15 Series:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📖 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/whats-new-ef-core-11-aspnet-core-11.html" rel="noopener noreferrer"&gt;What's New in EF Core 11 and ASP.NET Core 11: Complete Guide&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;📖 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/whats-new-in-csharp-15-features.html" rel="noopener noreferrer"&gt;What's New in C# 15: Full Feature Guide &amp;amp; Code Examples&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/csharp-15-dotnet-11-interview-questions.html" rel="noopener noreferrer"&gt;Top 20 C# 15 &amp;amp; .NET 11 Senior Interview Questions&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🎯 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/csharp-15-dotnet-11-practice-questions.html" rel="noopener noreferrer"&gt;20 Practice Questions on C# 15 &amp;amp; .NET 11&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dotnet</category>
      <category>csharp</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>EF Core 11 and ASP.NET Core 11 Changes That Will Bite You in Production (.NET 11)</title>
      <dc:creator>Yass- Cloud and AI Explorer</dc:creator>
      <pubDate>Sat, 24 Oct 2026 16:54:23 +0000</pubDate>
      <link>https://dev.to/yass_cloudtech/7-ef-core-11-and-aspnet-core-11-changes-that-will-bite-you-in-production-net-11-1p1b</link>
      <guid>https://dev.to/yass_cloudtech/7-ef-core-11-and-aspnet-core-11-changes-that-will-bite-you-in-production-net-11-1p1b</guid>
      <description>&lt;p&gt;With &lt;strong&gt;.NET 11 Release Candidate 2&lt;/strong&gt; out with a go-live license ahead of the November 2026 GA launch, many teams are preparing to bump their target frameworks from &lt;code&gt;net10.0&lt;/code&gt; to &lt;code&gt;net11.0&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;While C# 15 gets most of the spotlight (see our &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/whats-new-in-csharp-15-features.html" rel="noopener noreferrer"&gt;What's New in C# 15 Full Feature Guide&lt;/a&gt;&lt;/strong&gt;), the runtime and framework updates inside &lt;strong&gt;EF Core 11&lt;/strong&gt; and &lt;strong&gt;ASP.NET Core 11&lt;/strong&gt; contain major new capabilities—along with several subtle breaking changes that can silently break production workloads.&lt;/p&gt;

&lt;p&gt;Here is a quick breakdown of the biggest changes you need to know before upgrading.&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/whats-new-ef-core-11-aspnet-core-11.html" rel="noopener noreferrer"&gt;Read the complete EF Core 11 &amp;amp; ASP.NET Core 11 Guide (with Comparison Tables &amp;amp; 11-Step Upgrade Checklist) on Iwalen&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1. &lt;code&gt;SqlVector&amp;lt;T&amp;gt;&lt;/code&gt; Columns Now Return &lt;code&gt;null&lt;/code&gt; by Default (EF Core 11)
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The Problem in EF Core 10:&lt;/strong&gt; Vector properties were loaded on every entity query just like strings or ints. Because embeddings carry hundreds or thousands of &lt;code&gt;float&lt;/code&gt; values (e.g., 1,536 dimensions), routine entity queries dragged massive payloads across the wire even when you never read the vector in C#.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Changed in EF Core 11:&lt;/strong&gt; &lt;code&gt;SqlVector&amp;lt;T&amp;gt;&lt;/code&gt; properties are now omitted from default entity &lt;code&gt;SELECT&lt;/code&gt; statements, leaving the property &lt;code&gt;null&lt;/code&gt; on materialized entities. (In the EF team's benchmarks, this made standard queries &lt;strong&gt;9x faster&lt;/strong&gt; locally and &lt;strong&gt;22x faster&lt;/strong&gt; against remote Azure SQL).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Entity property (SQL Server 2025+):&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nf"&gt;Column&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;TypeName&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"vector(1536)"&lt;/span&gt;&lt;span class="p"&gt;)]&lt;/span&gt;
&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="n"&gt;SqlVector&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;float&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;Embedding&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;get&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;set&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;docs&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Documents&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;OrderBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Title&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;ToListAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="c1"&gt;// EF Core 10: docs[0].Embedding contained the 1536-float vector&lt;/span&gt;
&lt;span class="c1"&gt;// EF Core 11: docs[0].Embedding is null (column omitted from SELECT)&lt;/span&gt;

&lt;span class="c1"&gt;// Need the vector values in C#? Project the column explicitly:&lt;/span&gt;
&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;vectors&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Documents&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Select&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Id&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Embedding&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToListAsync&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Gotcha:&lt;/strong&gt; Because &lt;code&gt;SqlVector&amp;lt;T&amp;gt;&lt;/code&gt; is often declared without &lt;code&gt;?&lt;/code&gt;, the compiler won't warn you. Grep your codebase for reads of &lt;code&gt;.Embedding&lt;/code&gt; and convert them to explicit &lt;code&gt;.Select(...)&lt;/code&gt; projections!&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  2. Complex Types Now Support JSON, TPT, TPC, and Direct Indexing (EF Core 11)
&lt;/h2&gt;

&lt;p&gt;In EF Core 10, complex types and JSON columns couldn't be used on entities mapped with Table-per-Type (TPT) or Table-per-Concrete-Type (TPC) inheritance, and configuring nested properties required hopping through &lt;code&gt;ComplexProperty(...)&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In &lt;strong&gt;EF Core 11&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can combine &lt;code&gt;UseTptMappingStrategy()&lt;/code&gt; or &lt;code&gt;UseTpcMappingStrategy()&lt;/code&gt; with complex types and &lt;code&gt;.ToJson()&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;You can configure and index nested properties directly via lambda chaining:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// EF Core 11: chain member access directly inside Property()&lt;/span&gt;
&lt;span class="n"&gt;modelBuilder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Entity&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Customer&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;()&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Property&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Address&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PostalCode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;HasMaxLength&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="m"&gt;12&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Index a field inside a complex type directly:&lt;/span&gt;
&lt;span class="n"&gt;modelBuilder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Entity&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Customer&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;().&lt;/span&gt;&lt;span class="nf"&gt;HasIndex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Address&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;PostalCode&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="c1"&gt;// Relational + JSON: index a path inside a complex collection&lt;/span&gt;
&lt;span class="n"&gt;modelBuilder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Entity&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Order&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;().&lt;/span&gt;&lt;span class="nf"&gt;ComplexCollection&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;o&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;o&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Items&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;ToJson&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="n"&gt;modelBuilder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Entity&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;Order&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;().&lt;/span&gt;&lt;span class="nf"&gt;HasIndex&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Items[].Sku"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. &lt;code&gt;Microsoft.Data.SqlClient&lt;/code&gt; 7.0 Splits Out Entra ID Authentication
&lt;/h2&gt;

&lt;p&gt;EF Core 11 upgrades to &lt;code&gt;Microsoft.Data.SqlClient&lt;/code&gt; 7.0, which removes the transitive Azure and Entra ID authentication dependencies (&lt;code&gt;Azure.Identity&lt;/code&gt;, &lt;code&gt;Microsoft.Identity.Client&lt;/code&gt;) from the core package.&lt;/p&gt;

&lt;p&gt;If your production connection string uses &lt;code&gt;ActiveDirectoryDefault&lt;/code&gt;, &lt;code&gt;ActiveDirectoryManagedIdentity&lt;/code&gt;, or &lt;code&gt;ActiveDirectoryServicePrincipal&lt;/code&gt;, your app will fail at runtime unless you explicitly install the new extension package:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight xml"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;PackageReference&lt;/span&gt; &lt;span class="na"&gt;Include=&lt;/span&gt;&lt;span class="s"&gt;"Microsoft.Data.SqlClient.Extensions.Azure"&lt;/span&gt; &lt;span class="na"&gt;Version=&lt;/span&gt;&lt;span class="s"&gt;"7.0.0"&lt;/span&gt; &lt;span class="nt"&gt;/&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;(Note: Local development against a Docker SQL container with password auth won't catch this—test Managed Identity in staging!)&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Cosmos DB Drops Unmapped JSON Properties on Save (High Impact!)
&lt;/h2&gt;

&lt;p&gt;Because EF Core 11 switched the Cosmos DB provider from &lt;code&gt;Newtonsoft.Json&lt;/code&gt; to &lt;code&gt;System.Text.Json&lt;/code&gt;, the hidden &lt;code&gt;__jObject&lt;/code&gt; shadow property is gone. &lt;/p&gt;

&lt;p&gt;Previously, unmapped JSON properties in a Cosmos document were preserved in &lt;code&gt;__jObject&lt;/code&gt; and written back on &lt;code&gt;SaveChangesAsync()&lt;/code&gt;. In &lt;strong&gt;EF Core 11&lt;/strong&gt;, unmapped properties are ignored on read and &lt;strong&gt;permanently lost&lt;/strong&gt; when the entity is saved. Additionally, synchronous Cosmos I/O (&lt;code&gt;ToList()&lt;/code&gt;, &lt;code&gt;SaveChanges()&lt;/code&gt;, &lt;code&gt;EnsureCreated()&lt;/code&gt;) now throws unconditionally with no opt-in switch.&lt;/p&gt;




&lt;h2&gt;
  
  
  5. End-to-End Async Validation &amp;amp; Localization in Minimal APIs (ASP.NET Core 11)
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;[ValidatableType]&lt;/code&gt; and &lt;code&gt;[SkipValidation]&lt;/code&gt; have graduated from experimental status (no more &lt;code&gt;ASP0029&lt;/code&gt; warning suppressions!), and &lt;code&gt;AddValidation()&lt;/code&gt; now supports asynchronous validators via &lt;code&gt;AsyncValidationAttribute&lt;/code&gt; and &lt;code&gt;IAsyncValidatableObject&lt;/code&gt; alongside automatic resource localization:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight csharp"&gt;&lt;code&gt;&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddLocalization&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// Registers IStringLocalizerFactory&lt;/span&gt;
&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;AddValidation&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;   &lt;span class="c1"&gt;// .NET 11 wires up localization automatically&lt;/span&gt;
&lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Services&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;AddScoped&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;IUserDirectory&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;SqlUserDirectory&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;();&lt;/span&gt;

&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;app&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="n"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Build&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;MapPost&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"/signup"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;SignupRequest&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;=&amp;gt;&lt;/span&gt;
    &lt;span class="n"&gt;TypedResults&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Created&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;$"/users/&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;Username&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;request&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;

&lt;span class="n"&gt;app&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Run&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Cross-Assembly Trap:&lt;/strong&gt; The validation source generator only discovers types in the assembly where &lt;code&gt;AddValidation()&lt;/code&gt; is called. If your Minimal API endpoints live in a separate class library, expose an extension method in that assembly that calls &lt;code&gt;services.AddValidation()&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  6. &lt;code&gt;ConcurrencyLimiter&lt;/code&gt; Removed &amp;amp; OpenAPI Defaults to v3.2
&lt;/h2&gt;

&lt;p&gt;Two major ASP.NET Core 11 shifts to audit before upgrading:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;ConcurrencyLimiter&lt;/code&gt; Middleware Removed:&lt;/strong&gt; &lt;code&gt;UseConcurrencyLimiter()&lt;/code&gt;, &lt;code&gt;AddQueuePolicy()&lt;/code&gt;, and &lt;code&gt;AddStackPolicy()&lt;/code&gt; are gone in &lt;code&gt;net11.0&lt;/code&gt;. Migrate to the built-in rate-limiting middleware (&lt;code&gt;AddRateLimiter&lt;/code&gt; -&amp;gt; &lt;code&gt;AddConcurrencyLimiter&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenAPI 3.2 by Default:&lt;/strong&gt; &lt;code&gt;OpenApiOptions.OpenApiVersion&lt;/code&gt; now defaults to &lt;code&gt;OpenApiSpecVersion.OpenApi3_2&lt;/code&gt; (powered by &lt;code&gt;Microsoft.OpenApi&lt;/code&gt; 3.x), preserves multiple &lt;code&gt;ProducesResponseType&lt;/code&gt; declarations per status code using &lt;code&gt;anyOf&lt;/code&gt;, and supports binary file response schemas (&lt;code&gt;FileContentResult&lt;/code&gt;).&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  7. Built-In OpenTelemetry HTTP Tags Out of the Box
&lt;/h2&gt;

&lt;p&gt;In .NET 10, &lt;code&gt;SuppressActivityOpenTelemetryData&lt;/code&gt; defaulted to &lt;code&gt;true&lt;/code&gt;. In &lt;strong&gt;ASP.NET Core 11&lt;/strong&gt;, it defaults to &lt;code&gt;false&lt;/code&gt;, meaning the framework emits standard OpenTelemetry HTTP server-span tags (&lt;code&gt;http.request.method&lt;/code&gt;, &lt;code&gt;http.response.status_code&lt;/code&gt;, &lt;code&gt;http.route&lt;/code&gt;, etc.) automatically without needing &lt;code&gt;OpenTelemetry.Instrumentation.AspNetCore&lt;/code&gt;. Make sure to upgrade your instrumentation package if you use one so you don't get duplicate tags!&lt;/p&gt;




&lt;h2&gt;
  
  
  Read the Full Deep-Dive &amp;amp; 11-Step Upgrade Checklist
&lt;/h2&gt;

&lt;p&gt;This post only scratches the surface. In the full technical guide, we cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Full comparison matrix:&lt;/strong&gt; .NET 10 vs. .NET 11 across EF Core &amp;amp; ASP.NET Core&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQL Cleanups:&lt;/strong&gt; Stripping no-op &lt;code&gt;CAST&lt;/code&gt;s, split-query join pruning, and SQL Server compatibility level &lt;code&gt;160&lt;/code&gt; / &lt;code&gt;170&lt;/code&gt; (&lt;code&gt;JSON_PATH_EXISTS&lt;/code&gt;, &lt;code&gt;JSON_CONTAINS&lt;/code&gt;, &lt;code&gt;FullJoin&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Blazor in .NET 11:&lt;/strong&gt; &lt;code&gt;&amp;lt;DisplayName&amp;gt;&lt;/code&gt;, QuickGrid URL pagination &amp;amp; &lt;code&gt;OnRowClick&lt;/code&gt;, and automatic header-based CSRF protection&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Step-by-step .NET 11 Production Upgrade Checklist&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/whats-new-ef-core-11-aspnet-core-11.html" rel="noopener noreferrer"&gt;Read the Full Guide: What's New in EF Core 11 and ASP.NET Core 11 (.NET 11)&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  More from our .NET 11 &amp;amp; C# 15 Series:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;📖 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/whats-new-in-csharp-15-features.html" rel="noopener noreferrer"&gt;What's New in C# 15: Full Feature Guide &amp;amp; Code Examples&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;🧠 &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/csharp-15-dotnet-11-interview-questions.html" rel="noopener noreferrer"&gt;Top 20 C# 15 &amp;amp; .NET 11 Senior Interview Questions&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/csharp-15-dotnet-11-practice-questions.html" rel="noopener noreferrer"&gt;C# 15 Practice Test: 20 Questions with Answers (.NET 11)&lt;/a&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>dotnet</category>
      <category>webdev</category>
      <category>programming</category>
      <category>csharp</category>
    </item>
    <item>
      <title>How to Prepare for Microsoft Exam AI-103: 2026 Blueprint &amp; Free 180-Question Practice Hub</title>
      <dc:creator>Yass- Cloud and AI Explorer</dc:creator>
      <pubDate>Sun, 11 Oct 2026 21:25:40 +0000</pubDate>
      <link>https://dev.to/yass_cloudtech/how-to-prepare-for-microsoft-exam-ai-103-2026-blueprint-free-180-question-practice-hub-1p92</link>
      <guid>https://dev.to/yass_cloudtech/how-to-prepare-for-microsoft-exam-ai-103-2026-blueprint-free-180-question-practice-hub-1p92</guid>
      <description>&lt;p&gt;Microsoft's &lt;strong&gt;AI-102 exam is officially retired&lt;/strong&gt;, and the new active certification is &lt;strong&gt;Exam AI-103: Developing AI Apps and Agents on Azure&lt;/strong&gt; (earning you the &lt;em&gt;Microsoft Certified: Azure AI Apps and Agents Developer Associate&lt;/em&gt; credential).&lt;/p&gt;

&lt;p&gt;If you are studying from legacy AI-102 guides or generic cloud courses, you're preparing for outdated tech. AI-103 is fundamentally re-architected around:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Microsoft Foundry platform &amp;amp; unified SDK&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Autonomous AI Agents &amp;amp; Semantic Kernel orchestration&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Production RAG pipelines with Document Intelligence v4.0 GA &amp;amp; Content Understanding&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Responsible AI evaluation frameworks (groundedness, coherence, safety)&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To help developers prepare without hitting paywalls, I built a comprehensive &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/ai-103-study-guide-180-practice-questions.html" rel="noopener noreferrer"&gt;Complete AI-103 Study Guide &amp;amp; 180-Question Practice Hub&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  The AI-103 Exam Blueprint Breakdown
&lt;/h3&gt;

&lt;p&gt;The exam consists of 40–60 questions, has a 120-minute limit, and requires a passing score of 700/1000. Here is where the actual points are distributed:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Domain 1: Plan and prepare to develop AI apps and agents (~15%)&lt;/strong&gt; — Foundry Hub vs Project structure, RBAC, Managed VNet, and Key Vault integration.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain 2: Develop Generative AI solutions with Foundry (~30%)&lt;/strong&gt; — Azure OpenAI deployments, prompt caching, PTU vs PAYG, and content filtering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain 3: Develop AI agents and agentic workflows (~25%)&lt;/strong&gt; — Azure AI Agent Service, Semantic Kernel plugins, and multi-agent patterns (Sequential, Concurrent, Magentic).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain 4: Document intelligence and RAG pipelines (~20%)&lt;/strong&gt; — Document Intelligence v4.0 models, Azure AI Search hybrid search, semantic ranker, and knowledge stores.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Domain 5: Responsible AI, evaluation, and monitoring (~10%)&lt;/strong&gt; — Groundedness, coherence, fluency metrics, and Prompt Shields.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Top Exam Traps to Watch Out For
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Content Understanding vs. Document Intelligence v4.0:&lt;/strong&gt; Document Intelligence is document-centric OCR and layout analysis (now with Markdown output mode). Content Understanding in Microsoft Foundry is the multimodal tool specifically designed for RAG grounding with bounding-box coordinates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Ranker vs. Vector Search:&lt;/strong&gt; Vector search uses embedding similarity, whereas Semantic Ranker is a cross-encoder that re-scores top candidates using deep language understanding. Hybrid search (BM25 + vector) combined with Semantic Ranker is Microsoft's gold standard for mixed queries.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent State Management:&lt;/strong&gt; Stateless single-turn agents differ from multi-turn agents on Azure AI Agent Service, where thread state is persisted server-side.&lt;/li&gt;
&lt;/ol&gt;




&lt;h3&gt;
  
  
  Full 9-Part Practice Curriculum (180 Questions)
&lt;/h3&gt;

&lt;p&gt;Instead of passive reading, you can test your knowledge across 9 dedicated scenario modules (20 questions each) with deep architectural explanations for every option:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/09/ai-103-choose-foundry-models-practice-questions.html" rel="noopener noreferrer"&gt;Part 1: Choosing Models &amp;amp; Foundry Foundations&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/09/ai-103-setting-up-securing-foundry-solutions.html" rel="noopener noreferrer"&gt;Part 2: Setting Up &amp;amp; Securing Foundry Solutions&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/09/ai-103-responsible-ai-safety-governance.html" rel="noopener noreferrer"&gt;Part 3: Responsible AI, Safety &amp;amp; Governance&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/09/ai-103-building-rag-generative-ai-foundry.html" rel="noopener noreferrer"&gt;Part 4: Building RAG &amp;amp; Generative AI Pipelines&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/09/ai-103-building-orchestrating-ai-agents-foundry.html" rel="noopener noreferrer"&gt;Part 5: Building &amp;amp; Orchestrating AI Agents&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/09/ai-103-optimizing-operationalizing-genai.html" rel="noopener noreferrer"&gt;Part 6: Optimizing &amp;amp; Operationalizing Generative AI&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/09/ai-103-computer-vision-image-video-generation.html" rel="noopener noreferrer"&gt;Part 7: Computer Vision, GPT-image-1 &amp;amp; Sora&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/ai-103-text-analysis-speech-solutions.html" rel="noopener noreferrer"&gt;Part 8: Azure Language &amp;amp; Speech Solutions&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/ai-103-information-extraction-document-intelligence.html" rel="noopener noreferrer"&gt;Part 9: Information Extraction, RAG &amp;amp; Document Intelligence&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 You can access the complete master study guide, 4-week preparation roadmap, and all interactive test modules directly on &lt;strong&gt;&lt;a href="https://www.iwalen.com/2026/10/ai-103-study-guide-180-practice-questions.html" rel="noopener noreferrer"&gt;Iwalen.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Happy studying, and best of luck on your certification journey!&lt;/p&gt;

</description>
      <category>azure</category>
      <category>ai</category>
      <category>certification</category>
      <category>cloud</category>
    </item>
  </channel>
</rss>
