AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

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:554302
用户头像

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

关注

评论

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

【秋招面试专题解析】成功入职头条月薪35K

欢喜学安卓

android 程序员 面试 移动开发

这些智能合约漏洞,可能会影响你的账户安全!

华为云开发者联盟

区块链 智能合约 安全 形式化验证 华为区块链服务

「跨链网关的模块化进程」插件机制演化

趣链科技

ToastUtil实用封装

Changing Lin

8月日更

如何在渲染之前等待 Axios 数据?

吴脑的键客

大前端 React axios

SLB 负载均衡实践

若尘

负载均衡 阿里云 弹性负载均衡 8月日更

我两年的坚持,值了!

程序员鱼皮

Java JavaScript 腾讯 职场 大前端

Java代码中,如何监控Mysql的binlog?

码农参上

Binlog 实战

【性能优化实战】Android架构组件Room功能详解

欢喜学安卓

android 程序员 面试 移动开发

springcloud 微服务日志写入kafka

Rubble

kafka Spring Cloud 8月日更

华为云UGO:醒醒!你的异构数据库迁移难题有救了

华为云开发者联盟

数据库 迁移 华为云 异构数据库 UGO

混合基础设施下,服务网格(Service Mesh)如何对应用进行统一管理

韩陆

LeetCode题解:173. 二叉搜索树迭代器,栈,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

【Git技术专题】如何使用git中的tag进行版本开发控制?

码界西柚

git 8月日更

手把手教你怎么导入Go语言第三方库「让我们一起Golang」

Regan Yue

后端 Go 语言 8月日更

CodeDay#8:支付宝都在用的容器技术了解一下

蚂蚁集团移动开发平台 mPaaS

小程序 支付宝小程序 支付宝 移动开发 mPaaS

JVM

ltc

JVM

架构实战营毕业设计

eoeoeo

架构实战营

如何用EasyRecovery恢复U盘内损坏的数据

淋雨

文件恢复 硬盘数据恢复 Easyrecivery

经验之谈:程序员应该如何学好大数据技术

博文视点Broadview

手撸二叉树之二叉搜索树的最近公共祖先

HelloWorld杰少

数据结构与算法 8月日更

积极重夺制造霸主地位,英特尔不玩“纳米游戏”了

E科讯

分布式拒绝服务 (DDoS) 攻击对企业运维造成的影响分析

九河云安全

体验有奖 | 1 分钟 Serverless 部署掌上游戏机,“一行命令”找回小时候的乐趣!

Serverless Devs

用微服务架构方式交付云服务产品

用友BIP

容器 微服务 专属云

软件架构模式之微服务架构

架构精进之路

架构 微服务 8月日更

24岁,月薪35k!全靠这份阿里P5-P9知识核心手册+10W字面试题总结

Java架构追梦

Java 阿里巴巴 架构 面试

态势感知一屏可视:数治安全,智理未来

一只数据鲸鱼

网络安全 数据可视化 数据监测 数字孪生

【吐血整理】大牛耗时一年最佳总结,让你的app体验更丝滑

欢喜学安卓

android 程序员 面试 移动开发

面试官:展开说说,Spring中Bean对象是如何通过注解注入的?

小傅哥

spring 小傅哥 注解注入

百度第25季黑客马拉松再秀“技术基因”,累计产生创意超7000个

科技热闻

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