构建富Web应用程序有哪些选择?

时间:2011-04-15 14:58:41

标签: java javascript jquery-ui gwt sproutcore

我正在开发一个客户端Java应用程序,我想为其创建一个基于Web的用户界面(将从本地应用程序提供给浏览器)。冒着过度简化的风险,它的微博工具将支持类似于Twitter和Facebook的功能。它是开源的,你可以阅读更多on our wiki

重要的是,这个应用程序非常易于使用,我也希望它相对于当代Web应用程序(例如Chrome web store上提供的示例)看起来很好。由于我不是网页设计师,我希望使用的工具能够让我“开箱即用”。哦,我需要保持可分发文件相当小(不管他,所以无论我使用什么都需要合理轻量级。

到目前为止,我已经看过Sproutcore和GWT。

Sproutcore应用肯定有我希望的外观,但我不熟悉JavaScript,经过一些实验并不完全清楚我将如何实现一些更复杂的功能,我认为我'我需要。

作为Java,GWT更适合我的舒适区域,但是我有一段时间只是正确地设置我的开发环境。似乎GWT想要决定我的应用程序的结构,但由于用户界面只是其中的一小部分,我不愿意围绕GWT构建整个应用程序。

我一直在考虑的其他事情是使用CoffeeScript(看起来他更喜欢他,而他是他,而不是JavaScript,还有Maven构建者),也许还有JQuery-UI。

我应该考虑哪些其他选择?

6 个答案:

答案 0 :(得分:3)

推荐两个大型javascript框架SenchaCappuccino

这些工具包开箱即用。后者有一个MVC框架内置,前者有一个通用的JavaScript库内置。强烈推荐两者。

另外,推荐jQuery UI是一个合理的工具包。我个人会为Sencha提供丰富的UI工具包和像Backbone这样的轻量级MVC框架。我担心这确实需要学习JavaScript。

您也可以主要从服务器驱动JavaScript UI工具包,并跳过客户端MVC。因为sencha应该作为UI工具包进行浏览,但是如果你想要有意义的功能,你将需要更多的结构。我还建议RequireJS进行模块化文件管理。

答案 1 :(得分:2)

根据GWT查看Vaadin,但更简单易用。我用它2年了,我也不是设计师。

答案 2 :(得分:2)

看看jQuery& jQuery UIjQuery Modile如果您希望部署到手持设备)

此外,由于您提到您不是设计人员,因此您可能希望以MVVM模式实现前端,以将UI与应用程序的业务逻辑分开。 Knockout是一种很好的减速数据绑定方法

答案 3 :(得分:2)

我不喜欢编写纯JavaScript,所以我会告诉你一些关于基于Java的框架。最近,我选择了 Google Web Toolkit

优点:

  • 充足的材料
  • Eclipse + Google插件
  • 非常直观的API
  • 第三方图书馆
  • 花式小部件+优化的JavaScript
  • 很多仿制药
  • 非常活跃的社区
  • 非常棒的异步回调

缺点:

  • 调试非常慢,迟早会让你发疯
  • 这么年轻的框架的许多弃用代码

感情不一:

  • 您不必编写声明性UI(您可以执行类似Swing的开发),但是您的代码变得越来越大,可维护性也越来越差,因此很可能您最终会学习一些像UI Binder这样的声明性UI。 LI>
  • GWT的视觉设计师不错,但非常不稳定(eclipse):(

一些注意事项:

使用 Vaadin 进行一些原型设计。尝试一些调试。然后尝试GWT并在类似大小的项目上进行调试。将调试视为非常重要决策因素,因为GWT调试对我来说是最令人沮丧的事情。

考虑JSF + JSF的一些不错的丰富组件框架,如RichFaces,IceFaces,PrimeFaces等(但如果你真的关心你的应用程序将不再是“轻”和“小”)。确保完全适应环境(IDE +插件),没有什么能比JSF更好(如果选择完整的Java EE,我今天会选择RichFaces + Seam)。

答案 4 :(得分:0)

如果您不想学习javascript我建议您使用Sencha-GWT(GXT)GWT,您可以用java语言开发所有应用程序,并在java中调试代码。

使用这项技术创建一个Web应用程序非常容易,并且提供了javascript版本中几乎所有的功能。

此外,您可以将它与hibernate混合并使用giled来保存数据,并且giled可以帮助您序列化hibernate对象。

答案 5 :(得分:0)

我一直在SproutCore中为前端和Java后端编写应用程序。在我看来,这完美无缺。

如果请求是XHR或普通请求/响应,后端可以不再担心客户端上的HTML和JavaScript内容。我可以使用普通的旧Java Servlet来实现后端,并且只担心在客户端和服务器之间传递的数据(大多数情况下是JSON)。

客户端变得快速且响应迅速,SproutCore拥有大量可以混合搭配的组件。

换句话说,使用SproutCore(以及Cappuccino和其他完整的MVC JavaScript框架),您可以让您的客户端做它最擅长的事情:渲染和显示HTML,CSS和JavaScript,同时让您的服务器担心它是什么做得最好:检索,存储和更新数据。如果您有兴趣,可以使用GPLv3许可证获得此项目的源代码:https://github.com/joachimhs/EurekaJ

我在这里写了一篇关于服务器端MVC和客户端MVC之间不同方法的文章:http://haagen.name/2011/05/24/The_RIA_MVC_Model.html

SproutCore还附带MIT许可证,因此可以在没有(m)任何限制的情况下使用。