建议选择新的Web开发堆栈

时间:2009-10-25 18:53:14

标签: java groovy jruby

我在一个中小型团队(10人)中工作,开发和支持多个Web企业应用程序。

我们有十几个用自制的框架构建,使用asp-classic来对抗ms-sql服务器。

我们正在评估迁移到新的开发堆栈。

我们希望它开放(免费)且简单。

我一直在寻找java web框架,但是所有这些框架似乎都因我们的需求而极度过时(可能除了http://www.playframework.org/,我还无法研究......)< / p>

我们正考虑将自己的框架移植到这个新堆栈,而不是采用我们不知道的全新堆栈......

到目前为止,我们关于以下可能性

  • 普通java - jsp - jsf

  • groovy - gsp(完全没有grails)

  • jruby(根本没有铁轨)

我们觉得使用动态语言非常舒服(好吧,像经典的asp一样动态),并且使用精简且易于理解的框架......

我看不到java的小而简单的web框架,就像php或ruby ...

我真的很喜欢groovy,但我看不到grails之外的网络实现......除了语言文档似乎并不完全(我可能会在错误的地方看,也许)

php可能是一个选项,但我认为在我目前的工作中很难提倡它......

任何其他选择,建议,优点和缺点?

非常感谢

- 修改

一些相关链接Can anyone recommend a simple Java web-app framework?

7 个答案:

答案 0 :(得分:4)

我建议你再看看Grails。它确实使用了hibernate和spring,但在大多数情况下,您不需要知道这些框架的细节。有一个庞大的社区和许多文档/博客/邮件列表供支持,以及一个蓬勃发展的插件社区,有300多个插件可以解决任何需求。

如果你仍然被grails推迟,你可以查看play framework。我没有任何经验,但最近有一些关于黑客新闻等的流量。我知道它使用groovy作为模板语言。

答案 1 :(得分:2)

我不能推荐任何东西,但强烈建议您考虑以下事项:

  • 快速发展。基本上你想保存一个页面文件,并在浏览器中重新加载它。即刻!它可以完成,不适合长时间部署。
  • 简单易读的文本文件!
  • 会议编码而不是显式编码 - 大型XML文件最终会导致一个或多个开发人员疯狂。越少越好。
  • 良好的工具支持(只需要语法着色可能会有很大帮助)
  • 考虑您选择的长期支持。你基本上是用你的软件再婚 - 它还能在10年内维持吗?通过谁?你有其他选择(JSR很棒 - 看看servlet引擎的数量)?

当您选择时 - 获取它的源代码,并确保它正确构建。它永远不会比现在容易,有一天你需要修复内部的东西。临时通知! (您甚至可以考虑为您正在构建业务的开源项目分配资源以捐赠文档/补丁/时间。)


编辑:还有一些事情:

  • 您希望能够在编译时验证内容。在Java中构建大教堂的一个原因是静态类型检查可以防止许多令人讨厌的运行时错误。 “哦,那个方法?嗯,它不在这里,抱歉。轰!”
  • 您希望良好的错误报告。内置!尝试深入,深入地抛出NullPointerException,看看1)用户和2)开发人员被告知它。任何需要转到日志文件以获取详细信息的内容最终都会在凌晨3点发出呼叫。
  • 从一开始就考虑可扩展性。任何非平凡的客户都需要和全世界的多核,所以你现在可能已经考虑过了。当你使用了所有神奇的小精灵表演灰尘并且它还不够时你会做什么:该应用程序需要不止一个盒子。

请阅读:http://www.pragprog.com/titles/mnee/release-it

答案 2 :(得分:2)

你忘了这个领域的另一个主要参与者:LAMP stack(linux,Apache,MySQL和mod_perl)。所有组件都是免费的,LAMP开发中有许多书籍和每个组件,并且已经有大量的库和组件可供使用。

答案 3 :(得分:2)

如果您害怕Grails并且需要Java,请尝试Stripes并阅读优秀的Stripes一书(http://www.stripesbook.com/blog/)。您可以花23美元购买电子书pdf。这本书以惊人的细节介绍了框架。 Stripes是一个非常强大,轻量级的MVC框架,它处理Web开发的所有常见问题(模板,URL映射,表单验证,安全性,国际化,测试),但它不会自动为您创建数据库层,除非您需要它通过使用Stripernate。您也可以使用Groovy。您可以单独使用它或使用Spring。

答案 4 :(得分:1)

我在使用Spring MVC和JSTL JSP的简单Web项目中取得了巨大成功。 Spring MVC是一个可以保持相当简单的框架(用于配置的另外一个XML文件)。您可以避开所有奇特的选项,只需指定一组要与视图名称关联的JSP,然后通过在控制器中指定它们的名称转发给这些视图。

Spring MVC也可以轻松扩展,并且可以根据需要进行复杂化,让您可以使用Tiles,Struts,JSF或Wicket从JSTL切换到JSTL。它还可以使用Spring Web Flow项目处理复杂的Web流。但是对于大多数项目我只是保持简单 - 构建一个JSTL JSP,创建一个提供JSP所需对象的控制器,并通过让控制器返回该视图来关联它们。一旦您完成项目设置并且熟悉配置,将新页面连接到位可能需要几分钟。

答案 5 :(得分:1)

如果你喜欢Groovy但不喜欢Grails,你可以尝试Gaelyk,这是一个轻量级的Groovy框架。但是,如果您在Google App Engine上托管应用程序,AFAIK只能使用Gaelyk

如果您的应用不会托管在GAE上,并且您真的不想使用Grails,则另一种方法是使用GroovletsGroovy template servlet,GSP。

但是,我个人认为解雇Grails是一个很大的错误。它确实是一个很棒的框架,你可以在不了解Spring和Hibernate的情况下走很长的路。您的一个抱怨是缺少Grails文档。我认为你一定是在寻找错误的地方,因为除了所有可用的书籍之外,还有一个非常广泛的reference document和许多其他可用的文档on the website。最后,有一个非常活跃的mailing list

答案 6 :(得分:1)

我选择的平台是JRuby - Rails(3)因为它非常丰富和强大的生态系统,但主要是因为:
*非常容易使用
*许多图书馆
*通过IRC快速支持
*深度文档

您还可以查看Scala + Lift Web Framework(imho最佳静态类型语言,漂亮的框架)