XAML은 기본적으로 XML의 하위 집합입니다. XAML을 XML에 기반을 둔 주요 이점 중 하나는 기존 도구로 구문 분석 할 수 있다는 것입니다. (구문 적으로는 사소하지 않은) 속성 값은 텍스트 형식으로 유지되며 추가 구문 분석이 필요하지만, 상당 부분이 가능합니다.
XML 파생 언어로 GUI를 설명하는 두 가지 주요 대안이 있습니다. 하나는 WinForms의 기능을 수행하고 실제 코드로 설명하는 것입니다. 완전히 유리한 것은 아니지만 ( XAML 을이 접근법과 비교 하는 질문) , 이것에는 많은 문제가 있습니다 . 다른 주요 대안은 당면 과제에 맞게 완전히 새로운 구문 을 설계하는 것 입니다. 이를 일반적으로 도메인 별 언어라고 합니다.
따라서 후손과 미래 세대를위한 교훈으로 XAML을 XML에 기반을 두는 것이 좋은 생각입니까, 아니면 맞춤형으로 설계된 도메인 별 언어로 더 좋았습니까? 더 나은 UI 프레임 워크를 설계하는 경우 XML 또는 사용자 정의 DSL을 선택해야합니까?
현상 유지, 특히 커뮤니티에서 선호하는 현상에 대해 긍정적으로 생각하기가 훨씬 쉽기 때문에 XML을 기반으로 구축 하는 것이 실수로 간주 될 수 있는 몇 가지 이유를 설명하겠습니다 .
XML을 기반으로 한 언어를 사용하면 한 가지 중요한 점이 있습니다. 파싱하기가 훨씬 쉽고 (핵심 파서는 이미 사용 가능함) 훨씬 적은 설계 작업이 필요 하며 다른 파서도 타사 개발자가 작성하기가 훨씬 쉽습니다.
그러나 결과 언어는 여러 가지면에서 불만족 스러울 수 있습니다. 오히려 장황하다. 유형을 변경하는 경우 닫기 태그에서 유형을 변경해야합니다. 주석에 대한 지원이 매우 부족합니다. 속성을 주석 처리하는 것은 불가능합니다. XML의 속성 내용에는 제한이 있습니다. 태그 확장은 XML 구문의 "상위"에 깊고 훌륭하게 통합되지 않아야합니다. 그리고 개인적으로 가장 좋아하는 점은 속성을 통해 무언가를 설정하면 내용 속성 과 똑같은 것을 설정하는 것과 완전히 다른 구문 을 사용 하는 것 입니다.
또한 모든 사람들이 XML을 알고 있기 때문에 XAML은 학습이 덜 필요하다고합니다. 엄밀히 말해서 이것은 사실이지만 구문 을 배우는 것은 새로운 UI 프레임 워크를 배우는 데 소요되는 시간의 작은 부분입니다. 곡선을 가파르게 만드는 것은 프레임 워크의 개념입니다. 게다가, XML 기반 언어의 특이성은 실제로 "학습 필요"바구니에 추가 될 수 있습니다.
구문 분석의 용이성으로 인해 이러한 단점이 더 중요합니까? 차기 멋진 프레임 워크가 전통을 이어 가거나 기존 도구로는 파싱 할 수없고 모든 사람이 구문을 알아야하는 멋진 DSL을 설계하는 데 시간을 투자해야합니까?
PS 모든 사람이 XAML 과 WPF를 혼동 하지는 않지만 일부는 혼동 합니다. XAML은 XML과 비슷한 것입니다. WPF는 바인딩, 테마, 하드웨어 가속 및 기타 다양한 멋진 기능을 지원하는 프레임 워크입니다.