Matt Raible的新web開發架構的比較
下載ppt地址:http://raibledesigns.com/page/rd?entry=comparing_web_frameworks_presentation1
ppt中,一開始Matt先用一組照片展示了他的房子,車子以及他的幸福的一家和他出的書,來顯示他做為獨立諮詢顧問的成功一面。
接下來,展示了他的開發曆程
Struts: used since June 2001 - same time 1.0 was released.
Spring MVC: used since January 2004 - before 1.0 was released.
WebWork: used since July 2004.
Tapestry: used since July 2004.
JSF: used since July 2004 - both Sun’s RI and MyFaces.
下面開始比較各個架構,僅摘要如下,請恕本人只看缺點,不看優點。因為優點是說不完的
Struts缺點:
ActionForms - they’re a pain
Can’t unit test - StrutsTestCase only does integration
Project has been rumored as “dead”
Display Tag:
Spring MVC缺點:
Configuration intensive - lots of XML
Requires writing lots of code in JSPs
Almost too flexible - no common parent Controller
WebWork缺點:
Small Community
Documentation is poorly organized
Tapestry缺點:
Documentation very conceptual, rather than
pragmatic
Steep learning curve - very few examples
Long release cycles - major upgrades every year
JSF缺點:
Tag soup for JSPs
Doesn't play well with REST or Security
No single source for implementation
SiteMesh:
IDE支援
Struts has a lot of IDE support and even has frameworks built on top of it (i.e. Beehive’s PageFlow)
Spring has Spring IDE - only does XML validation, not a UI/web tool
WebWork has EclipseWork
Tapestry has Spindle - great for coders
JSF has many, and they're getting better and better
資源:
Download sample apps from this presentation
http://equinox.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
WebWork - http://opensymphony.org/webwork
Eclipse Plugin: http://sf.net/projects/eclipsework
IDEA Plugin: http://wiki.opensymphony.com/display/WW/IDEA+Plugin
Tapestry - http://jakarta.apache.org/tapestry
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
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
XDoclet - http://xdoclet.sourceforge.net
AppFuse - http://appfuse.dev.java.net
其它選擇
- Ruby on Rails
- OpenLaszlo
- AJAX
- Wicket
- Seam
- Clarity Trails