我的公司正试图从.NET应用程序迁移到纯粹基于Web的东西,而且非常"a".原始的.NET应用程序相当具有交互性,就用户交互而言大致相当于谷歌地图(缩放,平移,注释矢量地图上的功能).
我们的.NET开发人员真的使用Flex2.我承认有一个非常强大的Java偏见.我也有大约一年的GWT经验,可以很快完成任务.我们的代码库主要是J2EE,所以GWT似乎很适合我.我没有使用Flex的经验,所以我真的无法建议或反对它
我们选择框架的主要兴趣如下:
面向未来
适用于所有主流浏览器
快速响应的用户体验
代码应该是可单元测试的
代码必须是可维护的
速度和易于开发
支持某种矢量图形(SVG加)
注意权衡这两种技术的优缺点,甚至推荐第三种选择?
我对Flex很熟悉,但已与GWT合作多年.几年前我们不得不做出一个非常类似的决定(Flash与GWT),但出于不同的原因.最后,我们看到了GWT相对于Flash的许多优点(其中许多适用于Flex):
并非所有客户都拥有闪存,Adobe的渗透数量无用,您需要自己的(我们拥有)来查看客户实际拥有的内容.在企业和教育市场,渗透率实际上远远低于Adobe引用的90年代.
GWT是真正的跨浏览器和平台兼容(Linux,Mac,Windows,Android,iPhone等),而闪存永远不会.你可能不在乎,但我们做到了.
Flex是专有的Adobe技术,而GWT是完全开源和可定制的
GWT与DOM集成,页面上的其他所有内容都比Flash和Flex更容易.
GWT是用Java编写的,我们都非常了解Java
解决您的具体问题:
* futureproof
没有什么是真正的未来证据,但我觉得GWT和Flex都是未来的证明.也许GWT更加微不足道,因为它是开源的.
* works on all major browsers
GWT适用于Firefox(以及所有gecko浏览器),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支持矢量图形,通过第三方库.
我不熟悉GWT,但我对Flex非常熟悉.即使GWT是基于Java的(听起来你主要是一个Java商店),我建议根据您列出的兴趣使用Flex:
Futureproof - Flash支持YouTube以及网络上的大部分多媒体......他们已将其构建到视频游戏控制台中,英特尔正在将其构建到机顶盒中.它将在很长一段时间内出现在这里,Adobe一直保持与Flash播放器的100%向后兼容性.
适用于所有主流浏览器 - 是的.使用Flash Player 10,也包括Linux系统.而且管理难度很小(在我看来,这种方式比Java还少).
快速响应的用户体验 - 是的,尽管在某些情况下Java可以更快.Flash针对矢量渲染进行了优化,因此,由于这是您的目标,它可能会为您提供比Java更好的性能.
代码应该是可单元测试的 - 是的,请参阅FlexUnit.
代码必须是可维护的 - 绝对.AS3是一种严肃的语言,而不是玩具脚本语言.对C#或Java用户来说非常熟悉.
速度和易于开发 - 对于您正在做的事情,您将能够找到几十个您所描述的确切内容的示例:缩放和平移谷歌地图矢量图像.运行时的核心是精心设计的图形引擎,因此构建交互式图形应用程序是其天生的苦差事.
支持某种矢量图形(SVG加号) - 显然,Flash本身就是这样做的.编译阶段支持SVG(您可以在SVG中编译,但无法在运行时解析SVG).有些工具链可以在运行时为您将SVG转换为SWF.
我看到使用GWT 的唯一原因是将您的商店Java保留在服务器和客户端上......但话又说回来,您正在为这项工作寻找最好的技术,对吧?在这种情况下,我会说Flash(特别是Flex框架)最适合您想要完成的任务.
另外需要注意的一点是iPhone和Android目前都不支持Flash.越来越多的人希望通过手机访问网络应用.