【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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

公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

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

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

关注

评论

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

区块链+公共安全 大有可为

CECBC

区块链 安全

缓存与数据库一致性问题深度剖析

Zhendong

数据库 缓存 秒杀系统

学习笔记丨结构体中的内存管理

Liuchengz.

c Linux 学习

实战中学习浏览器工作原理 — 之 HTTP 请求与解析

三钻

CSS Java 大前端 浏览器

Python 为什么没有 void 关键字?

Python猫

Python 编程

Apache Pulsar 8 月月报:里程碑一个接一个

Apache Pulsar

大数据 云原生 Apache Pulsar 消息系统 消息中间件

全场景智慧:新工业革命必须拥抱的晨曦

脑极体

深度解读:Apache DolphinScheduler 新架构与特性,性能提升2~3倍

代立冬

大数据 开源 工作流调度 开源社区

Python 函数为什么会默认返回 None?

Python猫

Python 编程

Python 为什么能支持任意的真值判断?

Python猫

Python 编程

妈妈,今天您几点下班?

脑极体

LeetCode题解:239. 滑动窗口最大值,双循环暴力,JavaScript,详细注释

Lee Chen

大前端 LeetCode

商业通识 : 商业到底是什么?

Walker

学习 得到 个人成长 商业

北京首台区块链政务终端亮相 一键“拉取”链上数据

CECBC

区块链技术

macos主流工作开发套件指南

久违

macos Docker 大前端 自动化部署

oeasy教您玩转linux010204-figlet

o

ARTS Week10

丽子

Flink保存点-17

小知识点

scala 大数据 flink

凤凰交易所 全球首个多元化生态交易平台震撼来袭

InfoQ_967a83c6d0d7

从每秒6000写请求谈起

架构师修行之路

程序员 架构师 高并发系统设计

持续集成有什么好处?快来看鸭

清菡软件测试

jenkins

芯片破壁者(十五):仙童半导体和“八叛逆”所缔造的“硅谷模式”

脑极体

Python 中的数字到底是什么?

Python猫

Python 翻译 PEP

一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关

Python猫

Python 编程

[翻译]Defer,Panic,and Recover

卓丁

defer panic recover Go 语言

区块链技术破解数字版权保护难题

CECBC

区块链 版权保护 数字技术

经济适用的企业内外网互动直播方案

fumingwang

音视频 直播 视频会议 企业应用

dubbo应用级服务发现初体验

捉虫大师

dubbo 注册中心

Docker 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker 容器 集群 redis cluster

Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

Python猫

Python 编程

JavaScript 深拷贝与浅拷贝

梁凤波

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