2011-01-11 52 views
0

我正在开发一个自定义的Web本体编辑器(类似于由GWT构建的http://webprotege.stanford.edu/)。我的后端将是Java + Spring + Hibernate,域模型是Java。我的前端将像WebProtege那样需要广泛的RPC调用。很明显,我应该使用GWT,因为我可以参考WebProtege开源代码。但是,由于公司政策,我也会考虑Flex。Flex vs GWT

我知道Flex可以通过BlazeDS使用AMF(Is there a Flex equivalent of GWT-RPC?)远程调用Java后端方法。我已阅读GWT vs Flex vs ?的讨论。如果我可以做出充分的决定,我会和GWT一起去。 GWT strengths喜欢支持从左到右的字符,支持iPhone/iPad,体积更小,支持JSON开箱即用,支持打印并不是我项目的重要考虑因素。

除了GWT支持Java泛型,enum;域对象可以与GWT客户端和服务器共享;编码更加无缝......任何人都可以建议其他强大的理由,我应该只使用GWT?我有很多Java经验,但GWT和Flex都是我的新手。

谢谢。

更新:我的管理层决定与Flex一起去,因为我没有坚定的理由坚持使用GWT。如果您有关于如何使GWT获得更多RIA市场的建议,请访问我的另一个post

+1

一个小点:你说,“很显然,我应该使用GWT,我可以指的是开放源代码。”为了记录,Flex也是开源的,它的所有代码都可以用于阅读,如果需要的话,还可以进行修改。 – 2011-01-11 09:59:01

+0

对不起,我的意思是我可以参考Web Protege的源代码。在我的问题中更新。 – 2011-01-12 01:31:28

回答

1

我已经评估了Flex和GWT,对于我们的项目,至少我们选择了使用Flex。使用BlazeDS与Java集成使得事情变得非常快,在互联网上可以找到很多图表,这些图表会给你提示有多快,这是我们的主要标准之一。即使直接处理XML,当从客户端到服务器来回传输数据时,Flex的速度也要比GWT快一个数量级,而BlazeDS使其速度更快。我认为它归结为Flex客户端运行在Flash VM中,并且GWT正在Javascript解释器中运行。如果您使用的是Chrome,那么性能可能会很接近,但我不知道,但是如果您没有运行Chrome,那么我认为Flex的性能表现非常好。我已经在Flex中完成了JSON,还有几个库可以让你在json.org上做到这一点。 Flex/Actionscript中还有一个“历史”库,允许您处理返回按钮问题。总而言之,如果您需要支持不支持Flash的平台,那么它们都是很好的解决方案,那么GWT就是明智的选择,但除此之外,我可以说我们有一个非常成功的使用Java/Spring/Hibernate的Flex应用程序后端通过BlazeDS支持数百个同步用户,并且速度与桌面客户端/服务器应用程序速度相媲美。

我会在这里添加一些背景。我们被控用Windows Server/Server应用程序替换性能大致相当,可配置性更高,桌面上没有配置,并成为“Web应用程序”的应用程序。我们踢了Java applets,.Net 1点击安装,GWT和Flex。基于易用性和性能之间的平衡,我们在用户桌面上需要使用Flash的其他原因以及坦率的政治原因(java haters;)我们选择了模块化Flex应用程序。现在一年多了,90多个基于用户角色的动态配置模块,我认为它非常成功。

但是,当然,因人而异;)

0

我有机会使用两者。就我个人而言,我发现很难将自定义GWT内置组件与Flex进行比较。我可能错了,因为我在使用GWT时没有创建任何自定义的GWT组件。

另一方面,在Flex中创建自定义组件非常简单。 GWT MVP 2.0以简单的方式支持浏览器历史记录处理,因此您可以使用浏览器向前和向后按钮来浏览您在Flex中不可用的访问过的页面。

当我使用Spring Roo来生成GWT以及Flex客户端时。 GWT的代码比Flex代码冗长得多,难以修改和扩展。

随着服务器端的Flex和Spring Roo,我可以花更多的时间来装饰UI。客户端框架有更多的选择来组织Flex中的代码,例如Mate,Parsely等。不要误解我的意思,GWT MVP也是一个很好的框架。

这取决于你自己决定。