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는 바인딩, 테마, 하드웨어 가속 및 기타 다양한 멋진 기능을 지원하는 프레임 워크입니다.
답변
유일한 강력한 사용 XML에 대한 이유는 것입니다 개방형 데이터 표준을 설정합니다. XAML은 Silverlight 및 WPF에서 사용되는 것과 동일한 표시 언어입니다. 모든 공급 업체는 동일한 마크 업 표준을 사용하여 자체 플랫폼에 대한 디스플레이 정의를 만들 수 있으며 Silverlight 또는 WPF에서 재사용 할 수 있습니다.
항공 우주 산업에는 컴퓨터 기술의 발전 덕분에 이제는 상당히 유연한 제어실이 있습니다. 과거에는 모든 하드웨어가 사용자 정의되고 독특하며 매우 비쌌습니다. 오늘날에는 모두 저렴하고 일반적으로 사용 가능한 상용 PC로 실행됩니다. 이는 공급 업체 잠금을 크게 줄입니다. 그러나 디스플레이 위젯은 항상 수행 된 방식이므로 ActiveX를 사용하여 작성됩니다.
ActiveX는 더 이상 사용되지 않는 Microsoft 도구에 액세스해야합니다. 따라서 공군과 레인지 간 계측 그룹 에는 XML 기반의 데이터 디스플레이 마크 업 언어가 제공됩니다. 이를 통해 실무자는 원하는 편집기에서 XML 마크 업을 사용하여 디스플레이를 디자인 할 수 있습니다. 익숙한 소리?
아무도 XML에 결함이 없다고 주장하지 않습니다. 그러나 그것은 더 나은 것이 나올 때까지 설계된 디자인에 가장 적합한 것입니다.
답변
XML에 대한 반대 의견은 XML을 GUI 설명 언어로 사용하는 것과 아무 관련이 없습니다. 그것들은 모든 형태의 XML에 똑같이 적용되는 XML 구문 작업에 대한 불만입니다.
XML이 마음에 들지 않는 것 같습니다.
맞습니다. 수동으로 편집하기에 최적의 선택은 아니지만 GUI 설명 언어의 경우 몇 가지 반론을 할 것입니다.
-
(IMHO,) GUI는 그래픽이며 그래픽으로 배치되어야합니다. 파일 형식은 그렇게 중요하지 않습니다. 실제로 직접 편집해서는 안되기 때문입니다. (텍스트 기반은 소스 제어를 위해 좋지만 자세한 정보는 문제가되지 않습니다.)
-
파서가 사용 가능할뿐만 아니라 XML도 쉽게 검증 할 수 있습니다. DTD 또는 XML 스키마를 작성한 다음 일반 도구를 사용하여 파일이 합법적인지 알 수 있습니다. 이것은 GUI 설명 언어에 매우 유용합니다. JSON 또는 YAML에서 동일하게 수행하는 것은 간단하지 않습니다.
-
XAML을 직접 작성하는 것이 정말 마음에 들지 않으면 새로운 형식을 개발 한 다음 XAML로 컴파일하는 데 방해가되지 않습니다. 예를 들어 JSON에서 XAML 로의 간단한 매핑을 생각해 낼 수 있으므로 JSON의 더 가벼운 구문 (및 주석 처리 기능)을 보유한 다음 앱을 빌드 할 때 XAML을 생성 할 수 있습니다. 사람들은 더 이상 HTML을 직접 쓰지 않지만 HTML은 여전히 훌륭한 형식입니다.
답변
이 질문은 주관적이므로 개인적 취향에 따라 답변을 게시하는 것이 공정하다고 생각합니다.
XML을 읽기가 어렵습니다. 예를 들어이 링크 를 열고 “샘플”을 클릭하여 XML과 YAML을 나란히 비교하십시오. 후자는 분명히 훨씬 인간이 읽을 수 있습니다.
XML을 사용하여 GUI를 설명하려는 경우 사람이 XML을 보지 않아도되도록 충분한 도구를 제공 해야 합니다.
XPF는 분명히 실패했습니다.