Microsoft, Windows 11'in WinUI kullanıcı arayüzü çerçevesini aşamalı olarak açık kaynaklaştırma planı açıkladı
(neowin.net)- Microsoft, Windows 11'in kullanıcı arayüzü çerçevesi olan WinUI'yi açık kaynaklaştırmak için aşamalı bir plan açıkladı
- WinUI, karmaşık mimarisi ve çok sayıda kapalı kaynak kodu nedeniyle hemen açıklanamaz (paylaşılabilir ve paylaşılmayacak kısımları ayırma çalışması gerekiyor)
- Açık kaynaklaştırma dört aşamada gerçekleştirilecek
- 1. Aşama: Senkronizasyon sıklığının artırılması: WASDK 1.8 dağıtımı (ağustos sonu) sonrasında iç commitler, GitHub ile daha sık senkronize edilerek şeffaflık ve geliştirme ilerleme durumunun paylaşılması planlanıyor
- 2. Aşama: Dış geliştiricilerin yerel derlemesi: Dış geliştiricilerin doğrudan kodu klonlayıp yerelde derleyebilmesi sağlanacak, ayrıca kurulum ve bağımlılık belgeleri de sunulacak
- 3. Aşama: Dış katkı ve test: Topluluk katkıda bulunanlar Pull Request gönderebilecek ve yerel test çalıştırabilecek; dahili bağımlılıkların temizlenmesi ile test altyapısının da açılması öngörülüyor
- 4. Aşama: GitHub merkezli geliştirme sistemine geçiş: Son aşamada GitHub, temel geliştirme, sorun takibi ve topluluk iletişiminin merkezi olacak ve dahili yansıtma sistemi kademeli olarak kaldırılacak
- WinUI'nin açık kaynak yol haritası GitHub proje panosu üzerinden halka açık olarak yönetiliyor
- Geliştiriciler ve kullanıcılar, geri bildirim, net bir şekilde sorun bildirimi ve mevcut görüşlerin oyla desteklenmesi gibi yollarla WinUI'nın gelişimine katkı sunabilir
3 yorum
COM ya da Webview'ı da sevmiyorum... Kullanışlı bir GUI olsa iyi olurdu. Şimdiye kadar Windows için kullandığım UI'ler içinde en çok hoşuma giden Qt4'tü. Qt5'ten itibaren bir şekilde oldukça farklılaştı.
Aslında, MFC'nin de o kadar da kötü olmadığını hatırlıyorum… haha
Hacker News Yorumları
Windows'un yerel UI teknolojisinin geleceği konusunda endişeliyim.
İşletim sistemi geliştiricileri normalde kendilerinin de kullandığı ürünlerle, sorunsuz çalışan ve tutarlı yerel uygulamalar üretmişlerdi.
Ama Windows 11'de bunun tam tersi oluyor.
Windows 10'dan beri en azından düzgün çalışan bir varsayılan Mail ve Takvim uygulaması vardı; Windows 11'in en yeni güncellemesinde bu uygulama kaldırıldı ve yavaş bir WebView sarmalayıcıyla değiştirildi, çalıştırmak dakikalar değil saniyeler sürüyor
WinUI topluluk çağrısına bakınca yeni personelin çoğunda Windows deneyimi hiç yok ve yöneticilerin de bu konuyla ilgilenmemesi nedeniyle temel konuları bile iyi öğrenemedikleri görülüyor.
Windows geliştiricisinin doğal olarak bilmesi gereken bir soruya yanıt veremiyorlar, sorunun neden sorulduğunu bile anlamamış gibi bakıyorlar.
Bu nedenle Windows 11'in her yerine WebView2 örnekleri taşmış durumda.
Windows 11 UI sorununda, yeni uygulama ve özelliklere çok fazla odaklandıkları ve eski araçları güncellemedikleri hissediliyor.
Örneğin kontrol paneli, Windows 7'den bu yana neredeyse aynı dış görünüme sahip.
Daha derinlere inilince, sanki Homer Simpson'e klip takılmış bir meme gibi, köşelere gizlenmiş eski araçlar var.
Dıştan bakıldığında yeniyken kısa sürede kullanımda sınırlar ortaya çıkıyor.
Bir noktada MSO'yu (Office)'yu Dart ve WASM gibi teknolojilerle tamamen yeniden yazabilirler gibi görünüyor.
Yerel toolkit'ten tamamen bağımsız bir biçimde Excel'in tüm özelliklerini yeniden üretip, O365 Premium planı gibi her yerden erişilebilir biçimde sunabilirler.
Sonuçta ChromeOS'e dönüşür, yalnızca kilit/oturum açma ekranı gibi noktalarda basit bir yerel UI yeterli olur, geri kalanı hafifletilebilir gibi.
Microsoft içindeki güç mücadelesini ve acımasız şirket politikasını anlarsanız bu değişimlerin nedenini görebilirsiniz.
Bölümler birbirleriyle üstünlük için yarışıyor.
Windows'ta en az 10 farklı UI framework'ünün karıştığı hissi var.
Windows 11 adeta bir doğa tarihi müzesi turu gibi.
MSC gibi tamamen Windows 2000 dönemindeki tasarıma gömülü uygulamalar da var, Metro stilinin etkisiyle kaba ve parlak UI'ler de görünüyor.
En yeni Win11 stili makul görünüyor ama gerçekte 'domuzun üzerine ruj sürmek' gibi duruyor.
Sağ tık menüsü bunun tipik örneği: güzel görünür ama işlevsellik eksik; 'Daha fazla göster'ye basmadan eski stile göre daha çok özellik göremiyorsunuz.
Genel görünüm bir kaos.
Microsoft'un "Microsoft hedefleriyle uyum", "kaynak dağılımını dikkatli yapma" gibi duyurularında samimiyet göremiyoruz.
Sonuçta framework'ü dışarıya bırakıp, yalnızca hevesli dış geliştiricilerin bakımını üstlenmesini ümit ederek kaynak çeken bir politika izledikleri anlaşılıyor.
"Tutkulu mağlup" ifadesi çok olumsuz.
Ben Win11 UI'sine ilgi duymasanız veya bu açık kaynaklaştırmanın yalnızca maliyet düşürmeye yönelik olduğu yönündeki alaycı bakışa katılasanız bile
bu işi sürdüren kişilere saygımı belirtmek isterim.
Açıkça söylersek, bu "garantili destek yok, güvenlik hatası dışında ek güncelleme planı yok, ne isterseniz kullanın" diyen kurumsal bir dilden ibaret.
Şaka yollu "Apache Windows ne zaman çıkıyor?" demek geliyor insanın.
Ciddiyetle baktığımızda, masaüstü UI toolkit'ları artık bir rekabet avantajı ya da giriş engeli değil.
Sadece Windows'ta dahi 3-4 farklı stil resmi olarak dolaşıma girmiş durumda.
Ama güvenlik ve kararlılık hâlâ Windows'un şirketler, finans ve kamuda ayakta kalması için kritik.
Diğer firmaların UI framework'lerini açmasını anlayabilirim.
Örneğin Atlassian veya AWS framework'leri, Jira/AWS'te kullanıldıkları için B2B SaaS tarafında denenebilir.
Ama bu framework neden kullanılmalı, anlaşılmıyor.
Gerçekten sadece Windows yerel uygulama yapmak istemiyorsanız zaten daha iyi alternatifler var.
WinUI'nın başarısız olduğunu düşünüyorum.
Windows geliştirici topluluğunda WinUI ile ilgilenenler neredeyse yok ve WinRT/UWP'ye yatırım yaptıktan sonra geri dönemeyen geliştiriciler sadece buna tutunuyor.
Windows 8 sonrası çok fazla köprü kopmuş, topluluk güvenini yitirmiş durumda.
Aslında Microsoft sorunu kendisi çözmek yerine topluluğa bırakmak istiyor gibi görünüyor.
DevExpress, Progress Telerik gibi firmalar da WinUI kontrol geliştirmesine yatırım yapmıyorlarsa,
bu firmalar da WinUI'nin geleceğine güvenmiyorlar demektir.
Şu an için kurumsal uygulamalar için gerçekçi seçenekler WinForms ve WPF kadar dar.
Pratikte WinUI3 ile yapılmış ve çalışır durumda üretimde kullanılan bir uygulama görmedim.
Dürüst olayım: şimdi Microsoft'un hangi UI framework'ünü ciddi şekilde kullanılır sanırsınız?
Eskiden kullanılan framework'ler de her zaman yarım bırakılıyor; bir anda yeni ve parlayan bir framewok geldiğinde eskisi unutuluyor.
Buna karşılık açık kaynaklı çapraz platform framework'leri hem temel sağlamlıkta hem de özellikte çok daha iyi ve bakımları daha iyi.
Bu WinUI de sonunda unutulan, göz ardı edilen bir başka UWP kaderi olacak.
Windows'da kaç tane UI framework'ü olduğunun sayılmasının bile zorlaştığı bir noktadayız; çok dağınık.
Açık kaynak yaptıklarında ne beklenebileceği sorusu akla geliyor.
Sadece açık olduklarını göstermek mi amaç, yoksa Windows odaklı geliştiricilere gerçekten bir yarar sağlamak mı diye merak ediyorum.
WinUI, UWP'den evrilen bir sürümdür; UWP ise WinRT'nin gelişimidir.
WinUI'nin niyeti net ve uzun zamandır gelişen bir teknolojidir (şu anki hali WinUI 3).
MAUI ise rakip ürün olmaktan çok çapraz platform için.
Yine de OS'nin tamamını, özellikle yönetim araçlarını bile WinUI ile yeniden inşa etmeden uzun vadeli güveni elde etmek zor.
Yukarıda anlatılan çok sayıda kısaltma ve açıklamaya bakınca önce alay sandım.
WinUI, UWP, WinRT, XAML, Avalon, WPF, Project Reunion, Win2D, MFC, wxWidgets, Qt vb.
Bu kadar çok sürüm ve framework ismi o kadar karışmış ki açıklama kısmı tek başına bile uzun ve kafa karıştırıcı.
Muhtemelen Microsoft yine her zamanki gibi yeni trende (artık AI!) odaklanarak,
eski teknolojileri büyük protesto olmadan budama/yerinden etme yöntemi arıyordur.
Gerçekte karşı çıkanların azınlık olduğu hissi var.
Aslında Windows'ta üç UI framework'ü var, bunlardan ikisi gerçekten yaşanır durumda.
Kalanlar Win32/yerel ve WPF/Managed iki hattın tekrarlanan evriminden ibaret.
WinUI3 bu iki hattın aradaki açığını kapatmak için geliştirildi.
Uzun vadede bakarsak MFC hâlâ en uzun yaşayacak seçenektir.
Şu an güncellemeler durmuş olsa da ileride 20 yıl boyunca rahatça hayatta kalır gibi görünüyor.
Keşke Microsoft WPF'yi geliştirmeye devam etseydi.
Birçok projede uzun süre kullandım; öğrenme eğrisi var ama Data Binding, ViewModel, XAML bugün de gayet yeterli.
Yine de WPF'nin mükemmel olması için bazı iyileştirmelere gerek var.
Son dönemde Microsoft'un yeni framework'leri veya açık kaynaklar (Avalonia, Uno vb.) de denedim ama örnekler çalışmıyor veya geliştirme yöntemi uymuyor.
Sonunda yine alışık olduğum WPF'ye geri dönüyorum.
WPF için en büyük geliştirme fikri, Data Binding sistemini runtime Reflection yerine .NET derleme zamanı kod üretimine geçirmek.
Böylece gerçek AOT derleme mümkün olur, performans ciddi şekilde artar ve XAML tip güvenliği, çapraz platform desteği gibi avantajlar artar.
Kendim bunu açık kaynak olarak yapmayı denemek istedim ama zaman az, iş çoktu.
İkinci paragraftaki şey doğrudan Avalonia için geçerli.
Avalonia zaten AOT, derleme-zamanı bağlama hatası ve çapraz platform özelliklerini destekliyor.
Son güncellemeleri uzun süredir görmediyseniz Avalonia compile-time data binding docs ile XamlX projesi'ne bakın.
Bu yöntemle assembly trimming de mümkün hale geliyor.
Bağımsız dağıtımda şu an .NET kütüphanesi 200MB'tan fazla ekleniyor ama bu yaklaşımda bu çok daha aşağı çekilebilir.
WinUI3'ü önce değerlendirdiğimde geliştirme deneyiminin çok kötü olduğunu gördüm.
Dağıtılmak istenen uygulamayı debug etmek için sistemi gerçekten kurmak gerekiyordu.
Böyle olunca başlat menüsünde gereksiz çok sayıda öğe birikiyor ve registry kirleniyor.
Hatta örnek kodda düğmeye tıklanır tıklanmaz uygulama hemen çöküyordu.
Ben Windows uygulaması geliştirirken hâlâ Win32+WTL ile yapıyorum.
Özellik ve izin işleme buna göre yapılmış.
macOS'ta da benzer: paketli bir uygulama kurulmalıdır; Launchpad'de görünmese bile Spotlight'ten bulunur.
Pek çok kişinin işaret ettiği gibi, Windows için UI framework'leri uzun süre düzgün şekilde düzenlenmedi ve karmaşıklık arttı.
Ne yazık ki çapraz platform açık kaynak tarafı da pek farklı değil.
GTK bir dönem berbat durumdaydı, Qt fonksiyon açısından zengin ama profesyonel kullanım için lisans yapısı fazla pahalı.
(Nokia dönemindeki umut da, MS'in Elop devri ve sonrasındaki Qt sahip değişimi gibi sebeplerle dağıldı.)
Belirli alanlarda Dear Imgui gibi iyi çözümler var ama,
genel olarak yerel ve çapraz platform UI/widget framework'leri arasında permissive lisans, native derleme, iyi widget düzeni ve Vulkan 3D render desteği birlikte sunan alternatif neredeyse yok.
platform esnekliği gerçekten isteniyorsa pratikte neredeyse alternatif kalmadığını görmezden geliyor.
Microsoft bu alanda gerçekten anlamlı bir ürün yapabilirdi ama girişimi çok ılık kaldı, bu yüzden gerçek bir sonuç çıkmadı.
Windows 11'e yeniden yerel dikey görev çubuğunun gelmesini isterdim.
Bu özellik Windows 98'den beri vardı ama 11'de kaldırılmıştı.
Windhawk (yatay taskbar zorlaması) veya StartAllBack (Windows 10 kodunu geri getiren) gibi üçüncü taraf araçlar olsa da, kusursuz değil.
UI framework'ünü açık kaynak yapmakla görev çubuğu fonksiyonları genişlemeyecek.
Bu alandaki dış katkı, UI framework'ü değil, görev çubuğunun kendisinin (yani explorer.exe'nin) açık hale gelmesiyle olur.
Referans olarak, baştan beri Windows 95 döneminde dikey görev çubuğu bir seçenekti.
Görev çubuğu işlevi explorer.exe'ye aittir.
Şu an tartışılan açık kaynak açılımının explorer ile alakası yok.
Windows ekibinin WinUI ile gerçekten yerel masaüstü UI inşa edip etmediği şüpheli.
Windows için UI çalışmaları şu an Win32, GDI, DirectDraw ile yapılıyor.
CsWin32 ve yeni C# (ref returns) ile erişilebilirlik önceye göre çok arttı.
Eskiden çoğu zaman C++ ile ayrı bir proje kurmak gerekirdi ama şimdi native methods.txt dosyasına gereken fonksiyonları yazdığınızda kod üretici her şeyi hallediyor.
Win32, diğer UI framework'lerine göre daha düşük seviyeli, ama tersine Microsoft'un ellemeyi bırakması da daha zor.
Uzun vadede bu API kadar stabil kalan bir şey yok.
Web platformu da uzun vadede karşılaştırılamaz.
Yine de pek çok alanda hâlâ C++ gerekiyor.
Windows ekibinin COM'a olan takıntısı yüzünden.
Windows Runtime Components, .NET ekosistemini bir üst seviyeye taşıyabilecek bir fırsattı ama kaçırıldı.
Shell extension, context menu extension gibi şeyler C++ ile yapılmak zorunda; bunu .NET ile yapmak isterseniz sonunda C++ stub'ları koyup .NET sürecini çağırmanız gerekir.
Bu tür üst seviye framework tartışmalarından çok düşük seviye API'ler daha ilgi çekici.
Windows render yığını tamamen GDI/DirectX üzerine oturuyor sanılıyor, ama Win32 da zaten GDI üzerindedir.
Gerçekten Windows UI stack'ini “bare metal” seviyesinde tartışacaksanız, DirectX'ten başlamak daha anlamlı olur.
Kullanıcı açısından bakınca Win32 hâlâ yeterince üst seviyeli.
Bugüne kadar buton ve scrollbar gibi bileşenleri düzgün çizebilen tek toolkit Win32.
Windows yerel geliştirme için topluluğun gerçekten iyi bir framework yapmasını isterdim.
Fakat bunu yapacak kadar büyük bir topluluk ölçeği ne yazık ki yok.
Eski Windows UI geliştirmede en çok özlediğim şey,
Microsoft'un doğrudan geliştirdiği gibi uyumlu ve doğal çalışan uygulamaları kolayca üretebilme fırsatıydı.
Web teknolojileri geldikten sonra Windows UI deneyiminin tutarlılığı ciddi biçimde bozuldu.
Microsoft'un eski uygulamaları güncellememesi bir sorun ama yeni araçlar da stil kılavuzuna uygun kütüphane sunmuyor.
Bu durum Vista döneminden beri başladı ve MSDN'de 'Bu özelliği şu şekilde kullanın' gibi zengin örnekler giderek azaldı.