富互联网应用程序的双重桌面应用程序

到目前为止,为所有目的找到一个单一的开发环境已经被证明是一个无法达到的目标。但是随着富Internet应用程序(RIA)的出现,开发的天堂又近了一点。

RIA的是增强有客户端,这使得它们更加适应用户比标准的HTML网页上的附加功能的Web应用程序 - 在某些情况下,如响应为桌面应用程序。RIA技术包括AJAX,这是JavaScript中,动态HTML和异步服务器请求接口的组合;闪光,一种广泛可用的插件技术土砖经常使用的设计者;柔性Flash的一种变体,更适合程序员;Silverlight,一个相对较新的插件技术微软的子集.Net框架;和旋度,一种嵌入HTML标记的面向对象语言。

在过去一年左右的时间里,已经发布了许多跨平台的RIA技术,它们可以同时作为桌面应用程序技术。我将讨论实现这一技巧的四种技术:Adobe Air、Curl Nitro、谷歌Gears和微软的Silverlight。在我的工作过程中,我安装了它们,探索了它们,并使用了几个月。

Adobe空气

Adobe AIR在跨平台桌面扩展到Adobe Flash和Flex。它支持在JavaScript编程与HTML标记在AJAX模型,以及Flash和Flex编程在ActionScript,JavaScript的一个超集。(有,如果你想使用ActionScript的扩展功能一个学习曲线,它应该是与大多数现有的JavaScript应用程序兼容,但您的里程可能会有所不同。)标准的Adobe工具Flash和Flex - 的Adobe Flash CS4 Professional中,的Adobe的Flex Builder 3和Flex 3 SDK - 可用于航空发展,只要你更新到最新版本或下载并安装了旧版本的AIR更新。航空发展也受到集锦工作室的支持。

航空增加了一些特定的桌面类和组件Adobe的基地Flash和Flex类。空气1.5应用可以更新自己,用系统剪贴板交互,使用文件系统,使用本机的窗口和菜单,使用本地SQL数据库和存储加密的数据。空军还提供了许多功能的桌面环境的Flash和Flex应用程序通常依赖于浏览器 - 例如,HTML渲染,HTTP处理和网络检测。

的公开的adobeair应用程序空气中展示从简单的桌面小部件到成熟的应用程序。Air支持在Windows上进行开发和运行,Mac OS X和Linux操作系统。

对于经验丰富的Flash、Flex和AJAX设计人员和开发人员来说,Air最有用。当我在会议上与他们交谈或在线讨论时,这些人通常会报告说,Air开发是他们已经知道的东西的一个简单的增值,而且他们通常会在相对较短的时间内开发出很少有缺点的出色应用程序。Air应用程序最严重的问题是,与本机代码相比,解释的ActionScript和JavaScript语言速度较慢,这意味着cpu密集型应用程序不适合在Air中实现。

与其说我是一个Flash设计师,不如说我是一个Flex和AJAX开发人员。我发现从Flex Builder学习和使用Flex的Air扩展相当简单,不过如果Air文档包含在Flex Builder帮助文件中,而不是只在网上提供,我会更高兴。

Air runtime, Air SDK, Flex 3 SDK和Aptana Studio都是免费的。Aptana Studio Pro的价格为199美元,Adobe Flash CS4 Professional为699美元,Adobe Flex Builder 3 Standard为249美元,Adobe Flex Builder 3 Professional为699美元,Adobe Dreamweaver CS4为399美元。

旋度硝基

Nitro是Curl的跨平台桌面扩展。目前在它的第二个beta测试版本中,Nitro添加了一个applet安装程序,桌面控件和客户端SQLite数据库来支持Curl出色的RIA功能。Nitro应用程序利用了Curl的高性能、可皮肤化的用户界面和内置的安全沙箱。即使没有Nitro,分离的Curl applet也可以用于桌面应用程序:Curl IDE和帮助系统就是很好的例子。

卷曲可能不会像你熟悉的如从Adobe(空气),谷歌(齿轮)和微软(Silverlight的)相互竞争的产品,但你不应该让这种阻止你尝试它。它具有CPU绑定的运行时性能大致10倍的Adobe AIR根据由卷曲5月进行JPEG编码的测试。(该试验不善作为“无关”由Adobe,但没有反驳。)

除了高计算速度之外,Curl还拥有(根据我自己的速度测试)非常高性能的图形,至少在Windows平台上使用DirectX时是这样。它还具有明显的强大安全性。(旋度批评Adobe Air安全模型如在其签名证书计划一个大洞。)

Curl语言对您来说可能是新的,但是它并不难学。除了提供丰富的文档,卷曲提供很多优秀的样本源代码,应用特定主题的一些互动式教学的叫旋度提示,一个使旋度变得容易互动培训计划及在线课程关于Curl语言,可视化布局编辑器和Curl应用程序开发过程。

当我在当前Curl IDE文档中寻找Nitro扩展时,最初感到困惑。然后,我查看了Curl网站上提供的三个Nitro示例的源代码,这清楚地说明了在Curl库中哪里可以找到Nitro函数。然而,由于Facebook API的一个问题,其中一个Nitro样本对我不起作用。另外两个样本运行得很好。

Curl RTE(运行时环境)运行在Windows、Mac OS X和四个版本的Linux上。Curl IDE运行在Windows和Linux上。用于Eclipse的Curl开发插件与Windows和Linux平台上的Eclipse 3.3和3.4一起工作。

包括Nitro的基本Curl IDE和运行时是免费的,对于使用基本功能的公开免费Web站点来说,部署许可也是免费的。Curl Pro/部署许可的起价为12,000美元;Curl有针对企业、Internet、软件即服务和转售商商业模式设计的定价模型。

谷歌齿轮

谷歌Gears是一个免费的开源项目,增加了桌面功能,在Windows,Windows Mobile的,的Mac OS X操作系统,Linux和Android操作系统的IE浏览器,火狐,Safari和Chrome浏览器。(Chrome提供了内置了Gears,并不需要单独安装)。目前在测试版0.5(而准备,现在黄金时间),齿轮让Web应用程序交互自然与您的桌面;高速缓存和存储应用程序资源和斑点(二进制大对象)在本地;本地存储数据在一个完全可搜索的SQLite数据库;后台运行JavaScript,提高性能;并通过IP地址和Wi-Fi天线数据进行地理定位。

基本上,谷歌Gears是一种让Web应用程序在浏览器中脱机的方法。Curl Nitro和Adobe Air可以更进一步,不需要浏览器。

谷歌Gears向支持的浏览器公开了一个JavaScript API。谷歌托管Gears运行时引擎,用户在运行任何Gears应用程序之前都必须安装这个引擎。开发人员需要将gears_init.js复制到他们的应用程序目录中,并调用它,以便初始化Gears工厂和api;如果无法成功初始化Gears安装程序,此脚本将提供启动它的功能。

在线齿轮开发者文档讨论版本0.5,一个月前发布。这包括9个样品说明了api的使用。您可以下载所有这些示例的源代码,以及一些文章、两个工具和实现可恢复HTTP请求建议的Apache mod。其中一篇文章是关于使用Gears使Web应用程序脱机的教程,作者是of的Omar Kilani记得牛奶。Kilani和他的团队用了“四天的咖啡因时间”为他们的应用程序实现了离线功能。

我发现示例代码非常容易理解。Gears的API是非常简单的,像其他谷歌的API,将不会出现问题有经验的JavaScript开发人员。样品所有的工作很适合我。

谷歌Gears是免费的。添加齿轮功能的网页是一个简单的练习中JavaScript编程,可以使用任何HTML或文本编辑器来完成。服用一个Web应用程序完全脱机齿轮工作与应用程序的复杂程度。请注意,使用本地数据库的大量数据可以引入性能问题的同步;这是异步的JavaScript的原因工作者池API

微软的Silverlight

微软Silverlight是一个跨平台的浏览器的RIA插件。Silverlight 2包含的.Net Framework和Windows Presentation Foundation中(WPF)及其XAML标记语言的一个子集,并支持所有除了JavaScript中的网络语言。

Silverlight 2个的支持本地数据缓存和隔离本地存储,这是一个原因考虑它用作桌面RIA,虽然像谷歌齿轮它运行在浏览器中。还有另一种情况要考虑:小心,你可以写,也可以重新编译以分发作为一个WPF桌面应用程序的Silverlight Web应用程序和WPF应用程序将独立的,但可以根据需要连接到互联网。请注意,这是更容易编写Silverlight应用程序并重新编译它为WPF比它采取了WPF应用程序和重写未Silverlight支持的部分。

如果你用。net语言(比如c#)编写Silverlight 2和WPF,它们都有很好的性能。如果你在Web浏览器中使用JavaScript解释器来编写Silverlight, cpu绑定性能会显著下降。

Silverlight 2次中运行的基于Intel的Mac电脑上的Windows XP,Windows Vista和Mac OS X的运行时间。IE,Firefox和Safari浏览器的当前版本的正式支持,而“其它未决的客户反馈意见”;我还使用了Silverlight 2中成功地与谷歌Chrome和Opera的最新版本。微软的开发和设计工具需要Windows;一个Eclipse插件Silverlight的当前需要Windows,但最终将支持其他操作系统。Linux实现Silverlight 2中被称为月光2,目前正处于α波状态。

Silverlight有丰富的文档和非常好的工具支持。开发人员通常使用Windows上的Visual Studio 2008开发Silverlight应用程序;设计师通常使用Expression Blend 2来完成同一个项目,同样也适用于Windows。这两种工具对它们的目标用户都很好,但对它们的二级用户就不太好了。也就是说,Visual Studio 2008非常适合编码和XAML文本编辑,可以预览XAML页面,但不能进行可视化的XAML页面设计;Expression Blend 2非常适合XAML的视觉页面设计,但不支持编码。未来的Visual Studio 2010产品(现在是预览版)将结合这两种功能。

我对Silverlight 2的本地数据缓存和隔离存储设施不是特别感兴趣,它们在非托管代码访问时并不安全,而且缺乏实际的数据库。(对于许多偶尔连接的应用程序,您希望本地数据库不仅能够缓存从远程数据库读取的信息,而且还能够存储连接恢复时要发送到远程数据库的更新。使用本地数据库比使用简单的缓存工具更容易、更有效、更安全、更可靠地完成此任务。)

在另一方面,我对Silverlight 2中为RIA非常热烈。如果我想建立一个Silverlight Web应用程序,需要一个桌面版本,以及,我会朝着精益分别为编译WPF应用程序。我希望能有更多的超过90%,如果计划得当两个项目之间共享代码。

Silverlight插件、Silverlight SDK、.Net框架和Visual Studio Express版本都是免费的;Visual Studio 2008标准版是299美元(升级199美元);专业版售价799美元(升级版549美元)。订阅范围从$1,199的Visual Studio Professional与MSDN Professional,到$10,939的Visual Studio Team System 2008团队套件与MSDN Premium。Blend 2售价为499美元(升级售价为99美元)。

结论

选择桌面RIA时要问的第一个问题是该应用程序将如何被使用,既作为Web应用程序,又作为桌面应用程序。然后列出您需要的特性。您正在考虑的ria中有这些特性吗?有没有办法增加缺失的功能?您是否希望启用完全或偶尔连接的场景?

一旦您准备好了您的问题,您就可以确定哪种RIA最适合您的需求。

如果您拥有共享公共代码库的独立桌面和Web应用程序会更好吗?如果是这样,考虑WPF和Silverlight的组合。

您的应用程序有cpu绑定的部分吗?如果是这样,考虑Silverlight和Curl Nitro。

您的应用程序需要在没有浏览器的情况下本地运行吗?如果是这样,考虑空气和卷曲硝基。

你的开发人员知道WPF和。net框架吗?如果是这样,考虑一下Silverlight。他们已经知道Flash和Flex了吗?如果是这样,考虑一下空气。

你已经有一个AJAX的Web应用程序?如果是这样,考虑空气和齿轮。

最后,问问自己是否真的需要桌面RIA。有时,如果大部分工作是由公共后端完成的,或者大多数代码对两个版本的应用程序都是公共的,那么为应用程序构建第二个接口是相对较小的工作。从更大的角度来看,有时拥有独立但优化的桌面和Web用户界面对用户的好处可能超过所涉及的成本和时间。

Martin Heller是一位软件开发人员和顾问,也是InfoWorld的特约编辑。他撰写战略开发者博客。

这个故事,“富互联网应用程序的双重桌面应用程序”最初发表《计算机世界》

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对最重要的话题发表评论。

版权©2009Raybet2

工资调查:结果是