Wpf XAML有多独特?

Wpf XAML有多独特?,wpf,silverlight,xaml,Wpf,Silverlight,Xaml,我正在和一位同事谈论XAML,以及它是一种表示和对象描述语言,因此在it技术中非常独特和新颖 XAML是独一无二和新颖的,这是真的吗 XAML在Java世界或其他地方是否有任何对应或前身?我相信有人告诉我Java Server Faces类似于WPF,那么XAML的等价物是什么呢 我知道Flex中的MXML很相似,但据我记忆所及,在结构上有一些主要的区别,我记得MXML并没有真正描述对象,而是更纯粹的表示XML。除了XAML,还有Mozilla使用的XUL。另一方面,SVG是W3C推荐的一种格式

我正在和一位同事谈论XAML,以及它是一种表示和对象描述语言,因此在it技术中非常独特和新颖

XAML是独一无二和新颖的,这是真的吗

XAML在Java世界或其他地方是否有任何对应或前身?我相信有人告诉我Java Server Faces类似于WPF,那么XAML的等价物是什么呢


我知道Flex中的MXML很相似,但据我记忆所及,在结构上有一些主要的区别,我记得MXML并没有真正描述对象,而是更纯粹的表示XML。

除了XAML,还有Mozilla使用的XUL。另一方面,SVG是W3C推荐的一种格式。

嗯,XAML基本上是.NET的高级标记,因此我认为您可以从XAML到XHTML之间找到很多相似之处—这两种都是表示技术


ofc也有很多不同之处(浏览器解释XHTML生成图形,而XAML被编译成MSIL并依赖CLR生成图形:)

Mozilla最初创建了UI描述语言,以便能够轻松定制所有产品的UI。 现在,它是一个包,可以包含在其他应用程序中,还具有扩展功能


虽然XUL主要关注UI表示,但它还包含其他结构,如事件、脚本和数据源。尽管如此,据我所知,XAML将这些概念更紧密地集成到了他们的.NET(和附加的)框架中。但我不确定这是否足以称之为独特和新颖****

XAML和其他标准之间最大的重叠在于它支持从HTML/XHTML中提取的概念。XAML和HTML之间有许多相似之处。当然,与HTML的重叠并不限于XAML。另一种著名的XML GUI方言Mozilla的XUL也与XHTML重叠。最后,XAML和XUL在XHTML甚至不包括的地方重叠。XHTML和XUL可以组合在一个文档中(至少在Mozilla浏览器中)。这种组合对于XAML的非Web使用是一种粗略的模拟。事实上,Mozilla的XUL本身就是XAML某些用途的粗略模拟

但总而言之,它们实际上只不过是对大多数基本HTML内容和表单小部件的支持,而这些小部件在普通Web应用程序中已经司空见惯了。XUL与XHTML的重叠少于XAML,因为XUL试图将自己与XHTML分离。它并不像XAML那样试图成为一个替代品

与HTML相比,XAML有一点我非常喜欢,那就是它增加了从HTML的发布派生特性中解放出来的自由。XAML将您从h1标记、代码标记和大量其他在HTML中不常使用的小标签中解放出来。出于实际目的,这些标记只不过是现代HTML文档中的样式信息


HTML对于应用程序来说也是一个糟糕的GUI,尽管Web很流行。XAML和XUL在解决这个问题方面都有很大的进步。您可以用XAML重新编写Web应用程序,只要XAML有更好的CSS支持,它们就会比HTML原件看起来更好。

这是一种通用技术,具有如此广泛的通用特定用法,与特定用法变得一致。例如,关于Javascript的讨论通常假设浏览器上下文和对HTMLDOM的操作,而无需任何人明确说明

严格来说,XAML除了是XML之外,与XUL或SVG不同。SVG有定义的语法来声明用户界面或图形元素,而原始XAML没有

例如,XAML也可以用来描述工作流基础中的工作流。 XAML实际上是一种读取XML以描述这些类型的类型和属性的方法。例如,类型的属性可以使用属性或元素来描述,只要其名称可以正确解释。XAML还包括对基本XML语法的扩展,其中属性中的{}可以作为复杂元素的缩写


我以前从未遇到过这种事。所有其他基于XML的技术都有一个特定的用途,XAML是我见过的第一个使用XML的技术,它包括任何特定的术语,但只是将XML映射到类型的一种手段。

来自苹果的Cocoa,或者早在XAML之前的事件NeXtStep就有类似的东西

GUI是使用接口生成器创建的,它生成所谓的nib()文件,其中包含布局、绑定、操作、出口和序列化对象实例。以前,这些nib文件是以二进制文件格式存储的,但现在它也是xml(xib)


因此,XAML并不是第一个,也不是唯一的。

请仔细阅读与其他表示技术的比较——XAML是一种构造和组合.NET对象的方法。这与其他设计用于构建用户界面的系统形成了鲜明的对比。Xaml的优点在于它独立于它所使用的技术堆栈——它是一种与用途无关的去极化语言,更像是C#而不是XHTML。通过这种方式,它是独一无二的。

XAML
是一种以
XML
为方言的对象图构造语言(不是最好的选择)。每个
XAML
元素都是一个对象实例化,相应的属性是对所述实例的属性分配。由于
XML
是一种基于字符串的语言,因此需要将属性值从其字符串类型转换为属性所需的任何类型。这是使用
TypeConverter
的子体来完成的,该子体由
XAML
处理器自动定位和使用。XAML和WPF附带了一组默认的类型转换器,与它们提供的类型相对应,您可以提供自己的类型转换器

大致概述
<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>