XAML về cơ bản là một tập hợp con của XML. Một trong những lợi ích chính của việc dựa trên XAML trên XML được cho là nó có thể được phân tích cú pháp bằng các công cụ hiện có. Và nó có thể, ở một mức độ lớn, mặc dù các giá trị thuộc tính (cú pháp không tầm thường) sẽ ở dạng văn bản và yêu cầu phân tích cú pháp thêm.
Có hai lựa chọn thay thế chính để mô tả GUI bằng ngôn ngữ có nguồn gốc XML. Một là làm những gì WinForms đã làm và mô tả nó bằng mã thực. Có rất nhiều vấn đề với điều này, mặc dù nó không hoàn toàn không có lợi thế (một câu hỏi để so sánh XAML với phương pháp này ). Thay thế chính khác là thiết kế một cú pháp hoàn toàn mới được thiết kế riêng cho nhiệm vụ trong tay. Điều này thường được gọi là một ngôn ngữ cụ thể miền .
Vì vậy, nhìn nhận lại và như một bài học cho các thế hệ tương lai, liệu có nên dựa trên XAML trên XML hay không, liệu nó có tốt hơn như một ngôn ngữ dành riêng cho miền được thiết kế tùy chỉnh không? Nếu chúng ta đang thiết kế một khung UI tốt hơn nữa, chúng ta nên chọn XML hoặc DSL tùy chỉnh?
Vì việc suy nghĩ tích cực về hiện trạng dễ dàng hơn nhiều, đặc biệt là một cộng đồng khá được cộng đồng yêu thích, tôi sẽ đưa ra một số lý do ví dụ về lý do tại sao xây dựng trên XML có thể bị coi là một sai lầm.
Căn cứ một ngôn ngữ tắt XML có một điều sẽ cho nó: nó dễ dàng hơn để phân tích cú pháp (phân tích cú pháp cốt lõi đã có sẵn), đòi hỏi nhiều, nhiều công việc thiết kế ít hơn, và phân tích cú pháp thay thế cũng dễ dàng hơn nhiều để viết cho các nhà phát triển bên thứ 3.
Nhưng ngôn ngữ kết quả có thể không thỏa mãn theo nhiều cách khác nhau. Nó khá dài dòng. Nếu bạn thay đổi loại của một cái gì đó, bạn cần thay đổi nó trong thẻ đóng. Nó có hỗ trợ rất kém cho ý kiến; không thể bình luận một thuộc tính. Có những hạn chế được đặt trên nội dung của các thuộc tính theo XML. Các phần mở rộng đánh dấu phải được xây dựng "trên cùng" của cú pháp XML, không được tích hợp sâu và độc đáo vào nó. Và, sở thích cá nhân của tôi, nếu bạn đặt thứ gì đó thông qua một thuộc tính, bạn sử dụng cú pháp hoàn toàn khác so với khi bạn đặt chính xác điều tương tự như một thuộc tính nội dung.
Người ta cũng nói rằng vì mọi người đều biết XML, XAML yêu cầu học ít hơn. Nói đúng ra điều này là đúng, nhưng học cú pháp là một phần rất nhỏ thời gian dành cho việc học một khung UI mới; đó là khái niệm của khung làm cho đường cong dốc. Ngoài ra, các đặc điểm riêng của ngôn ngữ dựa trên XML thực sự có thể thêm vào giỏ "nhu cầu học tập".
Là những bất lợi vượt trội bởi sự dễ dàng của phân tích cú pháp? Khung tuyệt vời tiếp theo có nên tiếp tục truyền thống hay đầu tư thời gian để thiết kế một DSL tuyệt vời không thể được phân tích cú pháp bởi các công cụ hiện có và mọi người cần phải học cú pháp nào?
PS Không phải ai cũng nhầm lẫn XAML và WPF , nhưng một số thì có. XAML là thứ giống như XML. WPF là khuôn khổ với sự hỗ trợ cho các ràng buộc, chủ đề, tăng tốc phần cứng và rất nhiều thứ hay ho khác.