.net 11 Yeni gelen özellikler async-await
Nick Chapsas'ın bu videosunda, .NET 11 Preview 1 ile birlikte gelen ve async/await yapısında devrim niteliğinde olan "Runtime Async" özelliği tanıtılıyor. İşte videonun detaylı özeti:
Temel Değişim: Derleme Zamanından Çalışma Zamanına
Eski Yapı (.NET 10 ve öncesi):
async/awaitkullandığınızda, C# derleyicisi kodunuzu arka planda karmaşık bir "State Machine" (Durum Makinesi) yapısına dönüştürürdü. Bu süreçte IL (Intermediate Language) seviyesinde çok fazla kod üretilir ve özellikle hata ayıklama sırasında karmaşık "stack trace"ler oluşurdu. Microsoft, Windows ile gelen .NET Framework zamanında çalışma zamanına (runtime) dokunmaktan korktuğu için bu özelliği sadece derleme zamanı bir "hile" (lowering) olarak sunmuştu []. Yeni Yapı (.NET 11): Artık
async/awaitmantığı doğrudan çalışma zamanı (runtime) tarafından yönetiliyor. IL kodunda devasa durum makineleri yerine, sadeceAsyncHelpersgibi sınıflara yapılan basit metod çağrıları görülüyor [].
Avantajlar
Performans Artışı: Yapılan benchmark testlerinde .NET 11 sürümü, .NET 10'a göre mikro saniye bazında yaklaşık %20-25 daha hızlı sonuç verdi [
]. Bellek Verimliliği: Test senaryosunda bellek kullanımı yarı yarıya düştü. Preview 3 sürümüyle bellek optimizasyonunun daha da iyileştiği gözlemlendi [
]. Daha Temiz Kod ve Hata Ayıklama: IL kodu ciddi oranda azaldığı için kodun boyutu küçülüyor. En önemlisi, asenkron bir hata oluştuğunda karmaşık durum makinesi detaylarını içeren "chunky stack trace"ler yerine, hatanın tam olarak nerede gerçekleştiğini gösteren çok daha temiz raporlar alınıyor [
].
Özelliği Nasıl Etkinleştirirsiniz?
Bu özellik henüz deneysel olduğu için manuel olarak açılması gerekiyor:
Projenin target framework'ü
net11.0olarak ayarlanmalıdır.EnablePreviewFeaturesözelliği aktif edilmelidir.Proje dosyasında (csproj)
RuntimeAsyncözelliğionkonumuna getirilmelidir [].
Sonuç
Bu değişiklik, .NET tarihindeki en büyük çalışma zamanı güncellemelerinden biri olarak nitelendiriliyor. Kullanıcılar kodlarında hiçbir değişiklik yapmadan, sadece .NET sürümünü yükselterek ve bu özelliği açarak daha hızlı, daha az bellek tüketen ve daha kolay hata ayıklanabilen projelere sahip olabilecekler [
İlgili videoyu
Yorumlar
Yorum Gönder