54
© 2005-2006, Virtuas Open Source Solutions 7 Simple Reasons to use AppFuse Matt Raible, Virtuas Open Source Solutions [email protected]

Seven Simple Reasons to Use AppFuse

Embed Size (px)

DESCRIPTION

AppFuse is an open source project/application that uses best-of-breed Java open source tools to help you develop web applications quickly and efficiently. Not only does it provide documentation on how to develop light-weight POJO-based applications, it includes features that many applications need out-of-the-box: authentication and authorization, remember me, password hint, skinnability, file upload, Ajax libraries, signup and SSL switching. This is one of the main features in AppFuse that separates it from the other "CRUD Generation" frameworks like Ruby on Rails, Trails and Grails. AppFuse is already an application when you start using it, which means code examples are already in your project. Furthermore, because features already exist, the amount of boiler-plate code that most projects need will be eliminated.In this session, you will learn Seven Simple Reasons to Use AppFuse. If you don't use it to start your own projects, hopefully you will see that it provides much of the boiler-plate code that can be used in Java-based web applications. Since it's Apache Licensed, you're more than welcome to copy/paste any code from it into your own applications.Also see article published at:http://www.ibm.com/developerworks/java/library/j-appfuse/index.html

Citation preview

Page 1: Seven Simple Reasons to Use AppFuse

© 2005-2006, Virtuas Open Source Solutions

7 Simple Reasons to use AppFuse

Matt Raible, Virtuas Open Source [email protected]

Page 2: Seven Simple Reasons to Use AppFuse

Introductions

Your experience with Java?

Your experience with Web Frameworks?

What do you hope to learn today?

Open Source experience: Ant, Struts, WebWork, Spring, Hibernate, Eclipse, Tomcat?

Favorite IDE? Favorite OS? Favorite Server?

Page 3: Seven Simple Reasons to Use AppFuse

Matt

Page 4: Seven Simple Reasons to Use AppFuse

Raible

Page 5: Seven Simple Reasons to Use AppFuse
Page 6: Seven Simple Reasons to Use AppFuse
Page 7: Seven Simple Reasons to Use AppFuse
Page 8: Seven Simple Reasons to Use AppFuse
Page 9: Seven Simple Reasons to Use AppFuse
Page 10: Seven Simple Reasons to Use AppFuse
Page 11: Seven Simple Reasons to Use AppFuse
Page 12: Seven Simple Reasons to Use AppFuse
Page 13: Seven Simple Reasons to Use AppFuse
Page 14: Seven Simple Reasons to Use AppFuse
Page 15: Seven Simple Reasons to Use AppFuse
Page 16: Seven Simple Reasons to Use AppFuse
Page 17: Seven Simple Reasons to Use AppFuse
Page 18: Seven Simple Reasons to Use AppFuse
Page 19: Seven Simple Reasons to Use AppFuse

Agenda

1. AppFuse Overview

2. 7 Simple Reasons

3. Competitors

4. Roadmap

5. Pitfalls

6. Q and A

Page 20: Seven Simple Reasons to Use AppFuse

AppFuse Overview

Page 21: Seven Simple Reasons to Use AppFuse

- what is it?A directory structure, build file and project classes to get your project started quickly

The hard part is getting started and configuring dependencies

Uses popular open-source tools: Ant, XDoclet, Spring, Hibernate, Struts (or JSF, Spring MVC, WebWork or Tapestry)

Top 5 java.net project in hits, accesses and mail traffic

Page 22: Seven Simple Reasons to Use AppFuse

HistoryStarted as a sample app for Pro JSP

Became a toolkit for starting new projects

Lots of community feedback makes it a “best practices” webapp for Agile J2EE

Documentation and Tutorials (November 2003)

AppGen - CRUD made easy (November 2004)

New Committers: Nathan, Ben, David and Sanjiv (2005), Mika and Thomas (2006)

AppFuse 2.0: Java 5, Maven 2, Simplicity (2006-7)

Page 23: Seven Simple Reasons to Use AppFuse

Optional Installs

Dependencies

Page 24: Seven Simple Reasons to Use AppFuse

Directory Structure

Page 25: Seven Simple Reasons to Use AppFuse

Development Environment

Download and install:

Ant 1.6.5+

MySQL 4.1.x+

Tomcat 5.0.28+ or Geronimo 1.1+

Eclipse 3.2 (or IDEA 6)

AppFuse 1.9.4http://raibledesigns.com/wiki/DevelopmentEnvironment.html

Page 26: Seven Simple Reasons to Use AppFuse

Powered by AppFuse

Page 27: Seven Simple Reasons to Use AppFuse

Setup Demohttp://demo.appfuse.org/setup.html

Page 28: Seven Simple Reasons to Use AppFuse

7 Simple Reasons to use AppFuse

Page 29: Seven Simple Reasons to Use AppFuse

7 Reasons to use AppFuse

1. Testing

2. Integration

3. Automation

4. Security

5. Code Generation

6. Documentation

7. Community

Page 30: Seven Simple Reasons to Use AppFuse

1. Testing

Page 31: Seven Simple Reasons to Use AppFuse

1. Testing

JUnit

Page 32: Seven Simple Reasons to Use AppFuse

1. Testing

DbUnit

JUnit

Page 33: Seven Simple Reasons to Use AppFuse

1. Testing

DbUnitSpring Mocks

JUnit

Page 34: Seven Simple Reasons to Use AppFuse

1. Testing

DbUnitSpring Mocks

JUnit

Page 35: Seven Simple Reasons to Use AppFuse

1. Testing

DbUnitSpring Mocks

JUnit

Page 36: Seven Simple Reasons to Use AppFuse

1. Testing

DbUnitSpring Mocks

JUnit

Page 37: Seven Simple Reasons to Use AppFuse

1. Testing

DbUnitSpring Mocks

JUnit

Page 38: Seven Simple Reasons to Use AppFuse

2. Integration

Page 39: Seven Simple Reasons to Use AppFuse

3. Automation

Page 40: Seven Simple Reasons to Use AppFuse

4. Security features and extensibility

Page 41: Seven Simple Reasons to Use AppFuse

5. Code generation with AppGen

Page 42: Seven Simple Reasons to Use AppFuse

AppGen Demohttp://demo.appfuse.org/appgen.html

Page 43: Seven Simple Reasons to Use AppFuse

6. Documentation

Page 44: Seven Simple Reasons to Use AppFuse

7. Community

Page 45: Seven Simple Reasons to Use AppFuse

Competition

Page 46: Seven Simple Reasons to Use AppFuse

Similar Projects

Trails

Grails

Ruby on Rails

Able

Seam

RIFE

Qwicket

Page 47: Seven Simple Reasons to Use AppFuse

Roadmap

Page 48: Seven Simple Reasons to Use AppFuse

2.0 RoadmapMilestone 1

Maven 2 integration

Migrate from CVS to SVN

Get all flavors (WARs) deployed and running on Tomcat and Jetty Maven Plugin

Spring 2.0: Upgrade XML to XSDs, annotations where appropriate

Upgrade WebWork to Struts 2

Documentation - move to new Confluence or DocBook-based system for 2.0 documentation

Page 49: Seven Simple Reasons to Use AppFuse

2.0 Roadmap, cont.

Milestone 2

JDK 5, Annotations and JSP 2.0

Archetypes for creating new AppFuse projects

Documentation, including screencasts for tutorials

Milestone 3

Integrate CeltiXFire by default

Code Generation - replacing AppGen

Page 50: Seven Simple Reasons to Use AppFuse

2.0 Nice to haves

TestNG replacing JUnit

Hibernate Validation Annotations (hard part is hooking it into the web frameworks)

Tomcat Plugin for Maven (like Jetty's plugin)

JPA Support

Support for JDK 1.4 using something like Retroweaver

Support for using Ant to build/test/deploy

Page 51: Seven Simple Reasons to Use AppFuse

Pitfalls and Issues

Page 52: Seven Simple Reasons to Use AppFuse

Learn more from...

Comparing Web Frameworks:https://equinox.dev.java.net/framework-comparison

What's new in Spring 2.0:http://www.springframework.org/docs/reference/new-in-2.html

Spring 2.0 Kickstart:http://springdeveloper.com/presentations/spring-kickstart.html

Page 53: Seven Simple Reasons to Use AppFuse

Equinox

AppFuse Light - designed for quick apps with few requirements (i.e. prototypes)

Includes 6 MVC implementations: JSF, Spring MVC, Struts, Struts 2, Tapestry and WebWork

Includes 5 Persistence frameworks: Hibernate, iBATIS, JDO, OJB, Spring JDBC

50 combinations available!

Located at http://equinox.dev.java.net

Page 54: Seven Simple Reasons to Use AppFuse

Questions?

AppFuse Project:

http://appfuse.org

Demos and Videos:

http://demo.appfuse.org/demos.html

Tutorials:

http://appfuse.org/tutorials