开发者

appfuse vs roo - what would you use

Appfuse开发者_Python百科 vs. Roo, what would you use and why?

What are the sweet spots of each.


As per the answer I gave to TheServerSide thread on this issue...:

AppFuse aims to provide a single initial scaffold of your new project. 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. 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. As such Roo offers value both at initial creation time as well as whenever you are modifying the project going forward.

In practical terms this means as you evolve your project, Roo will automatically maintain certain files. 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. 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". 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).

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.

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.


My notes on AppFuse and Roo:

AppFuse

Is a fully working template application/project.

  • Traditional DAO <-> Service <-> Controller architecture

  • Easy to get started with maven archetypes

  • 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 Roo

Spring Roo on the other hand is a tool that speeds up development by using code generation.

  • Getting started with a new, fully configured project takes 1 minute

  • Creates rich domain objects where CRUD are weaved into the domain objects using AOP instead of traditional DAOs/services

  • Hard to grasp if you are new to Spring

  • Documentation is not that good yet

  • Really cool! I.e. add Spring Security to your project with just one line of code!


Telosys (a lightweight code generator) is also a good alternative. See http://www.telosys.org/

It produces very clean code (without adherence like ApectJ) and the templates are customizable

There's a stack of templates designed to generate Spring MVC web apps (and many others to generate code for other kinds of frameworks).


for me Appfuse but it is not up to date, but the spring roo using aspectj and there are parts of code you should not touch and I do not like that.


Spring Roo

Pros. 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.

  3. Strong Spring community support.

  4. NOSQL MongoDB support

  5. Can create required add-ons.

    Cons :

  6. Require in depth knowledge of Aspect oriented and Spring stack.

  7. Require little more time to learn spring roo as compared appfuse.

Appfuse:

Pros:

  1. Good one to start small and mid-size enterprise application with
    struts, JSF and Spring
  2. Complete open source code.
  3. Enough documentation.
  4. Twitter-bootstrap ready.

Cons: Customize application but not like Spring roo.


For starters, roo looks more over engineered, with code generation, use of aspect oriented programming and more.


Appfuse doesn't seem to be maintained anymore seeming that the last version was released on May, 2008.

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.

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.


I am going with ROO.

I am already using

  • Spring
  • Spring ORM/JDBC
  • Spring MVC
  • Spring Remoting
  • STS (Tool-suite)

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.. ;-)

so, my advice is go with the tool/framework which is more natural to you..

Cheers,


AppFuse -> change to SpringFuse I more prefer use SpringFuse


The question is some years old and in the meanwhile there are new productivity tools I want to point out:

Generjee. Generjee is a full-online tool. 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. The tool is useful for starting development projects from an integrated full-stack code base.

generjee will generate for you:

  • JPA code according to your data model
  • JSF code to create, read, edit, filter, sort and export data
  • user management, registration and login
  • your defined user roles and specific access permissions for this roles
  • I18N support
  • file upload support

Forge. To describe it in some words, it is "like Roo". But Forge is not as strong based on Spring and AspectJ as Roo.


AppFuse has integration with Tapestry, Wicket and other Web frameworks which Roo does not - yet


The AppFuse project was shut down in April 2016. Its founder, Matt Raible, recommends using JHipster as an alternative.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜