Насколько уникален XAML? - PullRequest
6 голосов
/ 03 июня 2009

Говорил с коллегой о XAML и о том, как он является языком представления и описания объектов, и поэтому является совершенно уникальным и новым среди ИТ-технологий.

Правда ли, что XAML является уникальным и новым?

Есть ли у XAML аналоги или предшественники в мире Java или где-либо еще? Я полагаю, что кто-то сказал мне, что Java Server Faces похож на WPF, так что там эквивалент XAML?

Я знаю, что MXML во Flex похож, но, насколько я помню, есть некоторые существенные структурные отличия, от того, что я помню, MXML на самом деле не описывает объекты, но представляет собой скорее чистый XML-презентацию.

Ответы [ 8 ]

13 голосов
/ 03 июня 2009

Это тот случай, когда обычная технология имеет такое подавляющее общее специфическое использование, которое становится синонимом конкретного применения. Например, обсуждения Javascript часто предполагают контекст браузера и манипулирование HTML DOM, и никто не должен прямо говорить об этом.

Строго говоря, XAML не похож на XUL или SVG, кроме XML. XUL, SVG имеют определенный синтаксис для объявления пользовательского интерфейса или графических элементов, необработанный XAML - нет.

XAML, например, также можно использовать для описания рабочих процессов в основании Workflow.

XAML на самом деле является подходом к чтению XML для описания типов и свойств этих типов. Например, свойство типа может быть описано либо с использованием атрибута, либо элемента, если его имя можно правильно интерпретировать. XAML также включает в себя расширение базового синтаксиса XML, где {} в атрибуте может выступать в качестве сокращения для сложного элемента.

Я такого раньше не встречал. Все другие технологии, основанные на XML, поставляются с определенной целью, XAML - это первое использование XML, которое я видел, это отклонение от любой конкретной номенклатуры, а просто средство отображения XML на типы.

1 голос
/ 03 июня 2009

Прочитайте сравнение с другими технологиями представления с добавлением соли - Xaml - это метод построения и составления объектов .NET. Это резко контрастирует с другими системами, которые были разработаны как способ создания пользовательских интерфейсов. Хорошая особенность Xaml заключается в том, что он независим от технологического стека, для которого он используется - это не зависящий от цели декларативный язык, более похожий на C #, чем XHTML. Таким образом, он уникален.

1 голос
/ 03 июня 2009

Какао от Apple, или событие ранее NeXtStep было нечто подобное задолго до XAML.

GUI создается с помощью построителя интерфейса, который создает так называемые nib ( Nextstep Interface Builder ) файлы, которые содержат макет, привязки, действия, выходы и экземпляры сериализованных объектов. В прежние времена эти файлы пера хранились в двоичном формате, но в настоящее время это также xml (xib).

Значит, XAML вовсе не первый, не уникальный.

1 голос
/ 03 июня 2009

**** XAML, XUL и XHTML перекрываются ****

Наибольшее совпадение между XAML и другими стандартами заключается в поддержке концепций, взятых из HTML / XHTML. Сходства между XAML и HTML многочисленны. Конечно, перекрытие с HTML не ограничивается XAML. Другой известный диалект XML-интерфейса - Mozilla XUL - также пересекается с XHTML. Наконец, XAML и XUL перекрываются в тех местах, которые XHTML даже не включает. XHTML и XUL можно объединить в одном документе (по крайней мере, в браузерах Mozilla). Такая комбинация является грубым аналогом для использования XAML без Web. Фактически, один XUL Mozilla является грубым аналогом для некоторых применений XAML.

но вместе взятые, они действительно представляют собой не что иное, как поддержку большинства основного содержимого HTML и виджетов форм, которые уже являются обычными в обычных веб-приложениях. XUL перекрывает XHTML меньше, чем XAML, потому что XUL пытается отделить себя от XHTML. Он не пытается быть заменой, как XAML.

Одна вещь, которая мне нравится в XAML по сравнению с HTML, это увеличенная свобода от основанных на публикации функций HTML. XAML освобождает вас от тегов h1, кодовых тегов и множества других разнообразных нишевых тегов, редко используемых в HTML. В практических целях эти теги действуют как нечто большее, чем информация о стиле в современных документах HTML.

HTML также является плохим графическим интерфейсом для приложений, несмотря на популярность Интернета. И XAML, и XUL имеют большое значение для устранения этой проблемы. Вы можете переписать свои веб-приложения на XAML, и они будут выглядеть лучше, чем оригиналы HTML, если только XAML будет лучше поддерживать CSS.

0 голосов
/ 23 октября 2017

XAML - это язык построения графов объектов на диалекте XML (не самый лучший выбор). Каждый элемент XAML является экземпляром объекта, а соответствующие атрибуты являются назначениями свойств в указанном экземпляре. Поскольку XML является языком на основе строк, значения свойств необходимо преобразовать из их строкового типа в любой тип, который ожидает свойство. Это делается с использованием потомков TypeConverter, которые процессор XAML находит и использует автоматически. XAML и WPF поставляются с набором по умолчанию TypeConverter, соответствующим их предоставленным типам, и вы можете предоставить свой собственный.

Грубый обзор процесса определения выглядит следующим образом:

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

Существуют типы утилит, предоставляемые XAML и WPF, помимо TypeConverters, которые облегчают присваивание свойств. В частности, есть следующие: ResourceDictionary, ObjectDataProvider, RelativeSource, StaticResource, DynamicResource, ... и более, как показано в Документах Microsoft

0 голосов
/ 03 июня 2009

Mozilla изначально создала язык описания пользовательского интерфейса XUL , чтобы иметь возможность легко настраивать пользовательский интерфейс всех своих продуктов. В настоящее время это пакет, который может быть включен в другие приложения, а также имеет расширенную функциональность.

Хотя XUL в основном фокусируется на представлении пользовательского интерфейса, он также содержит другие структуры, такие как события, сценарии и источники данных. Тем не менее, насколько я знаю, XAML гораздо теснее интегрирует эти концепции в свои .NET (и присоединенные) фреймворки. Но я не уверен, что этого достаточно, чтобы назвать его уникальным и новым.

0 голосов
/ 03 июня 2009

Что ж, XAML - это, по сути, продвинутая разметка для .NET, поэтому я думаю, что вы можете провести множество параллелей от XAML до XHTML - и то, и другое - техника представления.

Существует также много отличий (XHTML интерпретируется браузером для создания графики, в то время как XAML компилируется в MSIL и полагается на CLR для создания графики :))

0 голосов
/ 03 июня 2009

Помимо XAML, у вас есть XUL, который используется Mozilla. SVG, с другой стороны, рекомендован W3C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...