首先申明:我不是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会定期发布新版本来优化性能、提升安全性,以及兼容新的操作系统版本和Web标准。 描述中提到的"adobe air runtime(电脑air运行环境) Mac版本"确认了这是为Mac用户提供的Adobe AIR运行时环境。这意味着Mac用户...
10. **发布和部署**:学习如何打包并发布AIR应用程序,以及通过Adobe AIR Developer Tool(ADT)创建安装包和签名应用程序。 在“下载说明.html”中,可能会包含下载教程的步骤、注意事项以及可能遇到的问题解决...
7. **部署与发布**:文章会介绍如何将开发完成的应用打包成AIR文件(.air),以及如何在用户的计算机上安装和运行这个应用。 8. **API和功能使用**:AIR提供了许多API,比如访问本地文件系统、网络通信、数据库存储...
这篇博客“Adobe AIR * 设置移动应用程序属性”可能详细介绍了如何在开发Android应用时配置Adobe AIR的特定属性。 在使用Adobe AIR开发移动应用时,设置应用程序属性是至关重要的步骤,它影响着应用的行为、界面和...
4. **PDF文档的价值**:“[使用AdobeAIR开发Android应用程序].PDF”可能包含详细的教程和指南,涵盖了从环境设置到实际编程的全过程,可能包括Air SDK安装、Flex Builder或IntelliJ IDEA的使用、打包和发布应用等...
1. **Adobe AIR基础知识**:首先,书中会介绍Adobe AIR的基本概念,包括其运行时环境、应用程序生命周期以及与传统Web应用的区别。理解这些基础知识对于开发者来说至关重要,能帮助他们更好地适应桌面应用的开发模式...
自2007年发布以来,Adobe AIR不断进化和完善,逐渐成为了一种强大的开发工具。本书涵盖了AIR的早期版本到最新的功能改进,帮助读者了解AIR如何随着时间的发展而变化。 #### 三、Adobe AIR 的核心功能 - **跨平台...
7. **发布和分发**:最后,书中会指导开发者如何打包和签名AIR应用程序,以便在不同的平台上发布和分发。还会涉及应用更新机制和版本控制策略。 通过阅读《Adobe AIR in Action》,无论是初学者还是经验丰富的...
综上所述,通过以上步骤,你可以成功地使用 Adobe Flash CS3 Professional 和 Adobe AIR 更新来创建、调试和发布一个完整的 AIR 应用程序。每一步都需要仔细规划和执行,以确保应用程序的质量和用户体验。希望这份...
在构建Adobe AIR应用程序时,会涉及到一系列的知识点和技术细节,下面将对这些知识点进行详细阐述。 1. Adobe AIR简介:这是AIR技术的基础,需要了解AIR的特性和优势,比如它如何允许应用离线工作、如何访问本地...
描述中指出,如果尝试安装依赖于Adobe AIR的应用程序而未安装此环境,系统会提示需要先安装。用户可以直接访问提供的链接<http://get.adobe.com/cn/air/>来下载官方的Adobe AIR安装程序。 在提供的压缩包文件名称...
### Adobe AIR 3.1 本机扩展开发详解 #### 一、Adobe AIR 本机扩展简介 **Adobe AIR (Adobe Integrated Runtime)** 是一款由Adobe Systems开发的跨平台运行环境,允许开发者创建丰富的互联网应用程序(RIA),并在...
书中通过一个名为dptimetracker的示例项目,详细讲解了Adobe AIR的各个方面,包括基本概念、开发环境的搭建、用户界面设计、数据存储、网络通信以及程序发布等。 dptimetracker是一个实用的时间追踪工具,它的源码...
1. **跨平台兼容性**:Adobe AIR支持Windows、macOS和Android等多个操作系统,开发者只需编写一次代码,即可在多个平台上发布应用。 2. **桌面功能集成**:AIR应用程序可以访问本地文件系统、硬件设备,如摄像头、...
在安装"AdobeAIR-Runtime-Mac-v50.2.4.1"这个压缩包文件后,用户将获得最新的Adobe AIR运行时环境,从而能够运行依赖此环境的应用程序。确保始终使用最新版本的Adobe AIR runtime是保证应用程序正常运行和享受最佳...
Adobe Flash 3 AIR 更新主要涉及的是Adobe公司的Flash Platform服务,特别是其针对移动设备的开发环境Adobe AIR(Adobe Integrated Runtime)。这个更新着重提升了开发者在创建跨平台应用时的体验,特别是对于移动...