Wednesday, September 26, 2007

Blogging from JAOO

Sitting in on Alef's admittedly biased review of web frameworks
No silver bullets here (surprise), the answer is, "It depends" on:
  • Size of Community / Support
  • Migration Paths / Backward Compatibility record
  • Documentation quality
After applying these filters we end up with Spring MVC, Spring WebFlow, GWT, JSF & ...yes Struts
and the way they handle:
  • State Management - is HTTP Session an oxymoron?
  • Navigation Handling
  • Event Handling
  • Templates and UI building
Results are summarized here:

Biased Opinions Here!!Spring MVC, StrutsSpring WebFlowGWTJSF
State ManagementNone beside HTTP Session, best for almost stateless app.Server based, can be in dbState is ALL client-side, RPC-style async service calls. State dependency mgmt. is hardHTTP Session-based
Navigation Handlinglimited, low-level req-respExcellent?Integrates well with Spring WebFlow
Event HandlingReq.-Resp. oriented, low-levelExcellent, requires session stateElegant, all in JavaVery Good

UI Comments

  • GWT: Little HTML left, not Dreamweavable. 100% AJAX-based
  • JSP: HTML based, may be ugly. Good taglibs,
  • Freemarker/Velocity: Good to build on Struts/JSP apps
  • JSF: Higher-level than JSP. Good components available. AJAX with extension (Spring Faces, ICEFaces, MyFaces, Seam). Should use w/Facelets.
  • Flex/OpenLaszlo/JavaFX: Interesting but very diffferent techniques

Recommendations

Stateless: Struts/SpringMVC with a templating engine
Stateful: GWT or JSF with Spring WebFlow

No comments: