What's New in .NET — 2-day workshop

What's New in .NET 10 & .NET 11

Two days across four releases: .NET 10 with C# 14, and .NET 11 with C# 15. Day 1 is what you can adopt today. Day 2 is what you need to decide about.

Day 1 — Adopt now

.NET 10 & C# 14 LTS

Generally available and supported for three years. Everything here is production-ready and most of it you can turn on in an afternoon.

Open Day 1 →

Day 2 — Prepare & decide

.NET 11 & C# 15 RC

Release candidate, GA expected November 2026, and a standard-term release. Big language features — and a genuine support-window decision.

Open Day 2 →

Verified, not summarised

Every code sample in this workshop was compiled and run against .NET 10.0.12 and .NET 11.0.100-rc.1.26425.128 on the machine that built it. Where something doesn't work — and a few things genuinely don't — that's called out rather than glossed over.

Why the days split this way

The obvious split — one release per day — happens to also be the useful one, because it maps onto a real decision boundary rather than an arbitrary version number.

.NET 10 / C# 14.NET 11 / C# 15
StatusGenerally availableRelease candidate 1
ReleasedNovember 2025GA expected November 2026
SupportLTS 3 years, to 14 Nov 2028STS 24 months, to ~Nov 2028
Your question"When do we upgrade?""Do we take this one at all?"

Those are different conversations, so they get different days. Day 1 is stable and immediately actionable. Day 2 is forward-looking, still moving, and ends in a decision.

The labs carry across the days

Day 2's ASP.NET Core and EF Core labs are upgrades of the Day 1 labs. You build an API and a data model on .NET 10, then migrate them to .NET 11 — and hit the OpenAPI 3.1 → 3.2 breaking change yourself instead of reading about it on a slide.

Day 1 agenda .NET 10 C# 14

40 minPlatform, runtime & toolingCadence and support arithmetic, upgrade sequencing, breaking-change triage, file-based apps, CLI, and what the JIT now does with your allocations
53 minC# 14 languageExtension members, field, null-conditional assignment, first-class spans, partial membersC# 14
30 minLab 01 — C# 14Refactor a legacy type onto the new language features
45 min.NET 10 librariesPost-quantum cryptography, System.Text.Json strict mode, and the rest of the library surfaceFocus
30 minLab 02 — PQC & JSON hardeningML-KEM, ML-DSA, strict serialization
56 minASP.NET Core 10OpenAPI 3.1 by default, the transformer rewrite, XML doc comments, Minimal API validation, JSON Patch on System.Text.Json, SSEFocus
40 minLab 03 — Minimal API & OpenAPIBuild the API you'll migrate tomorrow
45 minEF Core 10Complex types, named query filters, JSON columns, and the query-translation changesFocus
30 minLab 04 — EF Core 10Complex types and named filters on SQLite
10 minWrap-upAdoption checklist, and the four changes that won't announce themselves

That is 4 hours 09 of content across 86 slides, plus 2 hours 10 of labs. A full day with breaks. If time runs short, the labs compress and the content does not — every lab ships with a worked solution.

Day 2 agenda .NET 11 RC C# 15

38 min.NET 11 runtimeRuntime-native async and its opt-in switch, what it means for libraries and diagnostics, raised hardware requirements, narrowing float conversions that now saturate, JIT and SIMD, AOT and trimming, and the STS decision
20 minLab 05 — Runtime asyncMake the state machines disappear — and see what doesn't change
58 minC# 15 languageUnion types and closed hierarchies in depth — runtime shape, identity traps, allocation cost, the absent-state hole, the expression-tree boundary that keeps unions out of EF Core queries — plus collection expression arguments and their with trap, extension indexers and memory safetyC# 15
40 minLab 06 — Unions & closed hierarchiesModel a domain with exhaustive matching
41 min.NET 11 librariesUnion serialization and round-tripping, the Zstandard family, IEEE 754 decimal floating point, LINQ FullJoin, the async validation surface, X25519 and DnsResolverFocus
25 minLab 07 — LibrariesRound-trip a union through JSON
46 minASP.NET Core 11OpenAPI 3.2 by default and exactly what changes in the document, pinning and parallel documents, unions in Minimal APIs, async validation, MCP templateFocus
25 minLab 08 — Migrate Lab 03.NET 10 → 11, and the OpenAPI break
49 minEF Core 11Where the new query operators really live, proving translation from generated SQL, the explicit-configuration break that only hits enterprise codebases, complex types, JSON columns, migrations in CI/CD, and a provider reality checkFocus
25 minLab 09 — Migrate Lab 04EF Core 10 → 11
23 min.NET 12 outlook & the decisionWhat's signalled, planning without a roadmap, and whether to take .NET 11 at all

That is 4 hours 15 of content across 88 slides, plus 2 hours 15 of labs — slightly more than Day 1.

Both days are timed against their real slide counts

Neither day is rounded up. Day 1 carries 86 content slides and Day 2 carries 88, and every module above is budgeted at the pace those slides actually take — which is how both reach roughly four hours before a single lab starts. Day 2 is an RC release, so it is also the day with the most “we measured this ourselves” content.

What's in scope — and what isn't

This workshop is scoped to server-side and data-access .NET, so it is deliberately narrower than a general "what's new" tour.

In focus
  • EF Core — complex types, JSON columns, query translation, migrations
  • ASP.NET Core — OpenAPI 3.1 and 3.2, validation, Minimal APIs
  • .NET libraries — post-quantum cryptography, System.Text.Json, compression, diagnostics
  • The languages — C# 14 and C# 15
Deliberately excluded
  • MAUI, Windows Forms, WPF
  • Blazor
  • F#, VB.NET

Worth knowing: roughly half of the official ASP.NET Core release notes for both releases is Blazor content. All of it has been filtered out here, which is why this covers more of what you actually use in less time.

.NET 12

There is a short outlook at the end of Day 2. Be aware that no .NET 12 documentation or preview exists yet — previews are expected to start in early 2027 — so that module covers directional signals and planning, not features. Anything you read online today claiming .NET 12 feature detail is speculation.

Before you arrive

The labs are hands-on. Please install these ahead of time.

InstallWhy
.NET 10 SDKDay 1 labs target net10.0
.NET 11 SDK (RC 1 or later)Day 2 labs target net11.0
An editorVisual Studio 2026, VS Code with the C# Dev Kit, or Rider
Install both SDKs — 11 alone is not enough

The .NET 11 SDK ships only net11.0 templates, so this fails on a machine that only has .NET 11:

dotnet new console --framework net10.0
# error: 'net10.0' is not a valid value for --framework

The .NET 11 SDK can happily build an existing net10.0 project — it just can't scaffold one. SDKs install side-by-side and won't disturb each other.

Optional, for full coverage

  • Post-quantum cryptography needs OpenSSL 3.5+ or Windows CNG with PQC support. Lab 02 gates on IsSupported and still works if an algorithm is missing — which is realistic, because on Windows 11 25H2 ML-KEM and ML-DSA are available but SLH-DSA is not.
  • SQL Server vector search needs Azure SQL or SQL Server 2025. The runnable EF labs use SQLite; vector and JSON-index topics are walkthroughs.

Using this site

This page is the slide deck, the handout and the reference, depending on which mode you put it in. It's a single set of files with no network dependency — it works from a USB stick.

KeyDoes
PToggle presentation mode (one section at a time) and handout mode (continuous scroll)
← → SpacePrevious / next section, in presentation mode
NShow or hide speaker notes
TSwitch between dark and light theme
/Jump to the topic filter

Printing from handout mode produces a clean paper handout — speaker notes included, link targets expanded, code wrapped rather than clipped.

If you're delivering this: present from handout mode if the room wants to follow along on their own screens, and presentation mode if they're watching yours. The mode, theme and notes settings persist per browser, so set them once before you start.