comparing w eb framew orks - raible designsstatic.raibledesigns.com/repository/presentations/... ·...
TRANSCRIPT
![Page 1: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/1.jpg)
© 2007 Raible Designs, Inc.
Comparing Web FrameworksJSF, Spring MVC, Stripes, Struts 2, Tapestry and Wicket
Matt [email protected]
1
![Page 2: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/2.jpg)
© 2007 Raible Designs, Inc.
Today's Agenda
Introductions
Pros and Cons
Sweetspots
Web Framework Comparison: What each does well
Conclusion
Q and A
2
![Page 3: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/3.jpg)
© 2007 Raible Designs, Inc.
IntroductionsYour experience with webapps?
Your experience with Java EE?
What do you want to get from this session?
Experience with Maven, Tomcat, Hibernate, Spring?
Web Framework Experience:
Spring MVC, Struts 2, Stripes, JSF, Tapestry, Wicket
3
![Page 4: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/4.jpg)
© 2007 Raible Designs, Inc.
4
![Page 5: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/5.jpg)
© 2007 Raible Designs, Inc.
My ExperienceStruts 1: used since June 2001 - same time 1.0 was released.
Spring MVC: used since January 2004 - before 1.0 was released.
Struts 2: used since July 2004.
Tapestry: used since July 2004.
JSF: used since July 2004 - both Sun’s RI and MyFaces.
Stripes and Wicket: learned them last week ;-)
5
![Page 6: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/6.jpg)
© 2007 Raible Designs, Inc.
Pros and Cons
6
![Page 7: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/7.jpg)
© 2007 Raible Designs, Inc.
JSFPros:
Java EE Standard - lots of demand and jobs
Fast and easy to develop with initially
Lots of component libraries
Cons:
Tag soup for JSPs
Doesn't play well with REST or Security
No single source for implementation
7
![Page 8: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/8.jpg)
© 2007 Raible Designs, Inc.
Spring MVC
Pros:
Lifecyle for overriding binding, validation, etc.
Integrates with many view options seamlessly: JSP/JSTL, Tiles, Velocity, FreeMarker, Excel, XSL, PDF
Inversion of Control makes it easy to test
Cons:
Configuration intensive - lots of XML
Almost too flexible - no common parent Controller
No built-in Ajax support
8
![Page 9: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/9.jpg)
© 2007 Raible Designs, Inc.
StripesPros:
No XML - Convention over Configuration
Good documentation (easy to learn)
Enthusiastic community
Cons:
Small Community
Not as actively developed as other projects
Hard-coded URLs in ActionBeans
9
![Page 10: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/10.jpg)
© 2007 Raible Designs, Inc.
Struts 2Pros:
Simple architecture - easy to extend
Tag Library is easy to customize with FreeMarker or Velocity
Controller-based or page-based navigation
Cons:
Documentation is poorly organized
Too much concentration on new features
Googling results in Struts 1.x documentation
10
![Page 11: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/11.jpg)
© 2007 Raible Designs, Inc.
TapestryPros:
Very productive once you learn it
Templates are HTML - great for designers
Lots of innovation between releases
Cons:
Documentation very conceptual, rather than pragmatic
Steep learning curve
Long release cycles - major upgrades every year
11
![Page 12: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/12.jpg)
© 2007 Raible Designs, Inc.
WicketPros:
Great for Java developers, not web developers
Tight binding between pages and views
Active community - support from the creators
Cons:
HTML templates live next to Java code
Need to have a good grasp of OO
The Wicket Way - everything done in Java
12
![Page 13: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/13.jpg)
© 2007 Raible Designs, Inc.
Sweetspots
13
![Page 14: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/14.jpg)
© 2007 Raible Designs, Inc.
Purpose of Experiment
Discuss various open source Java web frameworks
Highlight what each does well
Debunk some myths
Find out framework author's opinions of other frameworks
Learn about the future direction of the framework
Find out what the author's think of Ruby on Rails
14
![Page 15: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/15.jpg)
© 2007 Raible Designs, Inc.
Who Represented?JSF, Jacob Hookom
RIFE, Geert Bevin
Seam, Gavin King
Spring MVC, Rob Harrop
Spring Web Flow, Rob Harrop and Keith Donald
Stripes, Tim Fennell
Struts 1, Don Brown
Tapestry, Howard Lewis Ship
Trails, Chris Nelson
Struts 2, Patrick Lightbody
Wicket, Eelco Hillenius
15
![Page 16: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/16.jpg)
© 2007 Raible Designs, Inc.
What's your "sweet spot"?JSF: For when you want to bring desktop-like functionality to the browser with the reliance of a standard specification and large amounts of third-party features.
Spring MVC: Integrates a number of different technologies and as a result is applicable to a wide range of project types. It should be considered a strategic base platform for web application development.
16
![Page 17: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/17.jpg)
© 2007 Raible Designs, Inc.
What's your "sweet spot"?Stripes: Applications with lots of complex data interactions. Its type conversion, binding, and validation are very powerful and make it easy to manage large, complex forms and map them directly to domain objects, etc.
Tapestry: Real strengths come through on medium- to large-sized projects (although you can have fun even on a single-page application). Those are the projects where you’ll get leverage by being able to easily create new components.
17
![Page 18: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/18.jpg)
© 2007 Raible Designs, Inc.
What's your "sweet spot"?Struts 2: Usually fits in best with small teams that are willing to get their hands dirty and learn a lot about the open source tools they use. Struts 2 is not meant for the “armchair programmers” who prefer drag-and-drop development.
Wicket: Well suited for intranet/extranet applications, where the UI is relatively complex and where you want to make the best use of your developer resources.
18
![Page 19: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/19.jpg)
© 2007 Raible Designs, Inc.
What's your opinion?
19
![Page 20: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/20.jpg)
© 2007 Raible Designs, Inc.
The Smackdown
20
![Page 21: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/21.jpg)
© 2007 Raible Designs, Inc.
Evaluation Criteria
Ajax Support: Is it built-in and easy to use?
Bookmark-ability: Can users bookmark pages and return to them easily?
Validation: How easy is it to use and does it support client-side (JavaScript) validation?
Testability: How easy is it to test Controllers out of container?
21
![Page 22: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/22.jpg)
© 2007 Raible Designs, Inc.
Evaluation Criteria, cont.Post and Redirect: How does the framework handle the duplicate post problem?
Internationalization: How is i18n supported and how easy is it to get messages in Controllers?
Page Decoration: What sort of page decoration/composition mechanisms does the framework support?
Community and Support: Can you get questions answered quickly (and respectfully)?
22
![Page 23: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/23.jpg)
© 2007 Raible Designs, Inc.
Evaluation Criteria, cont.
Tools: Is there good tool (particularly IDE) support for the framework?
Marketability of Skills: If you learn the framework, will it help you get a job?
Job Count: What is the demand for framework skills on dice.com and indeed.com?
23
![Page 24: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/24.jpg)
© 2007 Raible Designs, Inc.
Ajax Support
Is Ajax support built-in and easy to use?
JSF: No Ajax support, use ICEfaces and Ajax4JSF
Stripes: No libraries, supports streaming results
Struts 2: Dojo built-in, plugins for GWT, JSON
Spring MVC: No libraries, use DWR & Spring MVC Extras
Tapestry: Dojo built-in in 4.1
Wicket: Dojo and Script.aculo.us (Wicket Stuff)
24
![Page 25: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/25.jpg)
© 2007 Raible Designs, Inc.
Bookmarking and URLsUsing CMA allows users to bookmark pages. They can click the bookmark, login and go directly to the page.
JSF does a POST for everything - URLs not even considered
Stripes uses conventions, but you can override
Struts 2 has namespaces - makes it easy
Spring MVC allows full URL control
Tapestry still has somewhat ugly URLs
Wicket allows pages/URLs to be mounted
25
![Page 26: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/26.jpg)
© 2007 Raible Designs, Inc.
ValidationValidation should be easy to configure, be robust on the client side and either provide good out of the box messages or allow you to easily customize them.
JSF has ugly default messages, but easiest to configure
Spring MVC allows you to use Commons Validator - a mature solution
Struts 2 uses OGNL for powerful expressions - client-side only works when specifying rules on Actions
Tapestry has very robust validation - good messages without need to customize
Stripes and Wicket do validation in Java - no client-side
26
![Page 27: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/27.jpg)
© 2007 Raible Designs, Inc.
Testability
Spring and Struts 2 allow easy testing with mocks (e.g. EasyMock, jMock, Spring Mocks)
Tapestry appears difficult to test because page classes are abstract, Creator class simplifies
JSF page classes can be easily tested and actually look a lot like Struts 2 actions
Wicket has WicketTester, a powerful solution
Stripes has Servlet API Mocks and MockRoundtrip
27
![Page 28: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/28.jpg)
© 2007 Raible Designs, Inc.
Post and RedirectThe duplicate-post problem, what is it?
Easiest way to solve: redirect after POST
Is there support for allowing success messages to live through a redirect?
Spring MVC allows you to add parameters to a redirect
Stripes, Tapestry and Wicket all have "flash" support
Struts 2 requires a custom solution
JSF requires a custom solution, i18n messages difficult to get in page beans
28
![Page 29: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/29.jpg)
© 2007 Raible Designs, Inc.
InternationalizationJSTL’s <fmt:message> tag makes it easy
No standard for getting i18n messages in controller classes
Stripes, Spring MVC and JSF use a single ResourceBundle per locale
Struts 2, Tapestry and Wicket advocate separate files for each page/action
JSF requires resource bundle to be declared on each page
Tapestry's <span key="key.name"> is awesome
29
![Page 30: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/30.jpg)
© 2007 Raible Designs, Inc.
Page Decoration
Tiles Experience: used since it first came out
SiteMesh is much easier to setup and use
Tiles can be used in Struts 2, Spring and JSF
Requires configuration for each page
SiteMesh can be used with all frameworks
Requires very little maintenance after setup
SiteMesh not supported or recommended for use with JSF, Tapestry or Wicket
30
![Page 31: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/31.jpg)
© 2007 Raible Designs, Inc.
ToolsSpring has Spring IDE - only does XML validation, not a UI/web tool
Struts 2 has EclipseWork
Tapestry has Spindle - great for coders
JSF has many, and they're getting better and better
Stripes and Wicket don't have any official tools
NetBeans has support for: Struts *, JSF (+Facelets), Tapestry and Wicket (no Stripes or Spring MVC)
31
![Page 32: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/32.jpg)
© 2007 Raible Designs, Inc.
0
3.75
7.50
11.25
15.00
May 2007
7
12
334
Struts 2Spring MVCStripesWicketJSFTapestry
Tools Available
32
![Page 33: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/33.jpg)
© 2007 Raible Designs, Inc.
Marketability of SkillsStruts 1 is still in high-demand and widely-used
Spring is getting more press, but mostly due to the framework’s other features
JSF is quickly becoming popular
Struts 2 is gaining ground, but very scarce on job boards
Tapestry has increased in popularity in last couple years
Wicket and Stripes are virtually unknown
33
![Page 34: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/34.jpg)
© 2007 Raible Designs, Inc.
0
150
300
450
600
May 3, 2006
190
10
574
6
6852
Struts 2Spring MVCStripesJSFWicketTapestry
Dice Job Count
34
![Page 35: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/35.jpg)
© 2007 Raible Designs, Inc.
0
625
1,250
1,875
2,500
May 3, 2006
2,063
190
10
574
66852
Struts 2Spring MVCStripesJSFWicketTapestryStruts 1
Dice Job Count w/ Struts
35
![Page 36: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/36.jpg)
© 2007 Raible Designs, Inc.
0
150
300
450
600
October 15, 2004 June 9, 2005 February 13, 2006 May 3, 2007
WebWorkSpring MVCTapestryJSF
Job Trend sans Struts
36
![Page 37: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/37.jpg)
© 2007 Raible Designs, Inc.
Job Trends
37
![Page 38: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/38.jpg)
© 2007 Raible Designs, Inc.
0
180
360
540
720
900
108
896
161687
55
Struts 2Spring MVCStripesWicketJSFTapestry
Employer Search on Monster.comResumes posted 4/3 - 5/3/2007
38
![Page 39: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/39.jpg)
© 2007 Raible Designs, Inc.
Wicket
Tapestry
MyFaces
Stripes
Struts
0 375 750 1,125 1,500
* Spring MVC is not listed here because they have a forum instead of a mailing list and I couldn’t figure out a way to count the number of messages for each month.
Mailing List Traffic
39
![Page 40: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/40.jpg)
© 2007 Raible Designs, Inc.
0
3.75
7.50
11.25
15.00
May 2007
3
1
11
7
3
Struts 2Spring MVCStripesJSFWicketTapestry
Books on Amazon
40
![Page 41: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/41.jpg)
© 2007 Raible Designs, Inc.
Which would I choose?
41
![Page 42: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/42.jpg)
© 2007 Raible Designs, Inc.
What do others think?
0
6.25
12.50
18.75
25.00
AppFuse Usage - March 2007
Struts 2Struts 1Spring MVCJSFTapestry
42
![Page 43: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/43.jpg)
© 2007 Raible Designs, Inc.
ResourcesDownload this presentation
http://appfuse-light.dev.java.net/framework-comparison
Struts - http://struts.apache.org
StrutsTestCase: http://strutstestcase.sf.net
Spring MVC - http://www.springframework.org
Spring IDE: http://www.springide.org
Gaijin Studio: http://gaijin-studio.sf.net
Struts 2 - http://opensymphony.org/webwork
Eclipse Plugin: http://sf.net/projects/eclipsework
IDEA Plugin: http://wiki.opensymphony.com/display/WW/IDEA+Plugin
43
![Page 44: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/44.jpg)
© 2007 Raible Designs, Inc.
Resources, cont.Tapestry - http://tapestry.apache.org
Spindle: http://spindle.sourceforge.net
JSF - http://java.sun.com/j2ee/javaserverfaces and http://myfaces.apache.org
Java Studio Creator: http://sun.com/software/products/jscreator
MyEclipse: http://myeclipseide.com
IDEA: http://www.jetbrains.com/idea
SiteMesh: http://opensymphony.com/sitemesh
44
![Page 45: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/45.jpg)
© 2007 Raible Designs, Inc.
Resources, cont.Testing Frameworks
JUnit: http://junit.org
EasyMock: http://easymock.org
jMock: http://jmock.org
jWebUnit: http://jwebunit.sourceforge.net
Canoo WebTest: http://webtest.canoo.com
Tapestry Test Assist: http://howardlewisship.com/blog/2004/05/tapestry-test-assist.html
AppFuse - http://appfuse.org
45
![Page 46: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/46.jpg)
© 2007 Raible Designs, Inc.
Books
Struts in Action, Ted Husted and Team
Struts Live, Rick Hightower and Jonathan Lehr
Spring Live, Matt Raible
Pro Spring, Rob Harrop and Jan Machacek
Spring in Action, Craig Walls and Ryan Breidenbach
Professional Java Development with Spring, Rod Johnson, Juergen Hoeller and Team
46
![Page 47: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/47.jpg)
© 2007 Raible Designs, Inc.
Books, cont.WebWork in Action, Patrick Lightbody and Team
Tapestry 101, Warner Onstine
Tapestry in Action, Howard Lewis Ship
Core JSF, David Geary and Cay Horstmann
JSF in Action, Kito Mann
Pro Wicket, Karthik Gurumurthy
47
![Page 48: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/48.jpg)
© 2007 Raible Designs, Inc.
What’s Next?
Grails GWT
Seam
TrailsDjango
OpenLaszloRuby on Rails
Flex
48
![Page 49: Comparing W eb Framew orks - Raible Designsstatic.raibledesigns.com/repository/presentations/... · Spring MVC, Rob Harrop Spring Web Flow, Rob Harrop and Keith Donald Stripes, Tim](https://reader033.vdocument.in/reader033/viewer/2022042709/5f41828dc72401431e2f8581/html5/thumbnails/49.jpg)
© 2007 Raible Designs, Inc.
Who cares?
"If it works, use it!"
49