1

我有一些使用 Cairngorm 框架在 Flex/Actionscript 中开发的经验。那时我之前没有 ActionScript/Flex 的经验,我花了大约 3 个月的时间才开始认真开发一个应用程序。那个时候,我也对开发一个基于 Flash 的应用程序持怀疑态度,它不会在所有 PC 浏览器上都可见(不更新 Flash),更不用说 iphone/ipad。但我想看看使用 Flex 可以构建什么样的应用程序,所以接受了挑战。

但是现在我又开始怀疑为什么我要混入 Flex,当我有 jquery/ajax 时,各种快速的 php 框架(与 ActionScript/Flex 不同,我对这些框架感到满意)。

如果我决定这样做,我应该如何让我的客户相信 Flex 中的网站可以比 HTML/php 等中构建的网站好得多?

有人可以对此有所了解吗?

问候

4

6 回答 6

4

除了这些,还有更多的原因,但一些主要的原因是:

运维成本:大多数“工程师”对此不屑一顾,因为他们以开发为中心,但事实是运维是目前运行 IT 系统的主要成本。使用 Flex(或 Silverlight 或 JavaFX)之类的 VM 方法,您不必担心每次新浏览器出现时更新库、测试、应用修复等。使用难以维持日常运行的遗留技术会直接损害客户的底线。

性能: Flash (Flex) 是 JIT 编译的,(如果 SL 也是如此,也不会感到惊讶),Java 也是如此。解释型的 JavaScript 依赖库(例如 GWT)根本无法与您从已编译的 VM 客户端获得的性能相提并论——它甚至不是一个密切的比较。“AJAX”(尤其是使用 XML 时)不是“快”。(请注意 Gmail 通常加载的速度有多慢 - 一个非常简单的启用 AJAX 的脚本。)证明在基准中。

一致性/可靠性:每个人都知道,当您使用 JavaScript 或 HTML 编写任何东西时,必须在每个浏览器中进行测试(如果您真的想要安全,包括一些旧版本)。当您针对 VM 平台时,没有这样的问题。使用 AJAX:每当发布新的浏览器或浏览器版本时,您都会担心。如果有问题,它会为你创造工作。

更丰富的组件和更好的用户体验:这是 Adob​​e 的一大卖点,但确实如此。虽然纯粹使用浏览器脚本 (JavaScript) 完成的一些工作令人印象深刻,但 Flex 或 Silverlight 组件更好。当您不需要编写(和维护!)跨浏览器 JavaScript 魔法时,创建自己的自定义组件也很容易。

Flex 特有,但值得一提——AMF:这是 Flex 数据服务二进制协议,可用于与服务器通信。基准测试(询问 Google)已经证明该协议比 AJAX 框架使用的协议更快且带宽效率更高。在当今网络正在成为主要瓶颈(如果还不是很清楚)的世界中,这是一个相当大的胜利。

对许多人来说,这是一个敏感话题。大多数 AJAX/DHTML/JavaScript 的“工程师”或他们自称的任何人都会对他们花了数年时间成为专家的 1990 年代技术已经过时和有缺陷的建议大喊大叫并扔屎(坦率地说,他们有很多损失)。但是基于纯粹的技术优势,与任何成熟的基于 VM 的解决方案相比,即使是 HTML5 也是一种适得其反的浪费时间。我相信有些人很快就会出现,通过投票来捍卫他们的否认邪教。但很难阻止未来。

AJAX/DHTML 框架基本上都依赖于遗留的 hack 和复杂、缓慢、脆弱、不断维护的库,以使它们在多个浏览器中运行良好。HTML5,当它在 2022 年最终“完成”时(!!!)在功能方面甚至都赶不上 Silverlight 2——更不用说 Flex 届时将拥有大量的东西。基本上,AJAX 是一个维护泥潭和脆弱的开发环境,您可以通过使用 Flex、Silverlight 或 JavaFX 等 VM 解决方案完全避免这种情况。

于 2010-07-31T20:01:33.453 回答
3

与使用 Flex 的 HTML/AJAX/JavaScript 相比,您不会因跨浏览器问题而头疼,您会获得精美的动画和滤镜效果、非常方便的 IDE(Flash 构建器)、ActionSctipt 3(恕我直言,非常方便,更像 Java,而不是 JavaScript)。

而且您应该忘记让应用程序在移动平台上运行。)

于 2010-07-28T07:51:41.213 回答
2

在我看来,Flex 中的组件以及创建满足您确切需求的自定义组件的能力(所有这些都是通过完全面向对象的方法完成的)无法与 AJAX 框架相匹配。AMF 协议也是一个很大的优势,因为它的速度非常快。动画很容易创建,为每个组件提供一种增强用户体验的感觉,并为您的界面赋予自己的生命。我的帖子之前提到的所有内容也应该考虑在内。

开源解决方案可以在合适的时候使用它们,如果我想用一些服务器端代码构建一个简单的站点,我也会使用它。

但是当你从“网站”进入“网络应用程序”时,我认为为了成功,你必须创造出与众不同的材料。Flex 正是为此而存在的。

如果你可以在没有它的情况下建立相同的体验,那就去做吧,对你有好处。:)

于 2010-08-01T01:58:11.207 回答
1

一个项目不应该由你使用的工具来定义,而是相反,定义你的项目并选择最合适的工具来实现你的目标。

也许第一步(当你决定“混入 Flex”时你似乎已经迈出了第一步)是更好地理解这些工具。

为什么要将 PHP 框架与 AS3/Flex 进行比较?更新闪存有什么问题?或者,如果您愿意,更新有什么问题?!

有选择很好,我们不要在没有必要的时候设置不必要的限制。为什么不根据每个项目来决定;)

于 2010-07-31T11:26:02.997 回答
1

You should ask yourself why you need to use flex. Are you developing a game? A 3D graphics application on the web? Something that actually cannot be achieved with HTML?

If not, there is no reason of using flex instead of HTML. HTML is an open and standard specification, you don't need plugins, your application will run on any platform with a browser supporting html, and it will be faster and less resource-consuming. Don't fall in the error of developing in flash/flex something that can be done perfectly with HTML/AJAX. I saw some developers creating applications with flex or silverlight that consisted in just a series of forms, and it was a ridicolous waste of time and resources.

So the only way to convince your clients to use flex should be finding something you actually can't do with HTML.. and having in account that HTML5 is almost here and hardware-accelerated HTML5 browsers will be launched at the end of this year.., it will be difficult to convince people to get tied to flash/flex! :)

于 2010-07-28T07:58:29.423 回答
0

它不是一个非此即彼的决定。Flex 组件应该被视为页面的一部分,但不应该——我再说一遍,不要犯在 flex 中构建单体应用程序的错误。我刚刚完成了一个构建大型 flex 应用程序的项目。永远不会再这样做了。它有它的用途,但同样,flex 小部件应该补充一个 html 框架。不是反过来。

于 2010-07-31T18:29:26.827 回答