XAML aslında bir XML alt kümesidir. XAML'yi XML'ye dayandırmanın ana avantajlarından birinin, mevcut araçlarla ayrıştırılabileceği söylenir. Ve büyük ölçüde, (sözdizimsel olarak önemsiz) özellik değerleri metin biçiminde kalacak ve daha fazla ayrıştırma gerektirecektir.
XML'den türetilmiş bir dilde GUI'yi tanımlamanın iki ana alternatifi vardır. Birincisi, WinForms'un yaptıklarını yapmak ve gerçek kodda tanımlamaktır. Bununla ilgili pek çok sorun var, ancak tamamen avantajsız değil ( XAML'yi bu yaklaşımla karşılaştırmak için bir soru ). Diğer önemli alternatif, eldeki görev için özel olarak hazırlanmış tamamen yeni bir sözdizimi tasarlamaktır . Bu genellikle alana özgü bir dil olarak bilinir .
Yani, geçmişte ve gelecek nesiller için bir ders olarak, XAML'yi XML'ye dayandırmak iyi bir fikir miydi, yoksa özel olarak tasarlanmış bir etki alanına özgü dil olarak daha iyi olurdu mi? Daha iyi bir kullanıcı arayüzü çerçevesi tasarlıyor olsaydık, XML mi yoksa özel bir DSL mi seçmeliyiz?
O, statükonun hakkında olumlu oldukça topluluk tarafından sevilir özellikle birini düşünmek daha kolay olduğundan, ben XML üstünde oluşturma niçin bazı örnek nedenlerini vereceğiz olabilecek bir hata olarak kabul edilebilir.
Bir dili XML'ye dayandırmanın bir şeyi vardır: ayrıştırmak çok daha kolaydır (çekirdek ayrıştırıcı zaten mevcuttur), çok daha az tasarım çalışması gerektirir ve alternatif ayrıştırıcılar da 3. taraf geliştiriciler için yazmak çok daha kolaydır.
Ancak ortaya çıkan dil çeşitli şekillerde tatmin edici olmayabilir. Oldukça ayrıntılı. Bir şeyin türünü değiştirirseniz, onu kapanış etiketinde değiştirmeniz gerekir. Yorumlar için çok zayıf bir desteği var; bir özelliği yorumlamak imkansızdır. Niteliklerin içeriğine XML ile ilgili sınırlamalar vardır. İşaretleme uzantıları, XML sözdiziminin "üstüne", derin ve güzel bir şekilde entegre edilmemiş olarak oluşturulmalıdır. Ve benim kişisel favorim, bir özellik aracılığıyla bir şey ayarlarsanız, bir içerik özelliği ile aynı şeyi ayarlamanızdan tamamen farklı bir sözdizimi kullanırsınız .
Ayrıca herkes XML bildiğinden XAML'nin daha az öğrenmeye ihtiyacı olduğu söyleniyor. Açıkçası bu doğrudur, ancak sözdizimini öğrenmek, yeni bir kullanıcı arayüzü çerçevesi öğrenmek için harcanan zamanın küçük bir kısmıdır; eğrinin dik olmasını sağlayan çerçevenin kavramları. Ayrıca, XML tabanlı bir dilin kendine özgü ifadeleri aslında "öğrenme ihtiyacı" sepetine ekleyebilir.
Bu dezavantajlar ayrıştırma kolaylığı tarafından daha mı ağır basıyor? Bir sonraki harika çerçeve geleneği sürdürmeli mi, yoksa mevcut araçlar tarafından ayrıştırılamayan ve sözdizimi herkes tarafından öğrenilmesi gereken müthiş bir DSL tasarlamak için zaman harcamalı mı?
PS Herkes XAML ve WPF'yi karıştırmaz , ancak bazıları karıştırır . XAML XML benzeri bir şeydir. WPF, ciltleme, tema, donanım hızlandırma ve diğer birçok harika özelliği destekleyen çerçevedir.