.NET 8 projesi 10 Kasım'dan önce .NET 10'a geçmeden önce nerelere bakmalı
.NET 8 ve .NET 9 için destek 10 Kasım 2026'da bitiyor ve Azure Functions'ın in-process modeli de aynı gün destekten çıkıyor. Yazar, sürüm bilgisinin yalnızca csproj dosyasında durmadığını; Directory.Build.props, global.json, Dockerfile, CI ve paketlerde de yer aldığını gösteriyor.
Kilit noktalar
- Directory.Build.props içindeki $(AppTfm) gibi özellikleri ve TargetFrameworks (çoklu hedef) satırlarını da tara.
- global.json içindeki SDK sürümünü tam sürüm numarasıyla (örn. 10.0.100) güncelle ve rollForward ayarını kontrol et.
- Dockerfile ve compose dosyalarındaki sdk ve aspnet imajlarını 10.0 olarak değiştir; .NET 10 imajlarının Ubuntu 24.04 tabanlı olduğuna dikkat et.
- CI pipeline'ındaki setup-dotnet veya UseDotNet sürümlerini ve matris build değerlerini güncelle.
- Azure Functions in-process projelerini isolated worker modeline taşı; FUNCTIONS_WORKER_RUNTIME ayarını kodla birlikte deploy et.
- Migration'dan sonra dotnet ef migrations add UpgradeCheck ile beklenmeyen bir EF Core migration'ı olup olmadığını kontrol et.
Hem .NET 8 hem de .NET 9 için destek 10 Kasım 2026'da sona eriyor; Azure Functions'ın in-process modeli de aynı tarihte destekten çıkıyor. Bu tarihten sonra bu çalışma zamanlarına yönelik güvenlik yamaları gelmeyecek, ama uygulamalar 11 Kasım'da kendiliğinden durmayacak. Yazar, .NET 10'a geçişin genelde csproj içindeki tek bir TargetFramework satırından ibaret olmadığını anlatıyor.
Sürüm bilgisi bir Directory.Build.props dosyasındaki özelliğe, global.json içindeki SDK sabitlemesine, Dockerfile'daki base image etiketlerine, compose dosyalarına ve CI pipeline'larındaki SDK kurulumlarına da yayılmış olabilir. Azure Functions tarafında ise FunctionsStartup'ın kaldırılması, isolated worker modeline geçiş ve Newtonsoft yerine System.Text.Json kullanımı gibi değişiklikler gerekiyor. Yazar ayrıca derleme hatası vermeyen davranış değişikliklerini de hatırlatıyor.
Gerçek dünyada kullanımı
- Birden fazla projesi, paylaşılan props dosyası ve Docker imajları olan bir kurumsal monorepo'yu tek dalda .NET 10'a taşımak.
- Eski in-process Azure Functions uygulamasını isolated worker modeline geçirirken staging slot ile kademeli yayın yapmak.
- Yıllardır güncellenmemiş bir CI pipeline'ında SDK sürümlerini ve Docker imajlarını tek seferde hizalamak.
Neden önemli
Bir sürüm numarası birden fazla dosyada yaşayabildiği için, tek bir csproj değişikliği yetmeyebilir ve eski .NET 8 hattı production'da sessizce kalabilir. Destek bitiminden önce bu dosyaları taramak, güvenlik yamalarının kesilmesi riskini azaltır.
Benzer haberler
- Intune ekibi .NET Framework servisini GitHub Copilot modernization ile .NET 8'e taşıdıApps on Azure Blog6 gün önce
- C# interface'lerinde collection dönüş tipleri: interface, view ve snapshot farkıNick Cosentino (Dev Leader)2 gün önce
- CritterWatch 1.1 dead letter'ları hata nedenine göre gruplayıp tek işlem olarak yönetirJasperFx (Critter Stack) Blog4 gün önce