Gwt 哪个web应用程序框架?

Gwt 哪个web应用程序框架?,gwt,grails,dojo,sproutcore,Gwt,Grails,Dojo,Sproutcore,从下面的框架列表中,您会使用哪一个来开发富web应用程序,为什么选择它而不是其他框架 芽核 GWT ExtJS GXT SmartGWT 道场/迪吉特 弯曲 卡布奇诺 圣杯这完全是一个意见问题。你不会从任何人那里得到任何明确的答案,因为任何回答的人都会有他们个人喜欢的答案 尝试每一种方法足够长的时间,以决定哪一种最适合您(或您的团队)的目的 也就是说,我更喜欢GWT。其他人总是不同意我 我喜欢GWT的原因: 您可以共享(一些)客户端和服务器端代码(只要您的服务器是用Java编写的) GWT使许

从下面的框架列表中,您会使用哪一个来开发富web应用程序,为什么选择它而不是其他框架

芽核 GWT ExtJS GXT SmartGWT 道场/迪吉特 弯曲 卡布奇诺
圣杯这完全是一个意见问题。你不会从任何人那里得到任何明确的答案,因为任何回答的人都会有他们个人喜欢的答案

尝试每一种方法足够长的时间,以决定哪一种最适合您(或您的团队)的目的

也就是说,我更喜欢GWT。其他人总是不同意我

我喜欢GWT的原因:

  • 您可以共享(一些)客户端和服务器端代码(只要您的服务器是用Java编写的)
  • GWT使许多高级性能特性变得非常简单(例如延迟JS加载、图像spring、CSS模糊处理)
  • 专注于单页应用程序,第三方支持位置(使用库)
  • 将GWT添加到现有网页就像创建一个完整的单页GWT应用程序一样简单
  • UiBinder
    允许您使用类似HTML的声明性语法编写UI;如果不想的话,您不需要编写类似Swing的UI
  • 浏览器的不兼容性(大部分)由GWT处理——您只需编写Java代码,GWT就可以在每个浏览器上编译它
可能使GWT不适合您的事情:

  • 如果您的服务器已经用Java以外的语言编写,您仍然可以用GWT编写UI,但是您会失去一些好的特性
  • 使用GWT的编译时间是一项非常重要的成本——开发模式大大减少了这一成本,但有时这仍然是一个问题
  • 正如其他人提到的,与jQuery或ExtJS等简单JavaScript库相比,GWT可以被认为是“冗长的”

我目前正在开发一款grail/flex混合应用程序,它比我预期的要好得多。我看过GWT,但当时关于它的书并不多,它似乎强调了利用Swing式编程技术,这是我从未喜欢过的。我同意关于将它们全部试用的评论。运行他们所有人都有的hello应用程序,测量修改有多困难或容易。此外,工具(IDE、Maven、CI…等)支持也可能是立即产生生产力的一个重要因素

不幸的是,答案将是自以为是的,GWT最纯粹的形式并不是一种赏心悦目的东西。也就是说,ExtJs GXT是超级健壮的dory。我在不断发展的框架中面临的一个主要问题是,它们并不是绝对没有缺陷的,如果我没有记错的话,GWT2.0发布时,一些新布局缺少CSS样式。从过去5天开始,我一直在尝试解决ExtJs/GXT中的一个问题:(,框架混淆了很多东西。我会选择任何绝对健壮并给出适当错误消息的框架。但我没有与其他人合作。

我个人对浏览器不一致感到厌倦。如果其他人已经解决了问题,我宁愿不再这样做。这就是为什么我对前端越来越感兴趣的原因ke cappuccino和qooxdoo。它们是一个零HTML零CSS解决方案。

这些都是基于我个人使用您提到的框架的经验。因此,是的,这有点偏颇。因此,正如其他人反复说的,根据这里的建议定义您的需求,以及您认为哪一个适合您的需求

  • GWT太冗长了,尽管我发现许多Java开发人员喜欢GWT,因为你可以对它进行单元测试,而且它都是用Java编写的。但我个人不喜欢它,因为它一点也不简单。有时我觉得我可以用Javascript稍微调整一下,但有了GWT,我不得不用几行Java代码来完成它。
  • GXT现在离GWT太远了,你会发现做事情很困难,因为GXT有自己的方式做事情,这与GWT太不一样。当复杂的需求出现时,最终你会回去做普通的GWT。哦,他们的技术支持也不是那么好,因为我有过几次不好的经验当你向他们问几个问题时,他们会很生气
  • Ext-JS适用于简单的东西,外观和感觉非常流畅。但当事情变得更复杂时,你会奋力拼搏。尽管我已经处理过GXT技术支持,但我还没有处理过ExtJS技术支持,因为他们有不同的人,即使他们在一家公司,所以我不能说太多
  • Flex很好,非常好。但它同样适用于简单的东西。一旦事情变得更复杂,你将编写大量的actionscript,这就不那么令人愉快了。有很多现成的东西,如果你必须用Javascript编写,可能会很困难,比如多媒体支持。哦,如果你需要的话为一个公共网站写作,你必须考虑到没有太多的用户在浏览器上有Flash插件。
  • Grails,我不确定如何使用Grails实现RIA应用程序,因为Grails只是另一个MVC框架,您需要在上面添加自己的RIA框架,如您所提到的框架

我们在这里使用Grails+ExtJS。由于我们试图制作一个惯用的ExtJS应用程序,Grails并没有得到充分利用,尽管在服务器端部分使用Grails而不是JSP仍然是有意义的

为什么选择ExtJS:因为它是一个非常丰富的GUI类web应用程序工具包。我们的工作是替换旧的Motif GUI,所以这正是我们需要的

为什么使用Grails:因为它可以轻松快速地完成任务。对于与ExtJS部分的通信,我们需要大量JSON,在Grails中是这样的:

import foo.bar.FooBar
class FooBarController {
    def viewFooBars = {
        def list = FooBar.getList(session.userId, params.foo, params.bar)

        def result = [resultset: list] as JSON

        response.setHeader('Content-disposition', 'filename="json"')
        response.contentType = "text/json";
        render result
    }
}

这甚至比需要的多了两三行…

Ext GWT对我的项目很有效。高级支持很好