| Dmitriy Tsimbal |
| AppFuse - Developing web application from scratch |
| 2009.02.06 | |
AppFuse. Developing web application from scratch.Almost everyone, who starts development of a project for 100-th time from scratch, has a thought: « Shouldn’t I reuse an already written code? ». In that case you’re able to consider about application templates, which are being distributed with various web frameworks. They do fit well. For example, in a package with Struts and Shale you get struts-blank and shale-blank application templates. For example, you’re able to create your own template and use it for project building. So you get an additional functional needed. There is also another way out — to use a template which was created by other developers. One of such templates is AppFuse. According to the description on the project page, AppFuse is an open source project and application that uses open source tools which are built on the Java platform to help you to develop web-oriented applications quickly and efficiently. Originally it was developed to reduce time to work on product when building new web applications for customers. So basically, AppFuse is a kind of basis of a product, similar to basis which would be developed by master of technology you’ve chosen to apply for new project. Let’s describe why AppFuse is a good choice to develop new web application. These are at least four things: 1. Integration of Java frameworks is implemented very well.AppFuse application is based on multilayered architecture with the implementation of DAO layers, subject logic layer and representation layer. It should be mentioned that AppFuse proposals the choice of your favorite framework for implementation of any layer. For example, for DAO layer implementation it proposals to use Hibernate, iBATIS or JPA. Representation layer might be implemented by using of Struts 2, Spring MVC, JSF, Tapestry. For the subject logic layer there is nothing else left as to use POJO, since Spring is a connection of the whole application. 2. Automatic testing.Following the TDD logic, we would like to put this point before the point which is about application logic development. Automatic testing in AppFuse is being processed with the usage of DBUnit, JUnit, jMock and Canoo's WebTest. This allows you to cover all application layers by automated tests. For automation of using test frameworks, AppFuse project file includes plug-ins to use DBUnit, JUnit and Cargo maven plug-in – for the container starting/shut-off and application deployment. 3. Code generation, DB Schemes generation, and integration with popular IDE.It’s really helpful that there’s an AppFuse’s plug-in for Maven. One of its advantages is the ability to generate DAO layer and subject logic layer, if you need only CRUD (create, read, update, delete/destroy) functionality. This allows you to concentrate on subject layer development and worry not about creating of trivial (for CRUD functionality) logic DAO layer and subject logic. Actually, its functionality in this direction is even wider, for example you may look at the task appfuse:gen (http://static.appfuse.org/plugins/appfuse-maven-plugin/gen-mojo.html). Specifying the task and the name of the essence for Maven, you get a finished page with list these essences for reviewing and a page with the form of essence’s edit. 4. A set of implemented functions which are typical for any web application. In AppFuse are implemented:
In conclusion, I would recommend to get familiarized with AppFuse, try to develop on its base several test projects. That’s for sure this application is worth to your attention, and maybe you will like it. Useful resources to familiarize with AppFuse In Russian: 1.IBM developer Works "Seven simple reasons to use AppFuse" In English: 2.Project page on java.net 3.Official documentation to AppFuse 4.Raible's Wiki
|



AppFuse - Developing web application from scratch









