转:昨天去参加adobe AIR发布会
昨天去参加adobe AIR发布会
首先申明:我不是adobe雇佣的枪手,我也从不认识adobe的人。我只是一名被C/S和B/S长期困扰希望寻找一套解决方案的人。
昨天去参加了adobe AIR 发布会
adobe是业界著名的客户端展现工具和展现设计工具 提供商。
展现工具:PDF、FLASH。展现设计工具:photoshop、Dreamwaver、FLASH。
很多人都疑问AIR有什么用。昨天在会场也有同学提出了这个问题。既然有了AJAX 纯的JS的客户端表现组件包,如最近刚获得金牛奖的ZK组件包,那为何要有AIR?
我给大家解释解释。大家都能看到现在的趋势:互联网软件在向客户端融合,客户端在向互联网融合。
互联网企业发源于WEB世界,那么它要延伸互联网,必须要基于现在自己的优势和根。JS技术,这种根植于网络世界的技术就是最理想的选择。使用惯了WEB应用软件的用户,对于本地安装一个软件,本地软件那样的操作习惯就感到很奇怪。
而对于习惯了使用本地软件的用户,现在开始有了互联网跨出局域网的业务需求了,怎么办?一种办法当然是给他们另外开发一套B/S企业管理软件,但他们怎么使用都不顺手。
于是AIR产生。让他们能满足互联网处理,又能像本地软件一样操作。
又有客官问了,听过微软也推出了一种客户端跨互联网处理的技术,叫WPF和WCF。微软是客户端的霸主,而且微软的 开发工具也是一流的,adobe既不熟悉开发工具这行当,也没有客户端优势,微软在OS层面做点手脚,就像当年给netscape下点药做点限制一 样,AIR就没前途了。
但是,但是。这个世界总有但是。
要知道,做企业管理软件应用,很重要的就是数据安全。要把自己的数据和业务处理放到公网上,就有担忧。但是企业发展 必须跨互联网,有需求啊。那怎么办?用微软的?太不安全了。于是挑选了JAVA。但JAVA一直雄霸于服务器端,客户端JAVA也没有经验啊。从早期的 Applet,到Swing,都以失败告终。不能让JAVA的服务器端配合WPF的客户端吧?于是AIR出场了。
adobe也很聪明,知道微软这个长年想扩展到互联网却屡屡受挫的困兽,必然拼了老命也要推自己的WPF和WCF技术,这是微软未来的命啊。想在这个霸主的肩膀上吃肉,是比登天难。于是祭出微软最害怕的一招:开源、免费、基于开放技术标准、跨平台。
adobe不擅长开发工具的开发,那就不开发。况且这个世界上除了微软世界的visual studio工具外,微软的对立阵营就有最开放的eclipse。eclipse已经不仅仅是一个JAVA的开发IDE,现在Ruby、PHP、C++、 Python都在它上面有插件。于是adobe也把自己插在上面。跟着程序员大潮走,让程序员使用自己最熟悉的IDE开发AIR。
adobe一直擅长客户端表现,所以adobe也没有必要提供一个从服务器到客户端一整套技术方案。说白了,AIR 就是一个和AJAX组件包一个层次的解决方案。主要用于客户端表现。这点非常重要。许多同学没有看清这一点,和DELPHI比,和JAVA比,和.net 比。其实AIR就专注客户端表现。你的业务层完全可以用PHP、JAVA、C#来写。再说了,AIR技术,内在其实就是HTML+JAVAScript, 只不过改进了一些,换了个名字,叫MXML和ActionScript。微软的WPF技术,也是这两个技术组成。大家都是一路子。
PDF抓住了PC时代,FLASH抓住了浏览器时代,AIR是要抓住浏览器和PC融合的时代。这也是adobe的命 根,所以两家公司都拼了命。微软有其强大的现实客户和研究开发中心和营销手段,adobe则采用了最开放最联盟来对抗,让微软一家公司之力来对抗全球开放 的程序员。
WPF仅限于微软平台,虽然sliverlight号称以后也要垮MAC和LINUX平台。但我说的比较是AIR和WPF,而非FLEX和Sliverlight这两种技术。
我对FLEX和Sliverlight这两种技术一直心存怀疑。他们到底是给什么用户用的呢?习惯于浏览器的用户?人家有AJAX组件包啊,优秀开源的N多,商业的也N多。习惯于本地运行软件的用户?人家有AIR和WPF这两种技术啊。
FLEX和Sliverlight这两种技术产生,我来解释一下我自己的观点。
adobe的AIR还没有炼成。FLASH是adobe现在的优势。要想走到目的地,FLASH必须是自己的跳板,于是FLEX必须作为过渡。
而微软呢?VISTA本来就是微软最寄予希望的操作系统,原生的.net framework 3.0,而且全部用.net重写,一流的面向service的操作系统,圆了当年微软COM之梦。而且.net framework 3.0最主要的技术WPF、WCF,还有一个夫死胎中的WF,其实都是很有未来前瞻的技术,但由于技术难度太大,当然也由于太多人看透了微软在互联网战略 的陌生和迟疑和旧有EXE技术思想,所以都跑到了纯正的互联网公司,给VISTA形成了难产。微软希望能无缝且毫无体验差异的整合互联网和本地。但是这个 过程太漫长了。眼看着adobe利用FLASH做跳板,以占领自己未来想占领的位置,自己能不能到达目的地还不好说,于是在急匆匆中推出了 sliverlight。其实微软本来没有sliverlight研究计划,希望借助VISTA一举掀开未来大幕,但VISTA不争气,没掀好,于是必须 应急。
所以,奉劝开发惯了网站的程序员,继续拿起你们的AJAX,因为你们不理解人们为什么要用AIR。
对于开发惯了EXE的程序员,继续使用AIR或WPF来开发你们的下一代产品,别想着用FLEX。习惯用微软技术的就用WPF,习惯用非微软技术的,就选择AIR。就这么简单。
我给大家列了一个对比列表,大家可以理解这个新技术和过去技术的相似和关联。
AIR runtime=.net framework=JVM
AIR=WPF=JAVA Application
FLEX=Sliverlight=JAVA Applet
至于Google Gears,是互联网向桌面融合的产物,而我们今天讨论的是桌面向互联网融合。虽然Google Gears、JAVA JSF、Adobe AIR/FLEX、微软WPF/Sliverlight都是RIA的解决方案。但都是各自从各自的优势出发发展的技术方案
最后结尾总结关键几句:
1 AIR是给习惯开发EXE程序员准备的非微软技术的互联网解决方案。习惯微软技术的请离开,习惯网站的请离开
2 AIR工作在表现层。AIR只是一个客户端表现,和AJAX是一样的。都是HTML+JAVASCIRPT。不要奢望它能做各种业务处理和运算。你的业务 可以包装成webservice,也可以是PHP或JSP或asp.net页面,调用方式可以是webservice,可以是httpservice,可 以是remoting。这样你的业务层就可以和表现层AIR交流数据了
3 AIR IDE只是HTML+AVACRIPT设计和调试工具,所以你也别奢望AIR IDE能象JAVA和C#的IDE环境那样强大。你过去怎么设计和调试HTML+JAVASCRIPT,那么你现在仍然保持那种心态。
4 AIR不是FLASH。他们是两种不同的应用目的和技术发展方向。不要用FLASH开发企业管理软件,也不要用AIR开发多媒体。虽然能,但不擅长(就如 你拿C来开发WEB)。AIR不需要运行在浏览器中,不需要使用FLASH容器。AIR有自己的容器和运行环境。AIR和你的EXE是一样的安装和执行。
5AIR和WPF都处于不成熟期,可以作项目,但不要把宝押在他们上面做下一代产品线(预计下下版应该可以进行企业 下一代产品线开发,一般都是软件3个版本后才强壮稳定起来,按照竞争的激烈程度,这个第三个正式版本时间会在明年的上半年)。不过你也不要等待他们成熟后 再做再研究,这样的等待就如同2001年等待JAVA成熟一样。现在JAVA是成熟了,但是你还有机会么?
6不要怀疑AIR和WPF是不是未来。业界早有共识,这就是未来。不要在GOOGLE WEBOS和客户端OS之间选择来选择去,如果你是网站开发人员,安心研究你的GOOGLE RIA技术。不要怀疑是跟微软还是跟adobe。如果你一直在微软的技术圈子中行走,那么你安心用你的WPF好了,都是未来。
7有许多人问起来了SEO在AIR和FLEX上的缺陷。说slivelight支持SEO和搜索友好。我想说的一句是:开发企业管理软件,怕的就是搜索,怕的就是企业数据被搜索引擎搜索到。不能搜索到才好呢
8AIR为过去的EXE程序员提供了自动版本检测和自动升级的API,这是让C/S程序员非常兴奋的一件事。回想当 年,客户端版本不一致,出了不少怪异的事情。AIR也提供了离线后暂时保存数据到本地内嵌在AIR runtime中的sqlite(操作和平常SQL一样),继续操作软件,连线后同步数据。OK
9 你如果没有开发过MVC架构,没有用过COM多层开发,那么你不会明白业务层和表现层的分工和通讯的。你会一直想弄清楚怎么在AIR中写SQL语句或 JAVA语句。你也一直会想在servlet中写JAVASCRIPT和HTML代码。你还处在浆糊代码阶段,建议给自己的代码技术升升级。
想问我为什么关注AIR吗?
因为我一直战斗在行业管理软件的开发上。我对于开发一套C/S,一套B/S,这样极耗费开发成本开发时间和维护成本 的开发方式烦透了,要让两者操作习惯和功能都保持一致,难。如果有了BUG,两个产品是两个开发团队,BUG都出在不同的地方,分别修改。让一个公司维护 两套人马两个产品,在中国大部分都是小软件作坊的现状下,哪个都做不好。不如做一个既是C/S又是B/S的软件。
那是多么美好的事情啊。
转:昨天去参加adobe AIR发布会的更多相关文章
- adobe air类app 接入腾讯开放平台移动游戏使用带tencent包名前缀的问题
作者:Panda Fang 出处:http://www.cnblogs.com/lonkiss/p/4209159.html 原创文章,转载请注明作者和出处,未经允许不可用于商业营利活动 ------ ...
- 解决adobe air sdk打包 apk后自动在包名前面加上air. (有个点)前缀的问题
早就找到了这个方法,但是一直忙没心思写博客. 默认情况下,所有 AIR Android 应用程序的包名称都带 air 前缀.若不想使用此默认行为,可将计算机环境变量 AIR_NOANDROIDFLAI ...
- Adobe AIR 中为不同尺寸和分辨率屏幕适配
在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持 http://www.adobe.com/cn/devnet/air/articles/multiple-screen-sizes.html ...
- 开发Adobe AIR移动应用程序的考虑事项
http://www.adobe.com/cn/devnet/air/articles/considerations-air-apps-mobile.html Adobe AIR 经过发展演进,已经超 ...
- [AIR] 在 Adobe AIR 中为不同屏幕尺寸的多种设备提供支持
转自:http://www.adobe.com/cn/devnet/air/articles/multiple-screen-sizes.html 无论是改编原本在浏览器 Flash Player 中 ...
- Adobe AIR socket complicating 导致 socket RST
基于socket实现HTTP协议 并发请求AB,A为HTTP请求,B为socket请求. A的请求服务器返回数据很短,包体长度只有35,且客户端收到包头后就断开连接,同时A连接的服务器也断开了连接, ...
- 谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~
谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~_百度知道 谁知道哪有比较好的Beijing Milonga?想去参加这样的阿根廷探戈舞会~ 2009-1 ...
- Adobe AIR(跨平台应用)
Adobe AIR(跨平台应用)现在正式应用于android平台了,Adobe Air是一款独立的客户端应用软件,这些软件可以作为单独的程序安装使用,它可以使开发人员使用HTML.JavaScript ...
- Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表,以及同步和异步执行模式)
系列文章导航 Adobe AIR中使用Flex连接Sqlite数据库(1)(创建数据库和表) Adobe AIR中使用Flex连接Sqlite数据库(2)(添加,删除,修改以及语句参数) Adobe ...
随机推荐
- 重温sql语句中的join操作
1.join语句 Sql join语句用来合并两个或多个表中的记录.ANSI标准SQL语句中有四种JOIN:INNER,OUTER,LEFTER,RIGHT,一个表或视图也可以可以和它自身做JOIN操 ...
- Java线程:新特征-线程池
Sun在Java5中,对Java线程的类库做了大量的扩展,其中线程池就是Java5的新特征之一,除了线程池之外,还有很多多线程相关的内容,为多线程的编程带来了极大便利.为了编写高效稳定可靠的多线程程序 ...
- 通过调整表union all的顺序优化SQL
操作系统:Windows XP 数据库版本:SQL Server 2005 今天遇到一个SQL,过滤条件是自动生成的,因此,没法通过调整SQL的谓词达到优化的目的,只能去找SQL中的“大表”.有一个视 ...
- iOS支付总结
内容大纲: 一.常见的支付方案简介 二.第三方支付SDK 三.苹果官方支付方案 四.Web支付方案 正文: 一.常见的支付方案简介 在微信支付中 微信支付的网址是: https://pay.weixi ...
- iframe中的各种跳转方法(转)
一.背景A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,在D中跳转页面的写法区别如下. 二.JS跳转window.location.href.locatio ...
- GDB源代码查找路径
在gdb程序的时候,有时候会发现源代码文件找不到,对于那些带调试信息的系统库或者第三方库,很多时候当你真正想gdb去追他源代码的时候你会发现gdb根本找不到这些源代码路径.这个时候有两种选择: [1] ...
- sql 建立数据库,表格,索引,主键
---- 数据库: `message_db`-- -- --------------------------------------------------------create database ...
- 疯狂的表单-html5新增表单元素和属性
疯狂的表单 2015/11/27 16:44:07 从三方面来介绍html5表单的新特性 表单结构更灵活 要提交数据的控件可以布局在form标签之外,看下面的代码,表单元素可以写到form元素之外,只 ...
- (转) 关于成为linux运维工程师需要掌握的技能
曾经在一年多前写了一篇关于要成为linux运维需要掌握哪些技能和工具的贴子,然后不小心被好几个网友抄袭转发到其它网站上,当然有些是认识的,最后还很幸运地被某些热心的学习者把那段内容剪下来当作圣经般的参 ...
- 如何在eclips下将一段代码抽取为方法Extract Method
最近读了读关于重构的文章,做了个小总结(在编程思想目录下<从文章"避免复制与粘贴"到文章"Extract Method"的反思 系列>). 然后因为 ...