2009-06-03 11 views
6

Rozmawiałem z kolegą na temat XAML i tego, jak jest to zarówno język prezentacji i opisu obiektu, a zatem zupełnie wyjątkowy i nowatorski wśród technologii IT.Jak wyjątkowy jest XAML?

Czy to prawda, że ​​XAML jest wyjątkowy i nowatorski?

Czy XAML ma jakieś odpowiedniki lub poprzedniki w świecie Java lub gdziekolwiek indziej? Wierzę, że ktoś powiedział mi, że Java Server Faces jest podobny do WPF, więc jaki jest tam odpowiednik XAML?

Wiem, że MXML w Flex jest podobny, ale o ile pamiętam istnieją pewne zasadnicze różnice strukturalne, z tego co pamiętam MXML tak naprawdę nie opisuje obiektów, ale jest raczej czystym XMLem prezentacji.

+0

musi być wspólnotą Wiki – NinethSense

+0

@NinethSense: Comminity Wiki? Czemu? – AnthonyWJones

Odpowiedz

13

Jest to przypadek ogólnej technologii mającej tak powszechne, typowe zastosowanie, które staje się synonimiczne dla określonego zastosowania. Na przykład, dyskusje JavaScriptu często zakładają kontekst przeglądarki i manipulację HTML DOM bez potrzeby, aby ktokolwiek musiał to wyraźnie powiedzieć.

Ściśle mówiąc XAML nie jest jak XUL lub SVG oprócz bycia XML. XUL, SVG mają zdefiniowaną składnię do deklarowania interfejsu użytkownika lub elementów graficznych, a surowy XAML nie.

XAML może na przykład być również używany do opisywania przepływów pracy w fundamencie przepływu pracy.

XAML to tak naprawdę podejście do czytania XML w celu opisania typów i właściwości tych typów. Na przykład właściwość typu może być opisana za pomocą atrybutu lub elementu, o ile jego nazwa może być poprawnie interpretowana. XAML zawiera także rozszerzenie podstawowej składni XML, w której {} w atrybucie może działać jako skrót dla złożonego elementu.

Nie natknąłem się już na takie rzeczy. Wszystkie inne technologie oparte na XML pochodzą z określonego celu, XAML jest pierwszym zastosowaniem XMLa, które widziałem, jest wyodrębnieniem dowolnej konkretnej nomenklatury, ale tylko sposobem odwzorowania XML na typy.

0

Oprócz XAML, masz XUL używany przez Mozillę. Z drugiej strony, SVG jest polecany przez W3C.

-3

Cóż, XAML jest w zasadzie zaawansowanym znacznikiem dla .NET, dlatego myślę, że można narysować wiele podobieństw od XAML do XHTML - Oba są technikami prezentacji.

Jest wiele różnic, jak również ofc (XHTML jest interpretowany przez przeglądarkę do stworzenia grafiki, a XAML jest kompilowany do MSIL i opierając się na CLR zrobić grafiki :))

+1

Xaml nie jest technologią zorientowaną na prezentację - służy także do definiowania przepływów pracy i usług. Ponadto Xaml nie jest skompilowany do MSIL - jest skompilowany do BAML. Przepraszam, że tam też się to robi, ale CLR nie robi grafiki - ta technologia nie ma związku ze stosem prezentacji (ani WPF, ani SL), który jest oparty na DirectX w przypadku WPF. –

+0

Dzięki za poprawienie mnie .. Nie miałem pojęcia, że ​​się mylę: O – cwap

0

Mozilla stworzył ich UI język opisu: XUL pierwotnie w celu łatwego dostosowania interfejsu użytkownika wszystkich swoich produktów. Obecnie jest to pakiet, który można dołączyć do innych aplikacji, a także ma rozszerzoną funkcjonalność.

Chociaż XUL skupia się głównie na reprezentacji UI, zawiera również inne struktury, takie jak zdarzenia i skrypty oraz źródła danych. Niemniej jednak, o ile mi wiadomo, XAML integruje te koncepcje znacznie prościej w swoich systemach .NET (i dołączonych). Ale nie jestem pewien, czy to wystarczy, by nazwać to wyjątkowym i nowatorskim.

1

**** XAML, XUL i XHTML Nakładanie ****

Największe podobieństwo między XAML oraz innych standardów leży w jego poparcia dla koncepcji zaczerpniętych z HTML/XHTML. Podobieństwa między XAML i HTML są liczne. Nakładanie się z HTML nie jest oczywiście ograniczone do XAML. Inny dobrze znany dialekt GUI XML - XUL Mozilli również pokrywa się z XHTML. Wreszcie zarówno XAML, jak i XUL nakładają się w miejscach, których XHTML nawet nie zawiera. XHTML i XUL można łączyć w jeden dokument (przynajmniej w przeglądarkach Mozilli). Taka kombinacja jest szorstkim analogiem do nie-sieciowych zastosowań XAML. W rzeczywistości sam XUL Mozilli jest szorstkim analogiem do niektórych zastosowań XAML.

, ale razem stanowią naprawdę tylko wsparcie dla większości podstawowych treści HTML i formularzy, które są już rutynowe w zwykłych aplikacjach internetowych. XUL nakłada się na XHTML mniej niż XAML, ponieważ XUL próbuje oddzielić się od XHTML. Nie próbuje być zamiennikiem, jak XAML.

Jedną rzeczą, którą lubię w XAML w porównaniu z HTML, jest zwiększona swoboda w stosunku do publikowanych funkcji HTML. XAML uwalnia cię od tagów h1, tagów kodowych i mnóstwa innych różnorodnych tagów niszowych używanych nieczęsto w HTML. Ze względów praktycznych znaczniki te działają jak niewiele więcej niż informacje o stylach w nowoczesnych dokumentach HTML.

HTML jest również słabym GUI dla aplikacji, pomimo popularności sieci. Zarówno XAML, jak i XUL idą dużo w kierunku rozwiązania tego problemu. Możesz ponownie napisać swoje aplikacje internetowe w XAML i wyglądałyby lepiej niż oryginały HTML, gdyby tylko XAML miał lepszą obsługę CSS.

1

Kakao z Apple lub wydarzenie wcześniej NeXtStep miało coś podobnego na długo przed XAML.

GUI jest tworzony za pomocą konstruktora interfejsów, który tworzy tak zwane pliki nib (Nextstep Interface Builder), które zawierają układ, powiązania, akcje, wyjścia i serializowane instancje obiektów. W dawnym czasie te pliki stalówki były przechowywane w formacie binarnym, ale obecnie jest to również xml (xib).

Tak więc XAML nie jest pierwszym nie unikalnym w ogóle.

+0

Czy wykryłem tam płomień ognia? ;) –

+0

Pracuję dzień w dzień z .NET i naprawdę doceniam technologię XAML, ale uwielbiam Cocoa, Objective-C i sposób Apple. – Enyra

+1

Nie jest to wcale płomień, XAML jest serializowanym wykresem obiektów, podobnie jak pliki NIB. –

1

Przeczytaj porównania do innych technologii prezentacji z przymrużeniem oka - Xaml to metoda konstruowania i komponowania obiektów .NET. Stanowi to wyraźny kontrast w stosunku do innych systemów zaprojektowanych jako sposób na budowanie interfejsów użytkownika. Zaletą Xaml jest to, że jest to niezależny stosu technologicznego, którego używał do - jest to agnostyczny język deklaratywny, bardziej podobny do C# niż XHTML. W ten sposób jest wyjątkowy.

0

XAML to obiektowy język budowy w dialekcie XML (nie jest to najlepszy wybór). Każdy element XAML jest instancją obiektu, a odpowiednie atrybuty są przypisaniami właściwości do wspomnianej instancji. Ponieważ XML jest językiem opartym na łańcuchach, wartości właściwości muszą zostać przekonwertowane z ich typu łańcucha na typ, jakiego oczekuje właściwość. Odbywa się to przy użyciu potomków TypeConverter, które procesor XAML lokalizuje i wykorzystuje automatycznie. XAML i WPF pochodzą z domyślnym zestawem TypeConverters odpowiadającym ich dostarczonym typom i możesz podać własne.

A rough przegląd procesu definicja jest następująca:

<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> 

Istnieją typy użytkowe przewidziane przez XAML i WPF poza TypeConverters które ułatwiają zadania własności.W szczególności, są następujące: ResourceDictionary, ObjectDataProvider, RelativeSource, StaticResource, DynamicResource, ...and more as shown in Microsoft Docs

Powiązane problemy