How to ChoosHow to Choose A Web Application Framework
1. How to Choose
A Web Application
Framework
Sang Shin, sang.shin@sun.com
Java Technology Architect
www.javapassion.com
Sun Microsystems, Inc.
1
2. Factors to consider
• Technical features of the framework
• Types of application, Types of framework
> Request-based (Action-based) or UI-Component based framework
• Ease of development
• Ease of testing
• Tool support
• POJO based
• Dependency Injection support
• Community and vendor support
• Standard-based or not
• Maturity and real-life usage cases
2
4. Technical Features
• Dispatching
• Navigation (page selection)
• Tag support
• Conversion (conversion of String to model data types)
• Usage of HTML designer
• Validation framework (client & server)
• View technologies (JSP, Velocity, PDF, etc.)
• Extensibility
• Conversational scope support
• Template and Tiles support
• Ajax support
• Internationalization
4
6. Types of Applications
• Internet facing, large number of clients, high-traffic
> Yahoo, Amazon.com, Company's public website
• Intranet, small number of clients
> Employee website
6
7. Types of Web App. Frameworks
• Request based frameworks
> Struts 1, Struts 2, Spring MVC
• UI-Component based framework
> JSF, Tapestry
7
8. Types of Applications
• Internet facing, large number of clients, high-traffic
> Request-based framework (Struts 2, Spring MVC)
• Intranet, small number of clients
> UI-Component based framework (JSF)
8
10. Ease of development
• Does the framework support hot deployment?
> Will save development time
• Convention of configuration
> No need to specify common default values
> Configuration required only when non-default values are
used
10
11. Ease of testing, debugging, profiling
• Does the framework support unit-testing and
integration testing?
> Tool support
• Is profiling possible with the framework?
11
13. POJO based?
• Business logic can be captured in the form of POJO
> You don't have to extends or implement framework
specific class or interfaces?
> You can test the business logic without the presence of
the framework
> You can use different framework in the future with
minimal disruption
13
16. Community Support
• Is the community big enough, active enough to help
me?
> Active discussion?
• Is the community working actively for the evolution
of the framework?
> Frequent release
16
21. My Recommendation
• Choose JSF if you are not sure
> It is a standard
> All vendors support it
> Mature and proven in the market place
> Many tools
21
22. How to Choose
A Web Application
Framework
Sang Shin, sang.shin@sun.com
Java Technology Architect
www.javapassion.com
Sun Microsystems, Inc.
22