打印

silverlight:离WPF究竟有多远?

silverlight从一开始就跟WPF联系在了一起 无论是名字(WPF/E)还是形式(xaml+C#)
但是它究竟离WPF有多远?
前段时间做过一个WPF的东西 然后开始学silverlight 看完了MSDN里所有的Object真的有点失望的感觉
WPF的表现能力真的没比html强多少 WPF里极其重要的3D视口 样式 资源 canvas以外的各种容器 定位方式都没有被实现
连最重要的数据绑定 故事板 都是变通实现的
最要命的是 它的xaml执行方式居然变成纯文本解释执行 总的来看 除了对矢量图和视频的支持略为提高之外 没什么比html强的多的地方

TOP

由于名称的关系,WPF与WPF/E(Silverlight)一直被认为是类似的东西.
其实两者除了呈现UI的部分使用的是共通语言XAML之外,
两者在本质上有很大的不同.
甚至,XAML对WPF与Silverlight有不同的意义,也不能算是两者间"共通的语言"
XAML对WPF来说,是一种把.NET程式语言改用XML来描述的方式.
换句话说,XAML用在WPF上,像是另外一种程式语言.与C#,VB,IronPython相似.
所以XAML能做的,C#,VB一样都可以做到.但是反过来,C#,VB能做的,
XAML不一定能做到,因为XAML是为了配合开发工具,特别设计出来的一种语言,
本身有他的局限性,所以还是得配合正规的程式语言,才能完成一个真正有用的程式.
但是以目前XAML所具备的能力,不靠C#,VB而做到平常简单Flash可以做到的,应该是没啥问题.
因此,Application=Code+Markup的作者Petzold才会把这本书的结构写成先用以C#来写WPF程式,后半部才介绍XAML.避免大家误解WPF=XAML.
XAML还可以用在WF上,所以并不局限于WPF.如果用了XAML,以为这就是WPF的全部,就大错特错啰!
然而,XAML对Silverlight来说,本质比较贴近SVG.
XAML用来描述构成画面的结构树,然后配合Javascript去操作这颗表示UI的树,以达到互动的效果.所以对Silverlight来说,XAML像是用来扩充HTML/CSS原本不足的一组Tag.就像Firefox之中,一样可以用Javascript去操作SVG所描述的画面,借以达成多媒体效果.

[ 本帖最后由 langmuir 于 2007-8-1 22:52 编辑 ]

TOP