Ondersteuning voor .NET 8 en .NET 9 stopt op 10 november 2026: zo upgradet u naar .NET 10

Microsoft stopt op 10 november 2026 met beveiligingsupdates voor .NET 8 en .NET 9. Wat dat betekent, wat er breekt en hoe u overstapt op .NET 10 LTS.

Vlado Pandžić

Vlado Pandžić · Oprichter · Senior .NET-architect
Gepubliceerd · 5 min lezen

Microsoft stopt op 10 november 2026 met de ondersteuning van .NET 8 en .NET 9. Vanaf die dag krijgt geen van beide versies nog beveiligingsupdates. Het doel van de upgrade is .NET 10, een release met langetermijnondersteuning (LTS) die tot november 2028 wordt ondersteund. Voor de meeste bedrijfsapplicaties duurt de upgrade dagen, geen maanden, als u weet waar u moet kijken.

Welke versies het betreft

Versie Support Einde support
.NET 8 LTS 10 november 2026
.NET 9 STS 10 november 2026
.NET 10 LTS november 2028

.NET 9 stopt op dezelfde dag als .NET 8, omdat releases met standaardondersteuning nu 24 maanden worden ondersteund in plaats van 18.

Wat het einde van de ondersteuning betekent

Applicaties op .NET 8 en .NET 9 blijven na 10 november gewoon draaien. Wat stopt:

  • Beveiligingsupdates. Kwetsbaarheden die na die datum worden gevonden, blijven in productie openstaan.
  • Technische ondersteuning van Microsoft.
  • Een schone audit. Beveiligingsscanners markeren niet-ondersteunde runtimes, en dat komt terug in beveiligingsvragenlijsten van klanten en bij certificeringen.

Ga direct van .NET 8 naar .NET 10

Een tussenstop bij .NET 9 is niet nodig. .NET 8 en .NET 10 zijn allebei LTS-releases en u kunt direct overstappen. Lees wel de breaking changes van zowel .NET 9 als .NET 10.

Checklist voor de upgrade

  1. Installeer de .NET 10 SDK en een ondersteunde IDE. Voor net10.0 is Visual Studio 2026 nodig; Visual Studio 2022 ondersteunt het niet. JetBrains Rider en VS Code werken ook.

  2. Werk global.json bij als de solution een SDK-versie vastlegt.

  3. Wijzig het target framework in elk project, of één keer in Directory.Build.props:

    <PropertyGroup>
      <TargetFramework>net10.0</TargetFramework>
    </PropertyGroup>
  4. Werk de Microsoft-pakketten bij (ASP.NET Core, EF Core, Microsoft.Extensions.*) naar 10.x en controleer daarna of elk pakket van derden een versie heeft die .NET 10 ondersteunt.

  5. Build en los de waarschuwingen op. Verouderde API’s verschijnen als waarschuwingen. Als waarschuwingen als fouten worden behandeld, zit hier het meeste werk.

  6. Draai de tests en controleer met de hand wat ze niet afdekken: opstarten, authenticatie, achtergrondtaken en datatoegang.

  7. Werk pipeline en hosting bij: CI-build-images, Docker-basisimages (mcr.microsoft.com/dotnet/aspnet:10.0), de ASP.NET Core Hosting Bundle op IIS of de runtime-stack in Azure App Service.

  8. Deploy eerst naar een testomgeving en houd de database de eerste uren na de productierelease in de gaten (zie EF Core hieronder).

Breaking changes om eerst te controleren

De lijsten van Microsoft zijn lang. Dit zijn de wijzigingen die zakelijke webapplicaties het vaakst raken.

SDK en build

  • dotnet restore controleert nu ook transitieve pakketten in projecten die op .NET 10 zijn gericht. Bekende kwetsbaarheden in de afhankelijkheden van uw afhankelijkheden verschijnen als waarschuwingen NU1901–NU1904, en als waarschuwingen als fouten gelden, stopt de build. Zoek de bron met dotnet nuget why en werk het pakket bij in plaats van de waarschuwing te verbergen.

ASP.NET Core 10

  • Cookie-loginredirects zijn uitgeschakeld voor bekende API-endpoints. In plaats van door te sturen naar de loginpagina geven API-endpoints nu 401 of 403 terug. Beter voor API’s, maar controleer frontends die op de redirect rekenden.
  • WebHostBuilder, IWebHost en WebHost zijn verouderd. Een Program.cs uit de tijd van ASP.NET Core 2 of 3 moet over naar het minimal hosting-model.
  • Razor-runtimecompilatie en IActionContextAccessor zijn verouderd.

Entity Framework Core 10

  • Collecties in queries zoals ids.Contains(x.Id) worden nu vertaald naar meerdere SQL-parameters in plaats van één JSON-parameter. Meestal sneller, maar meet queries die lange lijsten meegeven.
  • SQL-parameternamen zijn eenvoudiger (@city in plaats van @__city_0). Bijna elk opgeslagen queryplan wordt na de deployment opnieuw gecompileerd, dus reken op een korte piek in de CPU-belasting van de database.
  • Op Azure SQL (UseAzureSql) mapt EF JSON nu naar het nieuwe kolomtype json, en de eerste migratie na de upgrade wijzigt bestaande JSON-kolommen.

Runtime en containers

  • Standaard containerimages gebruiken Ubuntu 24.04 in plaats van Debian, en Debian-images worden niet meer gepubliceerd. Controleer Dockerfiles die systeempakketten installeren.
  • BackgroundService voert de hele ExecuteAsync uit als task, waardoor code vóór de eerste await het opstarten van de applicatie niet meer blokkeert.
  • MailAddress weigert opeenvolgende punten en System.Text.Json controleert op conflicterende eigenschapsnamen. Kleine wijzigingen die opduiken als validatie- of serialisatiefouten.

Hoe lang het duurt

Ruwe schattingen voor een solution met tests:

  • één API of service: een paar uur tot een dag
  • een typische bedrijfsapplicatie met een database en een frontend: 2 tot 5 dagen
  • een grote solution met veel projecten, oude afhankelijkheden of een eigen build: 1 tot 3 weken

Het framework zelf is zelden het trage deel. Dat zijn pakketten van derden zonder versie voor .NET 10 en ontbrekende tests.

Nog op .NET Framework?

Dan is 10 november niet op u van toepassing, maar een grotere beslissing wel. .NET Framework 4.8 krijgt nog beveiligingsupdates, maar geen nieuwe functies, en voor ASP.NET Web Forms is er geen upgradepad naar modern .NET. Zo migreren we Web Forms naar Blazor, scherm voor scherm, terwijl de oude applicatie blijft draaien.

Bronnen

© 2026 ProCoding — Alle rechten voorbehouden.Colofon en privacySplit, Kroatië