.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/await kullandığı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/await mantığı doğrudan çalışma zamanı (runtime) tarafından yönetiliyor. IL kodunda devasa durum makineleri yerine, sadece AsyncHelpers gibi sınıflara yapılan basit metod çağrıları görülüyor [].

Avantajlar

  1. 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 [].

  2. 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 [].

  3. 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.0 olarak ayarlanmalıdır.

  • EnablePreviewFeatures özelliği aktif edilmelidir.

  • Proje dosyasında (csproj) RuntimeAsync özelliği on konumuna 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 izleyebilirsiniz.

Yorumlar

Bu blogdaki popüler yayınlar

Haproxy ve arkada 2 nginx server yönlendirme

22.06.2020 - 26.06.2020 arası işler