【发布时间】: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