NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

对于传统供热系统来说,转型智慧供热需要哪些条件?

一只数据鲸鱼

物联网 数据可视化 供暖系统 3D

警务通APP系统开发,移动警务平台搭建解决方案

t13823115967

智慧城市

架构师训练营第 1 期第 13 周作业

业哥

干货丨如何使用Redash连接DolphinDB数据源

DolphinDB

数据处理 时序数据库 DolphinDB 数据库开发 redash

985研究生熬夜23天吃透845页架构宝典 终收割腾讯Java岗offer!再也不用怀疑人生了

比伯

Java 编程 架构 面试 程序人生

测开之数据类型· 第3篇《列表推导式、字典推导式、2种方式创建生成器》

清菡软件测试

测试开发

盘点2020 | 微服务架构下该如何技术选型呢?

xcbeyond

微服务 技术选型 盘点2020 选型原则

架构师 3 期 3 班 -week4- 作业

zbest

作业 week4

女朋友突然问我DNS是个啥....

乱敲代码

计算机网络 DNS DNS服务器

扩招1W人,字节跳动内部公开12月份Java岗71道面试题

比伯

Java 编程 架构 面试 程序人生

从面试角度分析LinkedList源码

Java旅途

Java List 集合 linkedlist

安全管理 | 前后端方案详解:Vue/SpringBoot+SpringSecurity+JWT

梁龙先森

大前端 springboot springsecurity JWT 七日更

复盘node项目中遇到的13+常见问题和解决方案

徐小夕

Java node.js 大前端 nodejs

微软最强 Python 自动化工具开源了!不用写一行代码!

星安果

Python 开源 自动化 工具 高效率

建议收藏,mybatis插件原理详解

田维常

mybatis

波场链智能合约软件系统开发|波场链智能合约APP开发

系统开发

智能微卡口监控系统搭建,智慧平安小区建设解决方案

t13823115967

智慧城市

Tufin联合Cisco,将网络安全自动化进行到底

Geek_448e23

网络安全 自动化管理 云安全

5张图搞懂Java引用拷贝、深拷贝、浅拷贝

bigsai

Java 浅拷贝和深拷贝

forsage以太坊矩阵系统软件开发|forsage以太坊矩阵APP开发

系统开发

几款Java开发者必备常用的工具,准点下班不在话下

华为云开发者联盟

Java 工具 开发

边缘计算和5G:我们从何而来?

VoltDB

云计算 大数据 5G 物联网 边缘计算

盘点2020 | 一个三线程序员的2020年,不卑不亢

沉默王二

程序员 盘点2020 沉默王二

程序员因重复记录日志撑爆ELK被辞退!

Java架构师迁哥

架构师训练营 1 期 -- 第十三周总结

曾彪彪

极客大学架构师训练营

PostgreSQL高可用:多主复制解决方案

PostgreSQLChina

数据库 postgresql 开源

《O2O实战:他们是如何利用互联网的》.pdf

田维常

互联网

从阿里离职后人虚了,头也秃了,就剩这份Java性能优化的PDF了

Java架构追梦

Java 架构 面试 性能优化 并发

DAPP软件系统开发

系统开发

盘点2020|多线程的遥感大数据行业产品经历

老壳有点爽

大数据 盘点2020 InSAR

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

netspecial

极客大学架构师训练营

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