Diğer

Akbura beta-6: derleyici 2,5 kat hızlandı, C# ifadeleri için reaktif binding geldi

Avalonia için deneysel bildirimsel işaretleme dili Akbura'nın 12.0.4-beta.6 sürümü, kaynak kodu üretimini FeatureGallery projesinde 15,31 saniyeden 6,06 saniyeye indiriyor ve ayırmaları yaklaşık %69 azaltıyor. Sürümün en dikkat çekici yeniliği, işaretleme içinde doğrudan yazılan C# ifadelerinin iç içe property değişikliklerini otomatik izleyen tek yönlü reaktif binding'lere dönüşmesi.

Habr C# (ru) Popou
Yayın tarihi
Okuma süresi
4 dk okuma
agent çalıştırması #24
agent çalıştırması #24
Orijinale git habr.com

Bu haberi bildir

Özette bir hata mı var, ya da bu içeriğin sahibi misin? Mesajın doğrudan bana e-posta olarak gelir.

Mesaj türü

Kilit noktalar

  • FeatureGallery'de soğuk kod üretimi 15,31 saniyeden 6,06 saniyeye, PurityUI'de 2,38'den 1,78 saniyeye indi.
  • Ayırmalar her iki projede de yaklaşık %68-69 azaldı; FeatureGallery'de 3327 MiB'den 1040 MiB'e.
  • Yeni ${x.bind ...} sözdizimi C# ifadelerini işaretleme içinde çalıştırıyor ve zincirleme property değişikliklerini izliyor.
  • Expression binding'ler tek yönlü; Avalonia'nın ${Binding ...} mekanizmasının yerini almıyor, onu tamamlıyor.
  • Hot Reload'da bileşen durumunun korunması, komut closure'larının güncellenmesi ve stilize edilen kontrol isimleri düzeltildi.
  • Derleyici ve Workspaces Roslyn 5.9.0'a taşındı; paket .NET SDK 10.0.400, extension VS 2026 18.9 istiyor.

Avalonia için deneysel bildirimsel işaretleme dili Akbura'nın altıncı betası, derleyicide ciddi optimizasyonlarla geliyor. Geçici koleksiyon ve buffer'ların yeniden kullanımı, LINQ kaynaklı ara nesnelerin kaldırılması, Roslyn sembol string'lerinin ve AKCSS meta verilerinin cache'lenmesi, tip isimlerinin ara string üretmeden yazılması gibi değişiklikler yapıldı. .NET 10 Release modunda RunGenerators ile alınan ölçümlere göre FeatureGallery'de soğuk kod üretimi 15,31 saniyeden 6,06 saniyeye indi, ayırmalar 3327 MiB'den 1040 MiB'e geriledi.

Yeni ${x.bind ...} sözdizimi ise Roslyn ile doğrulanan C# ifadelerini doğrudan işaretleme içinde kullanmayı sağlıyor. Aritmetik, string interpolasyon, koşullu ifadeler ve koleksiyon indekslemesi destekleniyor; ara nesne değiştiğinde abonelikler yeniden kuruluyor ve bileşenin tekrar render edilmesi gerekmiyor. Mekanizma tek yönlü ve ${Binding ...} yapısının yerine geçmiyor. Paket .NET SDK 10.0.400, VS extension'ı VS 2026 18.9 istiyor.

Gerçek dünyada kullanımı

  • MVVM tabanlı bir Avalonia masaüstü uygulamasında ViewModel'deki iç içe nesnelerden (örneğin seçili müşteri ve adresi) türetilen metinleri işaretlemede hesaplamak.
  • Tema veya görünüm koşullarını AKCSS yardımcı stillerinde ViewModel property'lerine bağlayarak element görünümünü tamamen state üzerinden yönetmek.
  • Büyük Avalonia çözümlerinde incremental source generator süresini ve build sırasındaki bellek baskısını azaltmak.
  • Visual Studio içinde Hot Reload ile çalışırken bileşen state'ini kaybetmeden işaretleme ve stil değişikliklerini denemek.

Neden önemli

Kaynak generator süreleri ve ayırma maliyeti, büyük Avalonia projelerinde build ve editör deneyimini doğrudan belirler; reaktif ifade binding'leri ise basit türetilmiş değerler için ViewModel'e ek property yazma ihtiyacını azaltır.

Bu özet, Habr C# (ru) üzerindeki orijinal yazıdan agent tarafından üretildi. Yazının tamamı ve tüm hakları ilgili yazara/yayıncıya aittir. Orijinal yazıya git

Benzer haberler

Geri bildirim

Bir hata mı buldun, bir fikrin mi var? Yazdığın mesaj doğrudan bana e-posta olarak gelir.

Mesaj türü