【问题标题】:Which java web framework to use for google app engine development in 2012? [closed]2012 年谷歌应用引擎开发使用哪个 java web 框架? [关闭]
【发布时间】:2012-08-09 05:29:31
【问题描述】:

我正在研究开发简单的 Java Web 应用程序以部署在 GAE 上,并在此过程中了解 Java Web 开发。我不倾向于使用 Wicket 和 Vaadin 等基于 RIA 组件的框架。

我查看了 Play 2.0、Tapestry 5 和 Click,其中 Play 2.0 无法在 GAE 上使用(我不想努力学习已成为过去的 Play 1.0)。我在使用 Javascript 进行客户端编程方面没有问题。所以,我不考虑 GWT。

我已经阅读了一些文档。 Click 似乎很容易在 GAE 上部署。但是,Tapestry 5 似乎是一个学习和学习并成为更好的软件/Web 开发人员的好框架。但是,我在谷歌上搜索使用 Tapestry 和 GAE 产生的页面讨论了如何让它在 GAE 上运行,而不是对 GAE 本身提供一流的支持。

如果它能让我成为一个更好的程序员,我不介意努力学习一个复杂的框架。有没有人有在 GAE 上使用 Tapestry 的经验?还是我应该直接点击?

【问题讨论】:

  • 我用 Scala、Scalatra、LiftJson、Objectify (ORM)、Guice 和 Specs2 编写了一个 GAE 应用程序。这让我可以编写 Sinatra 风格的 REST 端点而没有太多复杂性。前端只是共享主机上的一个 JS/PHP 站点。这避免了网络流量的 GAE 成本,让 GAE 完成繁重的工作,并且非常活泼。整体开发过程非常轻松。
  • @BenManes,非常感谢您提供了一个有趣的替代方案。 Scalatra 看起来很棒并且有据可查,这对于像我这样的新手来说非常重要。由于您使用了不同的软件包,您是否遇到过任何集成问题?我担心的是以后会遇到一些集成问题。
  • UI 集成很简单,因为它只是 REST 端点,所以路由和 json。这意味着发现测试未发现的错误,并在前端被刷新时在 api 上进行迭代。对于服务器端,我发现 GAE 令人沮丧,因为它没有友好的 API(低级、脆弱且不是 Java 惯用的)。 maven/gradle 插件使发布变得轻而易举。如果您有 api/services/etc 分离,则注入 + 模拟使测试变得简单。
  • @BenManes,看起来使用精益 Web 框架实现 REST 服务是现代 Web 开发的方式。谢谢。

标签: google-app-engine tapestry click-framework


【解决方案1】:

在 2012 年,如果您认真对待 Web 开发,则需要同时使用服务器端和客户端框架。

以下是我的建议:

  1. 服务器端:使用在一个包中同时提供 HTML 生成和 REST/JSON 支持的东西。对于 Java,一个自然的选择是JAX-RS standard。我使用RESTEasyHtmlEasy,您可以在其中选择您选择的模板库。我推荐Silken

  2. 客户端。既然你是 java 开发者,我推荐 GWT。这很棒。只是不要使用它的小部件或 UiBinder。使用纯 HTML(它是在服务器上生成的,对),然后通过 GwtQuery 添加代码。还有avoid GWT-RPC 或RequestFactory,使用REST(GETRestySpiffyUI)。

【讨论】:

  • 其实我在Java Web 开发方面的经验并不多。你提到的很多东西对我来说都是新的。非常感谢您的回答。我以为我可以学习一个 Web 框架并完成它。但是,看起来和往常一样,还有很多东西要学:)
  • Peter,你能推荐一些关于 RESTEasy 的不错的教程吗? JBOSS 网站上提供的信息令人印象深刻。我们有自动生成 Jersey 的 HTML 吗?
  • 您好 Peterm,我想更好地理解您的评论。因为我认为如果你不使用 Widgets、UiBinder、GWT-RPC 或 RequestFactory,你就不会同时使用 EventBus 或 Activity/Place 等。此外,如果您建议的库只是 Javascript 的移植,您可能会失去端到端的调试过程。我看到了 REST API 的优势,但在客户端我更喜欢使用 GWT plain,因为我不想失去 GWT 的控制和优化因素。 GWT 的真棒你用的是什么?
  • @ungarida:您可以使用 MVP、EventBus 等,而无需 Widgets,这就是我所做的。我喜欢 GWT 的部分是我编写 Java,而 GWT 生成高度优化的 Javascript。
猜你喜欢
  • 2012-04-11
  • 2011-11-29
  • 1970-01-01
  • 2012-02-12
  • 2011-05-27
  • 1970-01-01
  • 2010-10-26
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多