简体   繁体   English

appfuse vs roo - 你会用什么?

[英]appfuse vs roo - what would you use

Appfuse vs. Roo, what would you use and why? Appfuse vs. Roo,你会用什么?为什么?

What are the sweet spots of each. 每个人的甜点是什么?

As per the answer I gave to TheServerSide thread on this issue...: 根据我在这个问题上给TheServerSide线程的答案...:

AppFuse aims to provide a single initial scaffold of your new project. AppFuse旨在为您的新项目提供单一的初始支架。 This is similar to Maven archetypes or Eclipse's "new project" features in that you run them once at the start of a new project and then you maintain the scaffolded code going forward. 这类似于Maven原型或Eclipse的“新项目”功能,因为您在新项目开始时运行它们,然后继续维护脚手架代码。 The scaffold system has no further involvement in your project once you've run it once. 一旦您运行一次,脚手架系统就不再参与您的项目。

Roo, on the other hand, provides a round-trip aware active code generator for your long-term usage on a given project. 另一方面,Roo为您在给定项目中的长期使用提供了往返感知的活动代码生成器。 As such Roo offers value both at initial creation time as well as whenever you are modifying the project going forward. 因此,Roo在初始创建时以及随后修改项目时都会提供价值。

In practical terms this means as you evolve your project, Roo will automatically maintain certain files. 实际上,这意味着随着您的项目的发展,Roo将自动维护某些文件。 To take a simple example, when you add (or remove) a field, Roo will update the toString, getters/setters, JSP pages etc for you automatically. 举一个简单的例子,当你添加(或删除)一个字段时,Roo会自动为你更新toString,getters / setters,JSP页面等。 It also offers commands so you can add new capabilities later. 它还提供命令,以便您以后添加新功能。 So if you need to add security six months after you created the project, you just " security setup ". 因此,如果您需要在创建项目六个月后添加安全性,则只需“ 安全设置 ”。 Or if you need to send emails, you just " http://static.springsource.org/spring-roo/reference/html/command-index.html#command-index-email-sender-setup ". 或者,如果您需要发送电子邮件,则只需“ http://static.springsource.org/spring-roo/reference/html/command-index.html#command-index-email-sender-setup ”。 There are similar commands for many other capability areas well, such as Spring Web Flow, JUnit, Selenium, common JPA providers etc. You just defer the decision as long as you like, and Roo will only add those capabilities at the time you ask for them (and it will also automatically use those new capabilities in your project). 许多其他功能领域也有类似的命令,例如Spring Web Flow,JUnit,Selenium,常见的JPA提供程序等。只要您愿意,您只需推迟决定,Roo只会在您要求时添加这些功能。它们(它还将自动使用项目中的这些新功能)。

There are many other differences as well. 还有许多其他差异。 Roo allows extension via user-developed add-ons , it offers a highly usable shell , it allows you to incrementally build a new project and add features only when required, it extensively supports the latest versions of the major Spring technologies, it comes with a SpringSource-developed (and therefore endorsed) application architecture and so on. Roo允许通过用户开发的附加组件进行扩展 ,它提供了一个高度可用的shell ,它允许您逐步构建新项目并仅在需要时添加功能,它广泛支持最新版本的主要Spring技术,它附带一个SpringSource开发的(因此认可的) 应用程序架构等。

A read of the Roo Reference Guide's Introduction Chapter or simply completing the ten minute test project will illustrate they are very different in approach. 阅读Roo参考指南的介绍章节或简单地完成十分钟测试项目将说明它们在方法上有很大不同。

My notes on AppFuse and Roo: 关于AppFuse和Roo的笔记:

AppFuse AppFuse的

Is a fully working template application/project. 是一个完全工作的模板应用程序/项目。

  • Traditional DAO <-> Service <-> Controller architecture 传统的DAO < - >服务< - >控制器架构

  • Easy to get started with maven archetypes 轻松开始使用maven原型

  • Great documentation and tutorials 精彩的文档和教程

  • Not really up to date. 不是最新的。 Spring 3 final is soon to be released and AppFuse is based on 2.5 (?) Spring 3 final即将发布,AppFuse基于2.5(?)

Spring Roo 春天的路

Spring Roo on the other hand is a tool that speeds up development by using code generation. 另一方面,Spring Roo是一种通过使用代码生成来加速开发的工具

  • Getting started with a new, fully configured project takes 1 minute 开始使用新的完全配置的项目需要1分钟

  • Creates rich domain objects where CRUD are weaved into the domain objects using AOP instead of traditional DAOs/services 创建富域域对象,其中使用AOP而不是传统的DAO /服务将CRUD编织到域对象中

  • Hard to grasp if you are new to Spring 如果你是Spring的新手,很难掌握

  • Documentation is not that good yet 文档是不是不错

  • Really cool! 真的很酷! Ie add Spring Security to your project with just one line of code! 即只需一行代码就可以将Spring Security添加到您的项目中!

Telosys (a lightweight code generator) is also a good alternative. Telosys (轻量级代码生成器)也是一个不错的选择。 See http://www.telosys.org/ http://www.telosys.org/

It produces very clean code (without adherence like ApectJ) and the templates are customizable 它产生非常干净的代码(不像ApectJ那样遵守),模板可以自定义

There's a stack of templates designed to generate Spring MVC web apps (and many others to generate code for other kinds of frameworks). 有一堆模板用于生成Spring MVC Web应用程序(以及许多其他用于为其他类型的框架生成代码的模板)。

Spring Roo 春天的路

Pros. 优点。 1. 1。

  1. Customizable : You add and remove diffrent framework and addon as per your requirement. 可自定义 :根据您的要求添加和删除不同的框架和插件。

  2. Database Reverse Enginnering : Create CRUD applications if you have database schema ready. Database Reverse Enginnering:如果已准备好数据库模式,则创建CRUD应用程序。

  3. Strong Spring community support. 强大的春天社区支持。

  4. NOSQL MongoDB support NOSQL MongoDB支持

  5. Can create required add-ons. 可以创建所需的附加组件。

    Cons : 缺点:

  6. Require in depth knowledge of Aspect oriented and Spring stack. 需要深入了解Aspect面向和Spring堆栈。

  7. Require little more time to learn spring roo as compared appfuse. 与appfuse相比,需要更多的时间来学习spring roo。

Appfuse: AppFuse的:

Pros: 优点:

  1. Good one to start small and mid-size enterprise application with 很好的启动中小型企业应用程序
    struts, JSF and Spring struts,JSF和Spring
  2. Complete open source code. 完整的开源代码。
  3. Enough documentation. 足够的文档。
  4. Twitter-bootstrap ready. Twitter-bootstrap准备好了。

Cons: Customize application but not like Spring roo. 缺点:自定义应用程序但不像Spring roo。

对我来说Appfuse但它不是最新的,但春天的roo使用aspectj并且有一部分你不应该触摸的代码,我不喜欢它。

AppFuse - >更改为SpringFuse我更喜欢使用SpringFuse

对于初学者来说,roo看起来更加精心设计,代码生成,面向方面编程的使用等等。

Appfuse doesn't seem to be maintained anymore seeming that the last version was released on May, 2008. 似乎不再维护Appfuse似乎最后一个版本于2008年5月发布。

Roo it's right now a little bleeding edge, because of the use of the still-unreleased version 3 of Spring Framework, but that will change, and that version brings a lot of interesting changes to the table. Roo它现在有点前沿,因为使用了尚未发布的Spring Framework版本3,但这将改变,并且该版本为表格带来了许多有趣的变化。

It also upsells you on more of the Spring technologies portfolio, such as STS and tcServer, and makes it dead easy to use Spring Security and Spring WebFlow. 它还为更多的Spring技术产品组合(例如STS和tcServer)增加了销售额,并且使得使用Spring Security和Spring WebFlow变得容易。

I am going with ROO. 我要去ROO。

I am already using 我已经在使用了

  • Spring 弹簧
  • Spring ORM/JDBC Spring ORM / JDBC
  • Spring MVC Spring MVC
  • Spring Remoting Spring Remoting
  • STS (Tool-suite) STS(工具套件)

So my preference is SpringSource products, AS I am already familiar with API style, documentation, conventions of SpringSource and even their coding practices once I extended/implemented security-framework's code.. ;-) 所以我的偏好是SpringSource产品,因为我已经熟悉了API样式,文档,SpringSource的约定,甚至在我扩展/实现安全框架的代码后他们的编码实践... ;-)

so, my advice is go with the tool/framework which is more natural to you.. 所以,我的建议是使用更自然的工具/框架。

Cheers, 干杯,

The question is some years old and in the meanwhile there are new productivity tools I want to point out: 这个问题已有几年历史了,同时我想指出一些新的生产力工具:

Generjee . Generjee Generjee is a full-online tool. Generjee是一个完整的在线工具。 You define online your requirements and the (optional) data model. 您可以在线定义您的需求和(可选)数据模型。 Then you get the generated code as a download. 然后,您将生成的代码作为下载。

The generated code is independent from generjee. 生成的代码独立于generjee。 The tool is useful for starting development projects from an integrated full-stack code base. 该工具对于从集成的完整堆栈代码库启动开发项目非常有用。

generjee will generate for you: generjee将为您生成:

  • JPA code according to your data model JPA代码根据您的数据模型
  • JSF code to create, read, edit, filter, sort and export data 用于创建,读取,编辑,过滤,排序和导出数据的JSF代码
  • user management, registration and login 用户管理,注册和登录
  • your defined user roles and specific access permissions for this roles 您定义的用户角色和此角色的特定访问权限
  • I18N support I18N支持
  • file upload support 文件上传支持

Forge . 锻造 To describe it in some words, it is "like Roo". 用某些词来形容它,它就像“Roo”。 But Forge is not as strong based on Spring and AspectJ as Roo. 但Forge并不像Spring和AspectJ那样强大。

AppFuse与Tapestry,Wicket和其他Web框架集成,但Roo还没有

AppFuse项目于2016年4月关闭。其创始人Matt Raible建议使用JHipster作为替代方案。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM