每当我们要学习一种新的技术,首先要搞明白他是干什么的,对自己有什么用处,把相关情况弄清楚以后,才能决定去不去学习他。在学习JavaFX之前,下面几个问题我觉得应该先搞清楚:
一、什么是 Rich Internet Applications ?
Rich Internet Applications ,缩写RIAs,翻译过来是富客户端应用程序,或者富互联网应用程序。他是从网络下载到本机,可以在浏览器中运行的一种应用程序。当然也可以脱离浏览器,直接在操作系统下运行。相对于传统的的Web应用,富客户端应用程序主要特点是丰富的界面效果。
说白了,RIAs就是把原来在桌面上跑的应用程序放到浏览器中去跑。
二、富客户端是不是为了取代传统 Web 应用的界面?
目前来说我觉得他们互为补充,传统 Web 应用,特别是企业级应用,主要突出数据的存储、检索和管理,重点在业务和逻辑,而不在界面。而RIAs主要突出用户的体验和交互性。二者如何结合应该根据实际情况来,你要在浏览器中玩扫雷游戏,当然得富客户端,如果是个搜索引擎,传统的 Web 界面足以。如果是个银行账户查询界面,可能可以把二者结合起来。
三、富客户端出现的目的到底是什么?
可能有人问:说了半天,富客户端即不是取代传统 Web 界面,也可以在桌面上直接运行,那还用得着费那么大的劲把它放到浏览器里面吗?
回答是很用得着,目的有两个:1、跨平台;2、易于发布。
想想,不管是电脑还是手机,不管是Windows、Linux、Windows Mobile、塞班或者 Google 的手机操作系统,哪个里面没有浏览器?只要有浏览器,你写的程序就可以在任何物理平台、任何操作系统下运行,这是多么棒的一件事情啊!
四、当前主流的富客户端技术有哪些?他们的优缺点是什么?
1、基于 AJAX 技术的富客户端,比如 ExtJS.
优点:纯基于浏览器,不需要安装插件。
缺点:个人观点,毕竟中间多了一层浏览器,速度和功能可能稍差一点。
2、微软的 SilverLight.
优点:(1)他是微软的技术。
(2)基于。Net 框架和 WPF,功能强大。
(3)最重要的一点,。Net 框架和 SilverLight 插件必定会成为微软新的操作系统的一部分。在新操作系统中,你的 SilverLight 程序不用安装插件就可以直接运行了。
缺点:(1)还是这一条:他是微软的技术。
3、Adobe 的 Flex
优点:底层基于 Flash,以 Flash 的形式发布。想一下,我们重新装完系统,打开浏览器,进入一个门户网站,一般会做什么事?当然是安装 Flash 插件了,只要联了因特网的机器,还有几台没装 Flash插件的呢?这就为 Flex 程序的发布扫清了一个很大的障碍。只要程序能满足需求,用什么平台开发用户一般不会很介意,但是动不动就安装插件那可真的很烦。而 Flash 已经被广泛接受了。
缺点:又要重新学习一套新的语言规则,一套新的 Framework,真的很累啊。
4、Sun 的 JavaFX
优点:
(1)对传统 Java 的继承。JavaFX 主要突出的是界面和交互性这一块,剩下的功能依然调用传统的 Java 包。这种既有创新又有继承的思路,降低了学习难度。这样,我们可以用以前熟悉的 Java 方式开发程序的模型层,然后用 JavaFX 设计视图层。
(2)同一个程序 Build 以后会产生两个包,一个是在浏览器中运行的,一个是在桌面直接运行的。当然,Flex 也可以,Silverlight 则可以直接变成 WPF 再变成 exe.所以这点可能算不上什么优点。但是话说回来,对于桌面 Java,仅仅一个发布问题,当初就曾经吓退多少想入门的新手?不信你 Google 一下 "java 打包"!
缺点:
(1)虽然 JRE 现在以插件的形式发布了,但是除了 Java 开发人员,普通用户安装的毕竟还是少数。大型的 Java 程序很多都自带 JRE 也可以反映出这个问题。
(2)浏览器中,程序的启动速度要比 Flash 和 SilverLight 慢许多。可能是要从 Sun 官网下载很多 JS 脚本文件,这么多客户同时访问官网,能不慢吗?应该想办法改进一下。
(3)桌面运行包的扩展名是 .jnlp,只要你安装了 JRE 插件,运行它就像运行 .exe 程序一样,双击就可以了。这本来是一种很绿色的发布方式,但实际上不是这样,每当你运行一个新的桌面版 .jnlp 程序以后,再打开控制面板的添加删除程序看看,都给你安装进去了!如果你直接删除了这个 .jnlp 程序,控制面板里的信息就留在里面删不掉了。这种发布细节问题,应该可以改进。
[1] [2] 下一页