我正在开发一个客户端Java应用程序,我想为其创建一个基于Web的用户界面(将从本地应用程序提供给浏览器)。冒着过度简化的风险,它的微博工具将支持类似于Twitter和Facebook的功能。它是开源的,你可以阅读更多on our wiki。
重要的是,这个应用程序非常易于使用,我也希望它相对于当代Web应用程序(例如Chrome web store上提供的示例)看起来很好。由于我不是网页设计师,我希望使用的工具能够让我“开箱即用”。哦,我需要保持可分发文件相当小(不管他,所以无论我使用什么都需要合理轻量级。
到目前为止,我已经看过Sproutcore和GWT。
Sproutcore应用肯定有我希望的外观,但我不熟悉JavaScript,经过一些实验并不完全清楚我将如何实现一些更复杂的功能,我认为我'我需要。
作为Java,GWT更适合我的舒适区域,但是我有一段时间只是正确地设置我的开发环境。似乎GWT想要决定我的应用程序的结构,但由于用户界面只是其中的一小部分,我不愿意围绕GWT构建整个应用程序。
我一直在考虑的其他事情是使用CoffeeScript(看起来他更喜欢他,而他是他,而不是JavaScript,还有Maven构建者),也许还有JQuery-UI。
我应该考虑哪些其他选择?
答案 0 :(得分:3)
推荐两个大型javascript框架Sencha和Cappuccino。
这些工具包开箱即用。后者有一个MVC框架内置,前者有一个通用的JavaScript库内置。强烈推荐两者。
另外,推荐jQuery UI是一个合理的工具包。我个人会为Sencha提供丰富的UI工具包和像Backbone这样的轻量级MVC框架。我担心这确实需要学习JavaScript。
您也可以主要从服务器驱动JavaScript UI工具包,并跳过客户端MVC。因为sencha应该作为UI工具包进行浏览,但是如果你想要有意义的功能,你将需要更多的结构。我还建议RequireJS进行模块化文件管理。
答案 1 :(得分:2)
根据GWT查看Vaadin,但更简单易用。我用它2年了,我也不是设计师。
答案 2 :(得分:2)
看看jQuery& jQuery UI(jQuery Modile如果您希望部署到手持设备)
此外,由于您提到您不是设计人员,因此您可能希望以MVVM模式实现前端,以将UI与应用程序的业务逻辑分开。 Knockout是一种很好的减速数据绑定方法
答案 3 :(得分:2)
我不喜欢编写纯JavaScript,所以我会告诉你一些关于基于Java的框架。最近,我选择了 Google Web Toolkit 。
的优点:强> 的
的缺点:强> 的
感情不一:
一些注意事项:
使用 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)任何限制的情况下使用。