Net 8 ile gelecek bazı özellikler

Paylaş :

.NET 8, .NET 7'nin yerini alacak olan uzun süreli destek (LTS) sürümüdür. Bu sürüm, seri durumdan çıkarma (serileştirme) mekanizması olan System.Text.Json üzerinde bir dizi önemli geliştirmeyi beraberinde getiriyor. Bu makalede, .NET 8'in serileştirme konusundaki yenilikleri ve performans iyileştirmelerini ele alacağız.

Net 8 ile gelecek bazı özellikler

Başlık: .NET 8 Serileştirme - Yenilikler ve Performans İyileştirmeleri

.NET 8, .NET 7'nin yerini alacak olan uzun süreli destek (LTS) sürümüdür. Bu sürüm, seri durumdan çıkarma (serileştirme) mekanizması olan System.Text.Json üzerinde bir dizi önemli geliştirmeyi beraberinde getiriyor. Bu makalede, .NET 8'in serileştirme konusundaki yenilikleri ve performans iyileştirmelerini ele alacağız.

Önemli Not: Bu bilgiler önizleme (preview) ürününe aittir ve ticari olarak piyasaya sürülmeden önce önemli değişiklikler olabilir. Microsoft, burada verilen bilgilerle ilgili olarak açık veya zımni hiçbir garanti vermemektedir.

Serileştirme Yenilikleri

.NET 8'de, System.Text.Json, seri durumdan çıkarma ve seri hale getirme işlevselliğinde önemli geliştirmelere sahiptir. Bu geliştirmeler arasında:

  1. JSON yükünde olmayan üyelerin işlenmesini özelleştirme imkanı sağlanmıştır.
  2. JsonSerializerOptions.MakeReadOnly() metodu sayesinde, JsonSerializerOptions örneğinin ne zaman dondurulacağına dair açık kontrol sunulmaktadır.
  3. JsonSerializerOptions.AddContext<TContext>() metodu kullanımdan kaldırılmış ve yerine TypeInfoResolver ve TypeInfoResolverChain özellikleri getirilmiştir. Zincir kaynağı oluşturucuları sayesinde seri durumdan çıkarma işlemlerinde özelleştirme sağlanabilir.
  4. Zayıf türemiş kaynak oluşturma senaryolarında derleyici tarafından oluşturulan veya tanımlanamayan türler için destek eklenmiştir. Bu sayede System.Text.Json, çözümleme işlemlerinde en uygun üst türü belirleyebilir.

Kaynak Oluşturucu ve Performans İyileştirmeleri

.NET 8, System.Text.Json'in seri durumdan çıkarma mekanizması için kaynak oluşturucusu (source generator) ile birlikte gelir. Bu sayede, yansıma tabanlı seri hale getirme ile yerel AOT (Ahead-of-Time) deneyimi hedeflenirken performans ve güvenilirlik de artırılmıştır.

Kaynak oluşturucuda yapılan geliştirmeler şunlardır:

  1. Kaynak oluşturucu artık "init" ve "required" özelliklerle türleri serileştirmeyi destekler.
  2. Kaynak tarafından oluşturulan kodun biçimlendirmesi iyileştirilmiştir.
  3. Yeni tanılamalar eklenmiş ve yoksayılan veya erişilemeyen özellik türleri eklenmemesi için önlemler alınmıştır.
  4. JsonSerializerContext desteği ile bildirimleri rastgele tür türleri içinde iç içe yerleştirmek mümkündür.
  5. Yeni bir dönüştürücü türü olan JsonStringEnumConverter<TEnum> sayesinde enum türleri JSON dizesine dönüştürülebilir hale gelmiştir.
  6. Zincir kaynağı oluşturucuları, JsonSerializerOptions içindeki özelleştirme imkanlarını artırırken, TypeInfoResolverChain ile zincire giriş yapma ve bileşenleri kaldırma olanakları sunar.

Bu geliştirmeler, .NET 8'in seri durumdan çıkarma işlemlerini daha etkili ve performanslı hale getirirken, System.Text.Json'i güvenilir bir JSON serileştirme aracı haline getiriyor.

Lütfen unutmayın ki bu makalede bahsedilenler, .NET 8'in önizleme sürümüne aittir ve ticari olarak piyasaya sürülmeden önce değişebilir. Bu nedenle, güncel ve kesin bilgiler için resmi kaynaklara başvurmanız önemlidir.

Hesabınızı yönetmek için giriş yapın

veya