JQuery VS Flex – 为SAAS选择平台

我们的团队即将启动面向小型企业的SAAS Web应用程序。 这对我们来说是一次全新的体验; 我们是一个系统/ linux / php开发组织,没有任何开发客户端软件的经验,除了简单的基于html / php的CRUD支持应用程序。

我们正在评估Adobe Flex和JQuery。 我们似乎无法在两者之间做出选择。 我们的重点是:

  1. 生产力 – 我们必须尽快启动。
  2. 整体用户体验 – 结果应用程序必须看起来很专业,用户必须有使用我们产品的愉快体验。 我认为这不是两个平台的问题,但我们可能会自动失去10%未安装闪存的潜在用户。
  3. 技能重用 – 我们都必须在这个项目上学习新语言和RIA平台,并希望我们可以在更多项目中再次使用它。 顺便说一句,我们是一个软件承包组织,这是我们首次涉足消费者应用程序。 我们希望我们可以利用我们在这里为客户所获得的技能。

应用特点:

  1. 以数据为中心 – 大量的CRUD操作。
  2. 3层 – 业务逻辑将驻留在PHP服务器上,数据将存在于MySQL上。 RIA只会向用户显示数据。
  3. 用户可访问的数据将很大 – 这就是我们决定使用RIA的原因。 当用户进行少量更改/添加时,我们无法刷新页面。
  4. 安全性是至关重要的 – 我没有看到选择一个平台而不是另一个平台的任何安全隐含,但社区可能有一些想法?

我们正在仔细研究这个。 我们经常在开发人员之间进行竞争,他们可以通过使用flex或jquery更快地实现测试应用程序。 我们很想听听社区有什么要说的。

提前致谢!

UI :你需要快速转身,而html以某种方式使它成为可能。 使用HTML技术的意思你可以轻松改变你的用户界面。 但是,如果整个ui在flex上运行,则稍微更改需要sdk / flex编译。 我们有一些像你一样的类似项目,但我们结合了两个世界,一些小部件正在使用flex,ui仍然在html中,而jquery则用来做魔术。

在后端, 这张幻灯片可以给你一些想法:

我用过这两个。 我没有强烈推荐,但有一些考虑因素。

  • 移动支持。 Flex需要Flash运行时,这在许多移动平台中都不存在。 为了获得最佳效果,您无论如何都需要一个单独的移动界面,而不仅仅是重用桌面界面,尽管后者可以达到某种程度。
  • 浏览器支持。 你将花更多的时间在jQuery上。 它们抽象出很多东西,但是一旦你了解了应用程序的布局细节,你仍然需要在不需要Flex的浏览器和平台上进行大量的工作测试。
  • UI布局和架构。 应用程序有多复杂? 如何模块化? Flex具有非常好的模式来组件化您的应用程序,生成可重用的组件等,jQuery本身并没有帮助您,它更加准系统。 使用Javascript / jQuery,您需要进行自己的研究,以找到最佳的架构设置。
  • 开发工具。 如果您喜欢使用GUI设计应用程序,Flex有一个非常好的集成设计/编码IDE。 你可以自己使用Javascript。 有工具,但您需要自己选择。
  • 供应商锁定和成本。 Flex需要花钱(好吧,IDE无论如何,你可以得到一个免费的编译器,但我还没有尝试它的可用性。)Javascript / jQuery是“免费的”但需要花时间研究以上所有内容。

用户体验方面,两者都是等价的,你可以用它们产生好的和坏的经验。 两者都有不错的开箱即用UI小部件集,带有ThemeRoller的jQuery更容易定制,但Flex也非常适合使用与W3C CSS非常类似的系统进行换肤。

我会用Flex。 如你所愿,赞美jQuery,但Flex是一个完全成熟的框架和环境,它通常会阻止IE6(你提到小企业)以后咬你的屁股。 此外,由于您正在与小型/中型企业合作,因此他们将更喜欢使用Flex UI而不是jQuery / ExtJS /任何UI。 我发现前者更具响应性,开箱即用,可以降低设置和周转时间。

TimeFrame:Jquery更容易启动,但没有良好的基础技能和设计模式,当应用程序增长时,它很容易变得混乱。 IDE:Flex胜过Jquery,jquery我看到浏览器和firebug作为IDE SkilL重用:我个人会说javascript(adobe air是certificate)

当Flash播放器必须呈现大量文本和矢量内容时,它仍然在客户端非常密集,这是我将寻求javascript解决方案的主要原因之一。

我会建议有选择地使用flash / flex(video/绘图/图表,如果需要),并使用jquery + html作为应用程序的主要框架。

看一下ExtJS,它比web应用开发目的更完整,而不是jquery。 虽然比jquery更容易获得启动。

使用jQuery(或YUI / ExtJS / …),您将能够生成外观甜美的应用程序,其效果与Flex相似/相当。

然而,恕我直言,使用jQuery-UI我发现当组件改变状态时它会闪烁。 这不仅仅是一个跨浏览器的问题; 它有时会发生在FF上,而不是其他时间。 (可能会出现一些内存问题),您的选择是1.等待社区发布修复程序和/或2.自己动手另一方面,Flex组件会对此进行测试并获得更好的支持(尽管Adobe可以傲慢地对付)。

HTML / JS / CSS应用程序并不总能提供令人愉悦且一致的效果(取决于您运行的选项卡数量,您的浏览器会话有多少可用.mem。)。

使用JS,HTML,CSS,您的开发将变得更加容易,而Flex则需要具有建筑感的优秀人才(阅读费用昂贵); 否则你可能会搞砸你的应用程序非常糟糕。

JS,CSS和HTML(甚至5)将始终存在可能永远无法完全抽象出来的跨浏览器问题。

使用Flex,如果您的后端是Java或CF,您可以获得远程对象(AMF二进制),这使得数据传输类型,本机和更快。 (甚至可以使用php-amf,saber-amf或WebOrb,具体取决于你的后端。)

使用JS,您可以使用json或XML。 您可以使用运行时共享库​​优化部署。 并采用了许多策略,如模块化开发,延迟加载,感知和实际性能提升等。难以处理JS / HTML / CSS,其中一般的诱惑是在设计时创建窗口小部件占位符。

当一个新人出现时,JS应用程序更难维护,没有好的调试工具(恕我直言,Aptana是如此)。

最后,我同意这里有人说混合解决方案可能正在订购。 在小部件中开发应用程序;

您可以在Flex小部件中使用一些很酷的拖放支持(与JS相同,但使用Flex更容易)。

您的flex小部件将被解耦,因此在发生更改时需要进行渐进式编译,如果您为彼此精心设计的API,不同的团队可以使用不同的项目。

您可以使用外部接口与HTML包装器进行通信,并来回发送数据。

祝你好运!

“Penny明智的愚蠢”

您可能非常容易(并且合理)地发现jQuery程序员,但是他们的方法论是否结构化是另一回事。 你可能会在3年时间内陷入混乱,而不是一个可行的可扩展应用程序。

如果您能够获得具有Java,Ajax / jQuery和Flex技能的优秀技能的首席开发人员,并让那个人设置开发标准和指导方针,那么这将花费很多钱。