7 simple reasons to use appfuse
TRANSCRIPT
![Page 1: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/1.jpg)
© 2005-2006, Virtuas Open Source Solutions
7 Simple Reasons to use AppFuse
Matt Raible, Virtuas Open Source [email protected]
![Page 2: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/2.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/3.jpg)
Matt
![Page 4: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/4.jpg)
Raible
![Page 5: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/5.jpg)
![Page 6: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/6.jpg)
![Page 7: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/7.jpg)
![Page 8: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/8.jpg)
![Page 9: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/9.jpg)
![Page 10: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/10.jpg)
![Page 11: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/11.jpg)
![Page 12: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/12.jpg)
![Page 13: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/13.jpg)
![Page 14: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/14.jpg)
![Page 15: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/15.jpg)
![Page 16: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/16.jpg)
![Page 17: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/17.jpg)
![Page 18: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/18.jpg)
![Page 19: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/19.jpg)
Agenda
1. AppFuse Overview
2. 7 Simple Reasons
3. Competitors
4. Roadmap
5. Pitfalls
6. Q and A
![Page 20: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/20.jpg)
AppFuse Overview
![Page 21: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/21.jpg)
- 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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/22.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/23.jpg)
Optional Installs
Dependencies
![Page 24: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/24.jpg)
Directory Structure
![Page 25: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/25.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/26.jpg)
Powered by AppFuse
![Page 27: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/27.jpg)
Setup Demohttp://demo.appfuse.org/setup.html
![Page 28: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/28.jpg)
7 Simple Reasons to use AppFuse
![Page 29: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/29.jpg)
7 Reasons to use AppFuse
1. Testing
2. Integration
3. Automation
4. Security
5. Code Generation
6. Documentation
7. Community
![Page 30: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/30.jpg)
1. Testing
![Page 31: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/31.jpg)
1. Testing
JUnit
![Page 32: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/32.jpg)
1. Testing
DbUnit
JUnit
![Page 33: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/33.jpg)
1. Testing
DbUnitSpring Mocks
JUnit
![Page 34: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/34.jpg)
1. Testing
DbUnitSpring Mocks
JUnit
![Page 35: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/35.jpg)
1. Testing
DbUnitSpring Mocks
JUnit
![Page 36: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/36.jpg)
1. Testing
DbUnitSpring Mocks
JUnit
![Page 37: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/37.jpg)
1. Testing
DbUnitSpring Mocks
JUnit
![Page 38: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/38.jpg)
2. Integration
![Page 39: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/39.jpg)
3. Automation
![Page 40: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/40.jpg)
4. Security features and extensibility
![Page 41: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/41.jpg)
5. Code generation with AppGen
![Page 42: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/42.jpg)
AppGen Demohttp://demo.appfuse.org/appgen.html
![Page 43: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/43.jpg)
6. Documentation
![Page 44: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/44.jpg)
7. Community
![Page 45: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/45.jpg)
Competition
![Page 46: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/46.jpg)
Similar Projects
Trails
Grails
Ruby on Rails
Able
Seam
RIFE
Qwicket
![Page 47: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/47.jpg)
Roadmap
![Page 48: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/48.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/49.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/50.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/51.jpg)
Pitfalls and Issues
![Page 52: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/52.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/53.jpg)
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: 7 Simple Reasons to use AppFuse](https://reader031.vdocuments.net/reader031/viewer/2022021503/5870ae4c1a28abb8548bcbdc/html5/thumbnails/54.jpg)
Questions?
AppFuse Project:
http://appfuse.org
Demos and Videos:
http://demo.appfuse.org/demos.html
Tutorials:
http://appfuse.org/tutorials