哪个Web开发框架最适合Google App Engine?

时间:2009-04-11 18:17:17

标签: ruby-on-rails google-app-engine web-applications web-frameworks web2py

既然Google在App Engine上允许使用Java,我想知道这对App Engine的Web框架选择有何影响。

  1. 我意识到Google提供的是webapp 非常准确的框架。
  2. 这是django的.96版本 可用于App Engine 限制。
  3. web2py从我所听到的内容中消耗了资源。
  4. Rails(现已推出)无法使用 ActiveRecord,ActiveResource, restclient,rmagick。
  5. 是否有一些我缺少的东西 - 任何框架都可以在App Engine上运行良好吗?

11 个答案:

答案 0 :(得分:8)

实际上web2py非常轻,在GAE上为~1.50,它会缓存所有字节码编译的模型/视图/控制器。

然而,您需要考虑默认情况下是基于数据存储区的会话,与没有GAE会话的框架相比,这可能会增加一些开销(至少在默认情况下不是这样)。

与天真的Google数据存储区API相比,web2py DAL本身不会增加大量开销。

答案 1 :(得分:5)

就个人而言,我发现Python更有趣。这就是我。但是,有几个提交的Java开发人员会欣赏GAE中的Java支持。此外,支持Java是谷歌的一个很好的选择,因为它将允许GAE平台可能托管许多其他语言。期望所有基于JVM的语言在GAE上运行显然有点早,但未来看起来很有希望。现在,我们可以通过查看this GAE Java Group Page来查看有效和无效的内容。

回到Python,我认为小型Web应用程序将与内置的webapp框架配合使用。其他应用程序将从Django 1.0中受益更多。请查看框架部分下的GAE articles,了解一些有关此内容的详细信息。在任何情况下,您的任何选择无疑都会受到限制,因为大多数Web框架都是考虑到关系数据库而设计的......哪个数据存储/ bigtable不是。此外,出于安全原因,GAE平台必须进行沙盒处理,这在某种程度上也会限制您。希望这会有所帮助。

答案 2 :(得分:3)

试试Spring。它支持JPA和JDO。

现在春天甚至还有Python version

答案 3 :(得分:1)

我不完全知道所有选项,但我可以告诉你一些事情......

  • Google Apps构建于/使用Django。
  • Django几乎是Google Apps的欢呼和支持,所以我希望它能比其他人更好地与Google Apps集成。
  • Google Apps内置了一些限制, 无法 规避(或不应该)。这些限制与任何特定框架无关,而是可以说是内置于Apps结构中。
  • 我不担心框架的性能 - 尝试改进你的设计/结构,它肯定会有更好的回报。
  • 谷歌最终会转向更新的Django 1.0,而且他们也在更新Google Apps。
  • 他们确实使用内存缓存(或等效内容),因此请考虑并使用它。

答案 4 :(得分:1)

这实际上取决于你想做什么。根据我的经验,Webob上的小手工制作对于API非常有用。但对于需要模板/会话/复杂路由/缓存的完整网站来说,django很难被击败。

考虑到如果您使用庞大的框架(如django 1.0),第一个请求总是需要大约3秒才能将所有内容加载到内存中并将其保留在那里直到该请求后15秒。

当你四处寻找框架时,请考虑到:

  • ORM不适用于平台,所以基本无所谓。
  • 快速模板(如Cheetah)不会很快(甚至无法工作),因为它们无法使用c扩展名。
  • 缓存可能是让一切变得更快的最重要的事情。

答案 5 :(得分:0)

如果您正在寻找Python,那么Django将是您最好的选择。

答案 6 :(得分:0)

Struts 2据称可以在Google App Engine上运行(至少在示例应用程序方面)。请遵循以下主题:

http://www.nabble.com/Google-App-Engine-support--td22972179.html

看起来Sitemesh在模板方面存在一些问题,但是如果你使用的是JSP,你应该没问题。

作为Web应用程序框架,这是一个不错的选择。

答案 7 :(得分:0)

如果您使用的是Python,我建议web.py

答案 8 :(得分:0)

我使用新框架 GAE framework。这与Django类似,但在AppEngine上工作。

祝你好运!

答案 9 :(得分:0)

对于Python使用webapp2(与app引擎捆绑在一起)

答案 10 :(得分:0)

如果您想构建大型应用程序并需要更灵活的框架,那么您可以查看Pyramid Python Framework。以前它被称为Pylons。有很多优秀的公司使用这个框架。