Send As SMS

2005-03-31

How about a XHTML based UI render engine?

OpenSource是一个热闹、喧嚣的世界,在同一个技术领域,就会有众多的项目来提供各自的解决方案。大浪淘沙,真正成为大家接受的、普遍应用的framework、library或者tools,比例可能就不高了。

在RCP这个领域,普遍接受的一种方式就是采用XML来定义UI,毫无疑问,这种做法将最终成为RCP的主流,采用这种方式的项目或者技术包括:
  1. Microsoft. MS的官方技术就是XAML,很有可能成为明天的一个事实标准。
  2. Mozilla的XUL。是Mozilla的底层基础,也成为很多其它项目的参考。
  3. Luxor:以XUL为基础的Java实现。
  4. SwiXML:XML + Swing,跟Swing结合紧密。
  5. JDNC:也提供了基于XML的UI框架。
  6. MXML:Macromedia Flex所采用的用来描述基于Flash的UI。
以上可能仅仅是千军万马中的一些领头羊,有的是商业化的产品和成熟的技术,有的则还是OpenSource领域的一些年轻的项目。其它各具特色的类似技术,如果在google上进行搜索,真实数不胜数。
其实,我个人认为,XHTML毫无疑问,应该被包括到这样的一个UI框架中,并且新的框架应该尽可能使XHTML的一个自然扩展。这样考虑的出发点是:
  1. XHTML已经是一个非常成熟的技术,具有最多的应用(虽然现在的大部分WEB并不完全是XHTML的,但两者的距离非常小),支持XHTML的话,可以最大限度的服用历史的资源。
  2. XHTML作为一个多年发展的技术,在UI上具有相当的表达能力,这些都是目前的这些框架所不具备的。象Bindows这样的框架,居然可以在XHTML的基础之上,render出相当复杂的UI,这也足以说明XHTML的UI表述能力是相当强大的。
  3. 现 在的很多XML UI框架更多的是对桌面组件的一个XML化,其基础是一些标准化的UI组件,这些恰恰是XHTML的缺陷,XHTML更多的偏重于文档式的界面,在交互能 力上存在不足。但这两者恰恰是互补的,缺一不可。像SwiXML这样的XML要表述XHTML的UI能力,是相当费劲的。
  4. XHTML提供的布局和排版能力,远远的超过了Swing中的Layout,而且要简单很多。同样的功能,在Swing中对应无数的LayoutManager,但都没有达到XHTML的表达能力和简单程度。
实际上,XML的namespace能力实际上提供了一种在XHTML的基础上进行扩展的能力,而且在现有的很多产品中已经应用了这种技术,例如, Microsoft就充许在IE中浏览VML,而且VML可以集成在HTML中。Mozilla也有对SVG的支持插件。这给我们提供了一种新的思路,在 设计这些新的UI框架时,我们是否可以基于XHTML,并进行相应的扩展呢?
  1. 利用XHTML作为类似HTML的表述语言,支持HTML,CSS等,支持DOM和脚本访问。
  2. 使用SVG作为Graph的表述语言。
  3. 可以集成一个标准的桌面组件的命名空间,例如:XUL
  4. 在此基础上,定义一个扩展的框架,支持扩展的XML命名空间,各自满足不同的需要。可以根据需要来进行用户自己的扩展。
我想,如果有了这样的一套XML UI render的框架,或许在一定的程度上可以实现对UI的统一,到达一个新的高度。

1 Comments:

At 2:57 下午, wangzx said...

XTF - an eXtensible Tag Framework for Mozilla

一个类似的概念

 

张贴评论

<< Home