我在一个中小型团队(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可能是一个选项,但我认为在我目前的工作中很难提倡它......
任何其他选择,建议,优点和缺点?
非常感谢
- 修改
答案 0 :(得分:4)
我建议你再看看Grails。它确实使用了hibernate和spring,但在大多数情况下,您不需要知道这些框架的细节。有一个庞大的社区和许多文档/博客/邮件列表供支持,以及一个蓬勃发展的插件社区,有300多个插件可以解决任何需求。
如果你仍然被grails推迟,你可以查看play framework。我没有任何经验,但最近有一些关于黑客新闻等的流量。我知道它使用groovy作为模板语言。
答案 1 :(得分:2)
我不能推荐任何东西,但强烈建议您考虑以下事项:
当您选择时 - 获取它的源代码,并确保它正确构建。它永远不会比现在容易,有一天你需要修复内部的东西。临时通知! (您甚至可以考虑为您正在构建业务的开源项目分配资源以捐赠文档/补丁/时间。)
编辑:还有一些事情:
答案 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,则另一种方法是使用Groovlets,Groovy 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最佳静态类型语言,漂亮的框架)