什么是AIR及产生背景

news/2024/10/18 6:07:07/

 本文原来的地址:http://blog.sina.com.cn/s/blog_4d4d2edc01009qhx.html

首先申明:我不是adobe雇佣的枪手,我也从不认识adobe的人。我只是一名被C/S和B/S长期困扰希望寻找一套解决方案的人。

 

    adobe是业界著名的客户端展现工具和展现设计工具提供商。

 

    展现工具:PDF、FLASH。展现设计工具:photoshop、Dreamwaver、FLASH(Adobe2005年4月收购Macromedia)。

 

    很多人都疑问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+JAVASCRIPT。不要奢望它能做各种业务处理和运算。你的业务可以包装成webservice,也可以是PHP或JSP或asp.net页面,调用方式可以是webservice,可以是httpservice,可以是Remoting。这样你的业务层就可以和表现层AIR交流数据了。

 

3、AIR IDE只是HTML+JAVASCRIPT设计和调试工具,所以你也别奢望AIR IDE能象JAVA和C#的IDE环境那样强大。你过去怎么设计和调试HTML+JAVASCRIPT,那么你现在仍然保持那种心态。

 

4、AIR不是FLASH。他们是两种不同的应用目的和技术发展方向。不要用FLASH开发企业管理软件,也不要用AIR开发多媒体。虽然能,但不擅长(就如你拿C来开发WEB)。AIR不需要运行在浏览器中,不需要使用FLASH容器。AIR有自己的容器和运行环境。AIR和你的EXE是一样的安装和执行。

 

5、AIR和WPF都处于不成熟期,可以作项目,但不要把宝押在他们上面做下一代产品线(预计下下版应该可以进行企业下一代产品线开发,一般都是软件3个版本后才强壮稳定起来,按照竞争的激烈程度,这个第三个正式版本时间会在明年的上半年)。不过你也不要等待他们成熟后再做再研究,这样的等待就如同2001年等待JAVA成熟一样。现在JAVA是成熟了,但是你还有机会么?

 

6、不要怀疑AIR和WPF是不是未来。业界早有共识,这就是未来。不要在GOOGLE WEBOS和客户端OS之间选择来选择去,如果你是网站开发人员,安心研究你的GOOGLE RIA技术。不要怀疑是跟微软还是跟adobe。如果你一直在微软的技术圈子中行走,那么你安心用你的WPF好了,都是未来。

 

7、有许多人问起来了SEO在AIR和FLEX上的缺陷。说slivelight支持SEO和搜索友好。我想说的一句是:开发企业管理软件,怕的就是搜索,怕的就是企业数据被搜索引擎搜索到。不能搜索到才好呢。

 

8、AIR为过去的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 Integrated Runtime (AIR) 是一个跨操作系统的运行时,利用现有的Web开发技术(Flash,Flex,HTML,JavaScript,PDF,Ajax)来构建富Internet应用程序并部署为桌面应用程序。

 

    从本质上讲,她提供了一个桌面与浏览器结合的平台,并达到网络模式结合桌面模式功能和丰富形式的开发模式。

 

    从她的定位和发展的方向,其对网络开发和桌面应用开发人员都非常具有诱惑力。

 

    在过去的两年里,Adobe一直致力于研究如何把网络应用与传统的桌面应用融合起来,期望成为富互联网应用领域的先行者。Adobe公司最初给这个计划取了一个神秘兮兮的名字叫“Apollo”。

 

    2007年6月,Adobe正式将“Apollo”更名为“Adobe AIR”。2008年2月25日,在经过将近两年的研发和实验之后,万众瞩目的Adobe AIR 1.0正式版终于发布了。同时,Adobe透露,一个面向Linux 的Adobe AIR版将会在今年的晚些时候推出。在将来,Adobe还会创建其他的可以运行在移动设备上的版本。

 

    Adobe AIR到底是个什么东西呢?还是听听Adobe副总裁托马斯·黑尔(Thomas Hale)的解释吧。“假如你在使用谷歌(www.g.cn)地图的时候‘告诉’Web应用程序,让它在你的房屋遭受飓风袭击之前通知你。此时,如果你关闭了浏览器,谷歌地图就无法再与你‘交谈’了。”而“Adobe AIR”就是这么一个连接互联网与桌面应用程序的中间件。“即便你关闭了浏览器,它还存在于计算机内存中,当Web应用通知该客户端你的房屋将要被飓风袭击的时候,它就会跳出来提示你。”

 

    简而言之,Adobe AIR让用户在自己所熟悉的环境下,利用最得心应手的工具,比如Flash、Flex、HTML、JavaScript和AJAX,来建立和配置跨操作系统的桌面富互联网应用。

 

    用户使用AIR 应用程序的方式和传统桌面程序是一样的,当运行时环境安装好后,AIR 程序就可以像其他桌面程序一样运行了。

 

 

    因为AIR 是应用程序运行时环境,因此她很小且对用户来说不可见。运行时环境提供了一套一致的跨操作系统平台和框架来开发和部署应用程序,因此你的程序不必到每个平台上进行测试,在一个平台上开发好就可以在其他平台上运行了,这有很多好处: 

 

1、开发AIR应用程序不必做额外的跨平台工作,节省了时间,因为跨平台的工作AIR都帮我们做好了(只要其他平台能支持AIR)。

 

2、比起Web技术及其设计模式,AIR应用程序开发迅速,她允许将Web开发技术搬到桌面上来而不用另外去学习桌面程序开发技术或复杂的底层代码,这比起低级语言如C 和 C++更容易学习,且不用去处理每个操作系统复杂的底层APIs 。


http://www.ppmy.cn/news/702535.html

相关文章

Air Pods用着怎么样?

本人3年Air Pods2代老用户,总体评价就是真香,下面从几个方面来谈谈Air Pods2的使用体验。 第一点,彻底摆脱耳机线的束缚。与苹果之前的EAR PODS及市面上大部分有线耳机相比,Air Pods这类无线耳机的出现可谓是跨时代的一个产品提升…

Air Raid

题目描述 Consider a town where all the streets are one-way and each street leads from one intersection to another. It is also known that starting from an intersection and walking through towns streets you can never reach the same intersection i.e. the town…

C. Air Conditioner

链接:https://codeforces.com/contest/1304/problem/C Gildong owns a bulgogi restaurant. The restaurant has a lot of customers, so many of them like to make a reservation before visiting it. Gildong tries so hard to satisfy the customers that he …

Up in the Air-2

Speech on trip. How much does your life weigh(多重)? Imagine for a second that you’re carrying a backpack(背一个包). I want you to feel the straps(肩带) on your shoulders. Feel them? I want you to pack it wit…

关于LiveData全面详解(附事件总线)

作者:苏火火 前言 MVVM 架构模式中,ViewModel 是不会持有宿主的信息,业务逻辑在 ViewModels 层中完成,而不是在 Activities 或 Fragments 中。LiveData 在里面担任数据驱动的作用: 以往我们使用 Handler,E…

Airflow简介

1、什么是Airflow Airflow 是一个 Airbnb 的 Workflow 开源项目,使用Python编写实现的任务管理、调度、监控工作流平台。Airflow 是基于DAG(有向无环图)的任务管理系统,可以简单理解为是高级版的crontab,但是它解决了crontab无法解决的任务…

Air Video

http://baike.baidu.com/view/8552809.htm#1 百度首页 | 登录注册 新闻网页贴吧知道MP3图片视频地图百科文库 帮助 首页自然文化地理历史生活社会艺术人物经济科技体育图片数字博物馆核心用户百科商城 求助编辑 Air Video 目录 简介 使用教程 展开 简介 使用教程 展开 编辑本段…

AirTest

Airetest是由网易游戏推出的一个跨平台的、基于图像识别的UI自动化测试框架,适用于游戏和APP,支持Windows、Android和ios,基于python进行编码。在此基础上,还推出了AiretestIDE,一款UI自动化测试编辑器,Poc…