SpringSource(现为VMWare)具有两种非常相似的技术:Grails和Spring Roo。我一直在使用Grails,但是我看到SpringSource正在积极致力于这项技术的竞争者,这让我担心Grails的未来。
有谁知道这些技术之间的关系,是要合并这些技术,还是将其中一种技术抛弃?
此外,Grails和Roo之间是否有重要的技术区别?
SpringSource(现为VMWare)具有两种非常相似的技术:Grails和Spring Roo。我一直在使用Grails,但是我看到SpringSource正在积极致力于这项技术的竞争者,这让我担心Grails的未来。
有谁知道这些技术之间的关系,是要合并这些技术,还是将其中一种技术抛弃?
此外,Grails和Roo之间是否有重要的技术区别?
Answers:
SpringSource的目标是使人们尽可能快速,轻松地构建,运行和管理基于Spring的解决方案。我们同时拥有Grails和Spring Roo,是因为我们非常关心开发人员的工作效率,毫无疑问,这两种工具都极大地促进了团队在Spring之上可以实现的目标。
我们拥有这两种技术,是因为Roo和Grails在哲学和实现级别上有很大不同(正如其他答复中已经提到的)。每种技术都以“我们如何使用这种语言和操作模型的组合,如何使价值主张令人难以置信的好?”的理念来接近其主要语言(Java或Groovy)和操作模型(开发时间或运行时)。这样,您将看到每种技术都采用了不同的样式,从而最大限度地提高了组合(Roo的Java + Dev-time或Grail的Groovy + Runtime)和相应的好处。
这些差异实际上是非常积极的,因为它们意味着Spring社区可以选择他们喜欢的生产力解决方案的“风味”。尽管在语言选择和运行时/开发时操作方面的这些最初区别显而易见,但Grails或Roo的选择也扩展到了更细微的考虑,例如所使用的默认技术,用户交互模型,IDE支持,依赖项,标准,路线图,几乎所有这些差异都是针对特定语言风格寻求最佳解决方案的自然结果。
我们最好的建议是同时考虑这两种解决方案。每种都有其优点,但是两者之间存在差异,这将使您在给定的背景下使用一种或多种技术能获得更好的总体体验。两个参考指南详细各自优点的各溶液。当然,请记住,花时间进行最少的尝试是最少的。在10分钟内,您可以在Roo或Grails中构建一个项目,因此请尝试一下,看看在您的特定背景和项目需求下您觉得更自然的事情。
主要区别在于Roo是纯Java框架,而Grails既使用Groovy也使用Java。两者都是基于核心Spring库构建的,并利用了流行的Java开源库。
当Roo宣布时,这个问题又被问到了。GraemeRocher(Grails领导)说,这两个框架在Spring中都占有一席之地,并且受到同等支持。
如果有的话,我认为Grails比Roo的前途光明。我喜欢用它进行开发,并且不认为它不是纯Java有任何缺点。
Grails和Roo有很大的不同。第一个主要区别是所使用的语言。尽管您可以像传统的Java代码一样编写Groovy代码,但仍然需要Groovy依赖项才能运行Grails应用程序。为了在Grails中尽可能地提高生产力,您还需要掌握Groovy中当前不属于Java的功能,例如Closures。另一个区别是框架用于生成代码的理念。Grails在运行时会生成许多方法,而Roo在开发过程中会根据要求生成它们。Roo对于面向方面的编程的使用并没有魔力的支持,并且您可以查看Roo生成的所有代码。例如,在Roo中,您必须使用命令使它生成动态查找程序方法(例如findByBook()),然后在.aj文件中查看生成的代码。在Grails中,findByBook()方法是在运行时创建的,您无法查看生成的代码。Roo还允许您在继续运行应用程序的情况下选择停止使用该框架,方法是将所有生成的代码合并到正常的.java文件中。这样,您在运行时或设计时就不会依赖任何Roo库。如果您决定不喜欢Grails,那么在继续拥有正常运行的应用程序的同时,就无法停止使用该框架。
我们有一个需要在生产中应用的需求,并在Spring MVC中进行了开发,并且开发新功能的速度很慢。我们必须探索诸如Grails和Roo之类的替代框架。我个人花了将近一个月的时间来探索哪个更好。
如果您想查看分析的详细信息,请访问@ http://krishnasblog.com/2012/05/08/roo-vs-grails/
我们探索了以下这些功能,下面是我们的发现。我们不确定我们是否会使用其中任何一项的最终裁决,我们仍在探索中