2009-06-03 85 views
6

Đã nói chuyện với một đồng nghiệp về XAML và cách nó vừa là ngôn ngữ trình bày và mô tả đối tượng và do đó khá độc đáo và mới lạ trong công nghệ CNTT.XAML độc đáo như thế nào?

Điều này đúng là XAML là duy nhất và mới lạ?

XAML có bất kỳ đối tác hoặc người tiền nhiệm nào trong thế giới Java hay ở nơi khác không? Tôi tin rằng ai đó đã nói với tôi rằng Java Server Faces tương tự như WPF, vì vậy tương đương với XAML ở đó là gì?

Tôi biết MXML trong Flex tương tự nhưng theo như tôi có thể nhớ có một số khác biệt về cấu trúc chính, từ những gì tôi nhớ MXML không thực sự mô tả các đối tượng mà là một XML trình bày thuần túy.

+0

Phải là một cộng đồng Wiki – NinethSense

+0

@NinethSense: Comminity Wiki? Tại sao? – AnthonyWJones

Trả lời

13

Đây là trường hợp của một công nghệ chung có mức sử dụng cụ thể chung áp đảo như vậy sẽ trở nên đồng bộ với cách sử dụng cụ thể. Ví dụ, các cuộc thảo luận về Javascript thường giả định bối cảnh trình duyệt và thao tác của một DOM HTML mà không có ai phải nói rõ như vậy.

Nói đúng XAML không giống XUL hoặc SVG ngoài XML. XUL, SVG có một cú pháp xác định để khai báo giao diện người dùng hoặc các phần tử đồ họa, XAML thô không. Ví dụ:

Ví dụ: XAML cũng có thể được sử dụng để mô tả quy trình làm việc trong nền tảng quy trình làm việc.

XAML thực sự là một cách tiếp cận để đọc XML để mô tả các loại và thuộc tính của các loại đó. Ví dụ: thuộc tính của một loại có thể được mô tả bằng cách sử dụng một thuộc tính hoặc một phần tử miễn là tên của nó có thể được diễn giải chính xác. XAML cũng bao gồm một phần mở rộng cho cú pháp XML cơ bản trong đó {} trong một thuộc tính có thể hoạt động như một bàn tay ngắn cho một phần tử phức tạp.

Tôi đã không gặp phải điều này trước đây. Tất cả các công nghệ dựa trên XML khác đi kèm với một mục đích cụ thể, XAML là cách sử dụng đầu tiên của XML mà tôi đã thấy là deviod của bất kỳ danh pháp cụ thể nào nhưng chỉ là một phương thức ánh xạ XML tới các kiểu.

0

Ngoài XAML, bạn có XUL được Mozilla sử dụng. SVG mặt khác, là một trong những khuyến cáo của W3C.

-3

Vâng, XAML cơ bản là đánh dấu nâng cao cho .NET, do đó tôi nghĩ bạn có thể vẽ rất nhiều điểm tương đồng từ XAML đến XHTML - Cả hai đều là kỹ thuật trình bày.

Có rất nhiều sự khác biệt cũng OFC (XHTML được giải thích bởi một trình duyệt để sản xuất đồ họa, trong khi XAML đã được biên dịch thành MSIL và dựa trên CLR để làm đồ họa :))

+1

Xaml không phải là một công nghệ định hướng trình bày - nó cũng được sử dụng để xác định luồng công việc và dịch vụ. Ngoài ra, Xaml không được biên dịch thành MSIL - nó được biên dịch thành BAML. Xin lỗi để đống này trên đó quá nhưng CLR không làm đồ họa - công nghệ đó là không liên quan đến ngăn xếp trình bày (hoặc WPF hoặc SL) mà là dựa trên DirectX trong trường hợp của WPF. –

+0

Cảm ơn bạn đã sửa chữa tôi .. Tôi không biết rằng tôi đã sai: O – cwap

0

Mozilla tạo ra giao diện người dùng của họ ngôn ngữ mô tả XUL ban đầu để có thể dễ dàng tùy chỉnh giao diện người dùng của tất cả các sản phẩm của họ. Ngày nay nó là một gói có thể được bao gồm trong các ứng dụng khác và cũng có chức năng mở rộng.

Mặc dù XUL chủ yếu tập trung vào giao diện người dùng, nó cũng chứa các cấu trúc khác dưới dạng Sự kiện và Tập lệnh và Nguồn dữ liệu. Tuy nhiên theo như tôi biết XAML tích hợp các khái niệm này chặt chẽ hơn vào các khuôn khổ .NET (và đính kèm) của chúng. Nhưng tôi không chắc nếu điều này là đủ để gọi nó là duy nhất và cuốn tiểu thuyết.

1

**** XAML, XUL và XHTML chồng chéo ****

Sự chồng chéo lớn nhất giữa XAML và các tiêu chuẩn khác nằm trong sự ủng hộ của mình đối với các khái niệm rút ra từ HTML/XHTML. Sự tương đồng giữa XAML và HTML rất nhiều. Chồng chéo với HTML không giới hạn ở XAML, tất nhiên. Phương ngữ XML GUI nổi tiếng khác — XUL của Mozilla — cũng trùng lặp với XHTML. Cuối cùng, cả XAML và XUL chồng lên nhau ở những nơi mà XHTML thậm chí không bao gồm. XHTML và XUL có thể được kết hợp trong một tài liệu (ít nhất là trong trình duyệt Mozilla). Sự kết hợp như vậy là một tương tự thô đối với việc sử dụng XAML không phải Web. Trong thực tế, XUL của Mozilla là một chất tương tự thô đối với một số ứng dụng của XAML.

nhưng được kết hợp với nhau, chúng thực sự cấu thành không có gì hơn hỗ trợ cho hầu hết các nội dung HTML cơ bản và các tiện ích biểu mẫu đã sẵn sàng trong các ứng dụng web thông thường. XUL chồng chéo XHTML ít hơn mà XAML làm vì XUL cố gắng tách riêng nó khỏi XHTML. Nó không cố gắng trở thành một sự thay thế drop-in, như XAML.

Một điều tôi thích về XAML so với HTML là sự tự do gia tăng từ các tính năng có nguồn gốc xuất bản của HTML. XAML giải phóng bạn khỏi các thẻ h1, các thẻ mã và một loạt các thẻ thích hợp linh tinh khác được sử dụng không thường xuyên trong HTML. Đối với mục đích thực tế, các thẻ này hoạt động nhiều hơn thông tin kiểu trong các tài liệu HTML hiện đại.

HTML cũng là giao diện người dùng kém cho các ứng dụng, bất chấp mức độ phổ biến của Web. Cả XAML và XUL đều đi một chặng đường dài hướng tới việc khắc phục vấn đề đó. Bạn có thể viết lại các ứng dụng Web của bạn trong XAML và chúng trông đẹp hơn các bản gốc HTML, nếu chỉ XAML có hỗ trợ CSS tốt hơn.

1

Ca cao từ Apple hoặc sự kiện trước đó NeXtStep có thứ gì đó tương tự lâu trước XAML.

GUI được tạo bằng trình tạo giao diện, được gọi là tệp nib (Nextstep Interface Builder), chứa bố cục, ràng buộc, hành động, cửa hàng và trường hợp đối tượng được tuần tự hóa. Trước đây, các tệp nib này được lưu trữ ở định dạng tệp nhị phân, nhưng ngày nay nó cũng là xml (xib).

Vì vậy XAML không phải là lần đầu tiên không có gì độc đáo cả.

+0

Tôi có phát hiện thấy một ngọn lửa ở đó không? ;) –

+0

Tôi làm việc hàng ngày với .NET và tôi thực sự đánh giá cao công nghệ XAML nhưng tôi yêu Cocoa, Objective-C và cách của Apple. – Enyra

+1

Không phải là ngọn lửa, XAML là một đồ thị đối tượng được tuần tự hóa, giống như các tệp NIB. –

1

Đọc so sánh với các công nghệ trình bày khác với một hạt muối - Xaml là một phương pháp xây dựng và soạn các đối tượng .NET. Đó là hoàn toàn trái ngược với các hệ thống khác được thiết kế như một cách để xây dựng giao diện người dùng. Điều tốt đẹp về Xaml là nó là độc lập của chồng công nghệ được sử dụng cho nó - đó là một ngôn ngữ khai báo có mục đích bất khả tri giống C# hơn XHTML. Theo cách đó, nó là duy nhất.

0

XAML là ngôn ngữ xây dựng đồ thị đối tượng bằng phương ngữ XML (không phải là lựa chọn lớn nhất). Mỗi phần tử XAML là một đối tượng instantiation và các thuộc tính tương ứng là các thuộc tính gán cho instance nói trên. Vì XML là một ngôn ngữ dựa trên chuỗi, giá trị thuộc tính cần phải được chuyển đổi từ loại chuỗi của chúng thành bất kỳ loại nào mà thuộc tính mong đợi. Điều này được thực hiện bằng cách sử dụng con cháu của TypeConverter rằng bộ vi xử lý XAML định vị và sử dụng tự động. XAML và WPF đi kèm với một bộ mặc định của TypeConverters tương ứng với các loại được cung cấp và bạn có thể tự cung cấp.

Một cái nhìn tổng quan sơ bộ quá trình định nghĩa như sau:

<classG-in-namespace-A 
    xmlns="namespace-A" 
    xmlns:alias-B="namespace-B" 
    xmlns:alias-C="clr-namespace:namespace-C;assembly=assembly-of-namespace-C" 
    propertyG1="simple text value stipulation" 
    propertyG2="{alias-C:classH-in-namespace-C propertyC1=valueC1,..}" 
    > 
    <classG-in-namespace-A.propertyG2> 
     <alias-B:class-I-in-namespace-B propertyB1=valueB1,...> 
      class-I-in-namespace-B's content property value assignment 
     </alias-B:class-I-in-namespace-B> 
    </classG-in-namespace-A.propertyG2> 
    classG-in-namespace-A's content property value assignment 
</classG-in-namespace-A> 

Có nhiều loại tiện ích được cung cấp bởi XAML và WPF ngoài TypeConverters tạo điều kiện tập bất động sản.Đặc biệt, có những điều sau đây: ResourceDictionary, ObjectDataProvider, RelativeSource, StaticResource, DynamicResource, ...and more as shown in Microsoft Docs