CRUD:去Roo还是不去Roo?[已关闭]
我一直在使用Groovy on Rails进行CRUD应用。我正在开始一个新项目,我们不再被允许使用Grails(我们有一个允许的jars列表,Grails不存在)。
我正在考虑使用Spring ROO或JBoss Seam。他们如何比较?他们的主要优势和劣势是什么?
我一直在使用Groovy on Rails进行CRUD应用。我正在开始一个新项目,我们不再被允许使用Grails(我们有一个允许的jars列表,Grails不存在)。
我正在考虑使用Spring ROO或JBoss Seam。他们如何比较?他们的主要优势和劣势是什么?
请注意,Spring Roo和JBoss Seam没有直接的可比性,因为JBoss Seam本身不提供问题中提到的CRUD应用程序生成。然而,JBoss Seam附带了seam-gen工具,它提供了此功能。因此,最好将JBoss Seam与Spring框架进行比较,并将seam-gen工具与Spring Roo进行比较。我知道这也不是一个完整的比较,但我想这超出了这个话题。需要说明的是,在下面的答案中,当我提到JBoss Seam时,我实际上指的是JBoss Seam与seam-gen工具的组合。
Spring Roo和JBoss Seam(带有seam-gen)都使CRUD应用程序的创建变得非常容易,就像其他Java全栈/脚手架解决方案(如Play Framework和RIFE)一样。如果你比较两者(Spring ROO和JBoss Seam与seam-gen),基于现有数据库或通过添加实体并定义字段和关系来启动和运行新的基本CRUD应用程序的速度,我想没有太大的区别。根据我的经验,您可以在Spring Roo中快速完成(稍微)一点,但是对于这两个方法,您可以在不到一个小时(如果现有数据库的情况下)或在不到(半个)一天的时间内(如果您手动添加所有实体和关系)即可启动应用程序。
在继续之前,读者应该注意,这整个比较是基于我对这两种解决方案的谦虚经验进行的,因此基于Spring Roo版本1.1.0和JBoss Seam 1.2和2.x。读者还应该注意,目前已经有一个优秀的Seam 3版本(实际上是带有Seam模块插件的CDI(Weld))基于Java EE 6规范,但是这个新版本的JBoss Seam不再具有seam-gen应用程序,因此还没有功能来创建一个完整的CRUD应用程序,只有几个命令,如Spring Roo和JBoss Seam 2.x及更低版本。目前有来自JBoss的人正在研究类似的东西,名为JBoss Forge,它看起来非常有前途,但截至今天,它还没有任何实际的发布,因此我猜还不是一个选择。
Spring ROO和JBoss Seam(带有seam-gen)都创建了一个很好的基本CRUD应用程序,尽管在我看来,Spring Roo生成的应用程序的默认UI设计看起来更好一些,但是由于您可能无论如何都想重新设计它,因此对于任何一个来说,这都不是一个太大的论据。创建的Web应用程序在提供的功能方面也略有不同,但就基本的CRUD功能以及其他基本功能(如身份验证和国际化)而言,它们彼此相当。
我认为主要区别以及决定要做什么的原因,不在于生成基本CRUD应用程序所需的时间,也不在于基架基本CRUD应用程序,而在于更重要的事情,如架构/设计决策,使用,支持,文档,灵活性,可维护性,扩展点等。就我而言,Spring Roo和JBoss Seam都是基于Web应用程序的绝佳选择(事实上,我的团队已经创建了两者的生产应用程序),但是在您做出决定之前,您必须查看这些重要的差异并确定最适合您的方法。当然,最好的决定方法是用这两个选项为自己做一个概念验证,但是如果你没有时间和/或资源,以下是我可以想到的(从我的头顶上)两者之间的差异,这可能有助于你决定任何一种方式:
虽然这两个伟大的产品之间当然有更多的区别,我甚至没有触及重要的事情,如可测试性,学习曲线和这些项目的未来,但我希望上面的要点可能已经帮助那些正在考虑这两种解决方案的人,做出至少一点更有根据的决定。我想再次强调,做出决定的最佳方法仍然是使用这两种方法创建概念验证,并查看哪种最适合您。
在我看来,可能让你做出简单快速决定的要点是Spring堆栈或Java EE堆栈,IDE支持,Web框架和解决方案的“成人”之间的选择。因此,如果你非常熟悉Spring堆栈(我猜你是,看到你来自Grails),那就去Spring Roo,否则你可能会在熟悉Java EE堆栈(包括JSF)方面浪费相当长的时间(当然,这取决于你的项目的大小,但假设它不是一个非常大的项目, 学习新技术的影响对于单个项目来说可能太大了)。如果你不能或不想使用Eclipse,并且对此充满热情,我想JBoss Seam可能是一个更好的解决方案。如果你想使用JSF或Wicket,那就选择JBoss Seam,而如果你想使用Spring MVC或GWT,请使用Spring Roo(对于其他Web框架来说,选择哪个可能并不重要,尽管Spring roo可能是一个更好的解决方案)。如果“成年”是你的主要决定点,我想你最好使用JBoss Seam。总而言之,在两者之间做出决定可能非常困难,但至少要知道,这两种解决方案都非常棒,无论哪种方式都会对你帮助很大。
顺便说一句,请务必密切关注JBoss Forge项目,因为当前的接缝生成解决方案将在不久的将来被这个有前途的项目所取代。
只是锻造它 - >http://forge.jboss.org
如果您是新手,您将拥有一个具有持久性,测试和安全性的Web应用程序。以及更多。
如果你了解Java,你将拥有与上面相同的知识来源,以及如何制作好应用程序的知识来源:Forge生成的源代码和资源。你可以学到很多关于Java EE(CDI,Validation,JSF),maven,JPA,tiles,EJB...还有更多。