InfoQ

新闻

XML是用户界面(UI)开发的未来吗?

作者 Jonathan Allen译者 胡键 发布于 2007年4月9日 上午7时55分

社区
.NET,
Java
主题
RIA,
Silverlight,
富客户端/桌面
标签
AJAX,
Flex,
WPF/E,
Flash,
Apollo,
XAML,
WPF

或者是JavaScript?新一茬的桌面用户界面框架有一个共同的趋势:基于XML,并具备某种程度的JavaScript支持。在此,让我们简要地看看AJAX,WPF/XAML,Flex/MXML和Firefox的Gran Paradiso。

首先登场的是AJAX,Web 2.0狂潮的典范。作为一门充分利用现有HTML和JavaScript的新技术,几乎没有理由不使用HTML。尽管目前还不适合桌面应用程序的开发,但它的确为后来者搭建了一个舞台。

微软把宝重重地押在了一门新的基于XML的语言上:可扩展应用程序标记语言(Extensible Application Markup Language,XAML)。传统的Windows开发者可以通过Windows Presentation Foundation(WPF)使用它。在XAML中WPF更象ASP.NET,被用于界面表现,而其它的,如C#或VB,被用在代码分离的文件中进行事件处理。

除了技术区别之外,XAML还从根本上改变了用户界面设计的开发循环。用户界面专家和图形艺术家可以使用XAML编辑器(如Expression BlendZAM 3D)创建用户界面,然后将文件移交给使用Visual Studio的开发人员。至少在理论上,开发人员可以不用再根据那些使用Visio或Photoshop拼凑的非交互性截屏进行工作。从ASP.NET相当令人迷惑的成功上可以判断,它的效果令人起疑,但是至少存在潜力。

XAML的故事并没有在这儿打住。微软同样期望通过Windows Presentation Foundation/Everywhere(WPF/E)获得跨平台的支持。这个产品开始将以JavaScript作为它的程序、事件处理语言,在今后的版本中将支持公共语言运行时(CLR)。它可以被视为其他浏览器驻留框架(如Flash/Flex)的直接竞争对手。

关于XAML技术需要留意的是,这些设计器目前都还没有真正意义上成型的形式。Expression Blend目前只是处于预发布阶段。今年晚些时候,VS Orcas将到达Beta版。在此之前,Visual Studio将不会有任何多于CTP(Community Technology Preview,社区技术预览版)的功能。

接下来的是MXML。它是在Adobe Flex中被使用的表现语言,同样基于XML。它结合了JavaScript的派生产品——ActionScript,最初它是由Macromedia在2004年发布的。尽管工具的支持经过了多年改进,但是它仍然被桎梏于浏览器和Flash播放器中。Adobe实验室想通过Apollo计划来改变这一切。Apollo计划的目标就是创建一个将Flex从浏览器解放的跨平台运行时(Runtime),这样它就可作为一个单独的桌面应用程序运行。实际上,这是剽窃了Java最初的剧本,他们将飞机开入了微软的客厅。凭借出众的界面水准,它们有可能赢得比赛。

最后是Firefox带来的新礼物Gran Paradiso。与微软不同,它为Web引入了一门新语言。也不像Abode,它一开始就创建了一个新的运行时。Firefox团队忠于它们目前拥有的东西。Gran Paradiso使用与AJAX相同的底层技术——HTML和JavaScript,并且它仍然生活在浏览器之中。区别是,它计划提供DOM存储、脱机执行和同步模型等功能,该模型允许Web应用程序在部分或完全的非连接模式下运行。

过于依赖一个特定的浏览器可能最终会击沉Gran Paradiso。不像WPF/E和Apollo使用跨平台的运行时,它们期望用户不需要为跨平台这些问题烦心,Firefox是一个高度从应用程序自身夺取屏幕空间的可视化帧。那些使用IE、Safari或Opera的用户,肯定会对于必须使用Firefox感到些许不安。

结合XML和某种形式的JavaScript成为了这些新框架的主旋律。JavaScript到底是下一个超级语言,还只是一个短期的异常?

译者简介:胡键是InfoQ中文站的志愿者翻译,自2000年西安交通大学硕士毕业后一直从事软件开发。2002年开始使用Java,在项目开发中经常采用OpenSource工具,如Ant、Maven、Hibernate、Struts等,目前正在研究信息集成方面的规范和技术。可以通过jianhgreat AT hotmail.com与他联系,或访问博客:http://foxgem.javaeye.com/。加入InfoQ中文站志愿者翻译队伍,请邮件至china-editorial@infoq.com

2 条回复

回复

XUL 发表人 Gao Ang 发表于 2007年4月9日 上午8时34分
XML的优点 发表人 Xiaogang Guo 发表于 2007年6月4日 下午12时22分
  1. 返回顶部

    XUL

    2007年4月9日 上午8时34分 发表人 Gao Ang

    前段时间关注Mozilla的XML用户界面语言XUL(XML User Interface Language),感觉很有意思。

  2. 返回顶部

    XML的优点

    2007年6月4日 下午12时22分 发表人 Xiaogang Guo

    用XML的话设计器容易做吧。而且用XML界面元素之间的层次关系可以看得比较清楚,layout也容易很多。

独家内容

剖析短迭代

敏捷教练Dave Nicolette提出:我们应该如何设定迭代长度?是要根据发布周期的时间么?使用短迭代又有哪些好处?

应用JSF、Ajax和Seam开发Portlets(1/3)

本文主要讲述了如何用JBoss Portlet Container 和JBoss Portlet Bridge创建新项目,怎样配置一个JSF应用去使用JBoss Portlet Bridge,以及JBoss Portlet Bridge所具备的功能。

AtomServer:数据分发的发布动力(第二部分)

在这篇文章里,Bryon Jacob和Chris Berry将和我们继续探讨AtomServer,它是基于Apache Abdera的完整Atom存储实现。作者还创建了几个Atompub规范扩展,其中包括自动标记、批处理和Feeds聚合。

架构师(试刊第二期)

InfoQ中文站的电子杂志《架构师》试刊第二期出版了!相比于上期,我们在内容的选择安排和版式上都根据读者的意见重新做了修正。“细节决定成败”,我们希望基于InfoQ中文站的专业内容,《架构师》能逐渐成为大家喜欢的电子刊物!

一种正规的性能调优方法:基于等待的调优

在本文中,Steven Haines探讨了Web应用性能调优问题。该领域过去更像是一门艺术而不是一门科学。他提出了一种称为基于等待调优的方法,使整个调优过程更加可度量,也因此更具科学性。

Java程序员ActionScript 3入门

通常来说,改变技术路线时最艰难的部分是辨别语言语法之间的不同。这篇文章就为Java开发者提供了一份如何转向Flex基础语言ActionScript的指南。

浅谈如何创建Rails应用

本视频主要以财帮子为例,介绍了如何创建一个PV为百万级的Rails应用。其中包括:Rails应用的服务器架构、Rails Cache的优化、负载均衡的处理、Web服务器的调试、分布式解决方案、Open API的设计等等。

Alexandru Popescu谈InfoQ.com网站架构

InfoQ首席架构师Alexandru Popescu在采访中谈论了InfoQ架构、Webwork与DWR、Hibernate与JCR、Hibernate可扩展性、最新的InfoQ视频流系统和InfoQ的未来规划。