GWT vs Flex vs?[已关闭]

2022-09-01 05:14:31

我的公司正试图从.NET应用程序迁移到纯粹基于Web的应用程序,并且非常“ajaxy”。最初的.NET应用程序是相当交互式的,就用户交互而言(缩放,平移,在矢量地图上注释功能)大致相当于Google地图。

我们的 .NET 开发人员真正喜欢 Flex2。我承认我有很强的Java偏见。我还有大约一年的GWT经验,并且可以很快完成任务。我们的代码库主要是J2EE,所以GWT对我来说似乎是一个自然的适合。我对Flex没有任何经验,所以我真的不能推荐或反对它

我们在选择框架方面的主要兴趣如下:

  • 面向未来
  • 适用于所有主流浏览器
  • 快速响应的用户体验
  • 代码应该是可单元测试的
  • 代码必须是可维护的
  • 开发速度和易用性
  • 支持某种矢量图形(SVG加号)

注意权衡这两种技术的优缺点,甚至推荐第三种选择?


答案 1

我对Flex只有一点点熟悉,但已经与GWT合作了很多年。几年前,我们不得不做出一个非常相似的决定(Flash vs GWT),但原因不同。最后,我们看到了GWT相对于Flash的许多优势(其中许多适用于Flex):

  • 并非所有客户都有闪存,Adobe的渗透率数据毫无用处,您需要自己的(我们拥有的)来查看客户实际拥有的内容。在企业和教育市场,渗透率实际上远低于Adobe引用的90年代的高点。

  • GWT是真正的跨浏览器和平台兼容(Linux,Mac,Windows,Android,iPhone等),而Flash永远不会。你可能不在乎这一点,但我们做到了。

  • Flex是Adobe技术专有的,而GWT是完全开源和可定制的。

  • GWT与DOM集成,页面上的其他所有内容都比flash和Flex容易得多。

  • GWT是用Java编码的,我们都知道Java。

要解决您的具体问题:

*  futureproof

没有什么是真正面向未来的,但我觉得GWT和Flex都将是面向未来的。也许GWT更是如此,因为它是开源的。

* works on all major browsers

GWT适用于Firefox(和所有壁虎浏览器),Safari(和所有Webkit浏览器),IE和Opera。Flex适用于所有浏览器,但前提是Flash受支持,所以我会说GWT在那里名列前茅。

* fast & responsive user experience

在支持它的平台上,Flex将扼杀GWT的用户体验。在平滑度和光滑度方面,您无法与闪光灯竞争。

* code should be unit testable

两者都很容易进行单元测试

* code must be maintainable

当编码良好时,两者都是可维护的

* speed & ease of development

只要你熟悉它们,我会说这很重要。

* supports vector graphics of some sort (SVG a plus)

我不能代表Flex,但GWT通过SVG,通过第三方库支持矢量图形。


答案 2

我不熟悉GWT,但我对Flex非常熟悉。尽管GWT是基于Java的(听起来你在很大程度上是一家Java商店),但我会根据你列出的兴趣推荐Flex:

  • 面向未来 - Flash为YouTube和网络上很大比例的多媒体提供支持...他们已经将其构建到视频游戏机中,英特尔正在将其构建为机顶盒。它将在这里很长很长一段时间内存在,Adobe始终与Flash播放器保持100%的向后兼容性。

  • 适用于所有主流浏览器 - 是的。而对于Flash Player 10,这也包括Linux系统。而且管理上的麻烦非常小(在我看来,比Java少得多)。

  • 快速响应的用户体验 - 是的,尽管Java在某些情况下可以更快。Flash针对矢量渲染进行了优化,因此由于这是您的目标,因此它可能会为您提供比Java更好的性能。

  • 代码应该是可单元测试的 - 是的,请参阅FlexUnit。

  • 代码必须是可维护的 - 当然。AS3是一种严肃的语言,而不是玩具脚本语言。对于C#或Java的用户来说,这将是非常熟悉的。

  • 开发的速度和易用性 - 对于您正在做的事情,您将能够找到数十个您描述的示例:缩放和平移Google地图 - 类似矢量图像。运行时的核心是精心设计的图形引擎,因此构建交互式图形应用是其自然的苦差事。

  • 支持某种矢量图形(SVG加号) - 显然,Flash本身就是这样做的。SVG 在编译阶段受支持(您可以在 SVG 中编译,但不能在运行时解析 SVG)。有一些工具链可以在运行时将 SVG 转换为 SWF。

我看到使用GWT的唯一原因是将你的商店Java保留在服务器和客户端上......但话又说回来,你正在寻找最适合这份工作的技术,对吧?在这种情况下,我会说Flash(特别是Flex框架)最适合你想要完成的事情。


推荐