Arkadaşlar, selam. Uzun zamandır WinUI 3 ile bir şeyler karalamak istiyordum. "Microsoft'un modern, native UI çerçevesi" diye geçiyor, değil mi? Heyecanla Visual Studio 2022'yi açıp yeni bir proje oluşturdum. İlk bakışta, arayüzü fena değil gibi. XAML yazıyorsun, biraz WPF, biraz UWP havası var. "Tamam," dedim, "hadi basit bir butonun arkaplan rengini değiştireyim de framework'ü hissedeyim."
C#:
myButton.Background = new SolidColorBrush(Colors.Red);
Sonra? Sonrası hüsran. Buton yerine, Button diye bir şey yok muydu? Yoksa Microsoft.UI.Xaml.Controls.Button mu? Namespace'ler allak bullak. Hadi tamam, onu da çözersin. Peki ya Colors.Red?
İşte asıl facia burada başladı. Hemen Microsoft'un resmi dokümantasyon sitesine gittim. Konu başlıkları güzel, örnekler var gibi duruyor. Ama bir şeyi anlamaya çalıştığında, linkler birbirine giriyor. "Bu property şurada açıklanmış" diyor, tıklıyorsun, seni başka bir sayfadaki, alakasız bir örneğin ortasına atıyor. Ya da daha kötüsü, sayfa boş. 404 değil, içi boş. "Content coming soon" yazıyor. Ciddi misiniz?
StackOverflow'a baktım, WinUI 3 etiketli soruların yarısı cevapsız. Diğer yarısında da "Bunun dokümantasyonda yeri var mı?" diye sorulmuş. Meğerse sorun şuradaymış: Framework'ün kendisi yeni sayılır ama dokümantasyon, sanki stajyer bir öğrenciye yazdırılmış gibi dağınık ve eksik. Resmi bir framework'ten, hele ki Microsoft'tan, asla beklemeyeceğim bir seviyede.
Çaresiz, çözümü GitHub repository'sinin "Issues" kısmında aramaya başladım. Bir sürü developer, benim yaşadığım veya daha beter sorunları yazmış. Microsoft'tan gelen geliştiriciler bazen cevap veriyor, bazen vermiyor. Asıl bilgiye, oradaki tartışmaların arasında, bir başka developer'ın attığı örnek kod parçasıyla ulaştım. Yani, resmi dokümandan değil, topluluktan öğreniyorsun.
Örneğin, basit bir NavigationView'ın item'larını nasıl dinamik ekleyeceğimi, dokümanda bulamadım. Ama bir issue'da, birisinin `MenuItems` koleksiyonuna elle ekleme yaptığını gördüm. Şaka gibi ama, gerçek çözüm buydu.
C#:
navView.MenuItems.Add(new NavigationViewItemSeparator());
navView.MenuItems.Add(new NavigationViewItem(){ Content = "Yeni Sayfa", Icon = new SymbolIcon(Symbol.Add) });
WinUI 3, potansiyeli yüksek bir araç. Performansı ve modern görünümü hoş. Ama bu dokümantasyon faciası düzeltilmezse, özellikle yeni başlayan biri için cehennemden farksız. Sürekli kazı yapmak, issue'ları okumak ve deneme-yanılmak zorundasın. Bu, bir hobi projesi için belki katlanılabilir, ama profesyonel bir işte zaman kaybından başka bir şey değil.
Siz de WinUI 3 ile uğraştınız mı? Aynı duvarlara tosladınız mı? Yoksa ben mi şanssızım? Ya da bu doküman krizini aşmanın bir sırrı, gizli bir el kitabı falan mı var? Lütfen söyleyin, kafayı yiyeceğim.