【独家专场直播】字节、阿里、百度专家深入探讨 AI 创新的实际落地场景和关键技术 了解详情
写点什么

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

  • 2007-04-09
  • 本文字数:1588 字

    阅读完需:约 5 分钟

或者是 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 Blend ZAM 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

2007-04-09 07:553965
用户头像

发布了 255 篇内容, 共 56.3 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

甲方日常1

句子

工作 随笔杂谈 日常

奈学:红黑树(RedBlackTree)的概述

古月木易

极客大学架构师训练营---习题

李朋

架构师培训第十一周练习

小蚂蚁

手写Spring框架之IOC

简爱W

架构师训练营第十一章作业

叮叮董董

架构师课程第十一周总结

dongge

《黑神话:悟空》出圈背后,国产3A游戏的技术新机

脑极体

week11 总结

雪涛公子

LeetCode题解:20. 有效的括号,while循环replace,JavaScript,详细注释

Lee Chen

大前端 LeetCode

Week11总结

leis

week11 作业

雪涛公子

架构师训练营——第11周学习总结

jiangnanage

架构师训练营第十一章作业

吴吴

图解 K8s 核心概念和术语

后端进阶

Docker Kubernetes 容器 云原生 k8s

架构师训练营——第11周作业

jiangnanage

导致系统不可用的原因有哪些?

leis

合同、封条、电梯……通通上链!

CECBC

区块链技术 监管平台

不可用与高可用

dongge

Cause: java.sql.SQLTimeoutException: ORA-01013: user requested cancel of current

Java个体户

Druid

奈学:红黑树(RedBlackTree)的概述

奈学教育

AVL

【Elasticsearch 技术分享】—— Elasticsearch 存储一条数据, put 过程是什么样子的?

程序员小航

Java elasticsearch 搜索 ES Lucene Elastic Search

架构师训练营-第十一周-命题作业

sljoai

极客大学架构师训练营 命题作业 第十一周

区块链技术可提高数据可信性和安全性

CECBC

区块链技术 安全性

系统高可用

陈皮

week 11作业

Geek_z9dmvw

Java二进制和位运算,这一万字准能喂饱你

YourBatman

位运算 二进制

对于三千万攀登者来说,云是安全绳,是登山杖,是趋顶之路

脑极体

架构师训练营第 11 周——练习

李伟

极客大学架构师训练营

架构师培训 -11 安全、高可用

刘敏

第11周 安全和高可用

陆不得

XML是用户界面(UI)开发的未来吗?_Java_Jonathan Allen_InfoQ精选文章