how to chooshow to choose a web application framework
TRANSCRIPT
![Page 1: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/1.jpg)
How to ChooseHow to ChooseA Web Application A Web Application FrameworkFramework
Sang Shin, [email protected] Shin, [email protected] Technology ArchitectJava Technology Architectwww.javapassion.comwww.javapassion.comSun Microsystems, Inc.Sun Microsystems, Inc.
1
![Page 2: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/2.jpg)
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
![Page 3: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/3.jpg)
3
Features of theFeatures of theFrameworkFramework
![Page 4: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/4.jpg)
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
![Page 5: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/5.jpg)
5
Types of Apps &Types of Apps &Types of FrameworksTypes of Frameworks
![Page 6: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/6.jpg)
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
![Page 7: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/7.jpg)
7
Types of Web App. Frameworks• Request based frameworks> Struts 1, Struts 2, Spring MVC
• UI-Component based framework> JSF, Tapestry
![Page 8: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/8.jpg)
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)
![Page 9: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/9.jpg)
9
Ease of Development,Ease of Development,Ease of Testing & Ease of Testing & Debugging & Profiling,Debugging & Profiling,Tool SupportTool Support
![Page 10: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/10.jpg)
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
![Page 11: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/11.jpg)
11
Ease of testing, debugging, profiling• Does the framework support unit-testing and
integration testing?> Tool support
• Is profiling possible with the framework?
![Page 12: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/12.jpg)
12
POJO Based?POJO Based?Dependency Injection?Dependency Injection?
![Page 13: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/13.jpg)
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
![Page 14: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/14.jpg)
14
Dependency Injection Support?• Ease of development• Ease of testing
![Page 15: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/15.jpg)
15
Community Support,Community Support,Standard or notStandard or not
![Page 16: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/16.jpg)
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
![Page 17: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/17.jpg)
17
Standard or not?• No vendor lock-in• Future enhancement
![Page 18: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/18.jpg)
18
Maturity &Maturity &Real-life Usage CasesReal-life Usage Cases
![Page 19: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/19.jpg)
19
Maturity • Has it proven in the market place?• Do production environments use it?
![Page 20: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/20.jpg)
20
So... Which One?So... Which One?
![Page 21: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/21.jpg)
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
![Page 22: How to ChoosHow to Choose A Web Application Framework](https://reader033.vdocuments.site/reader033/viewer/2022052911/559e05741a28abb1428b458b/html5/thumbnails/22.jpg)
How to ChooseHow to ChooseA Web Application A Web Application FrameworkFramework
Sang Shin, [email protected] Shin, [email protected] Technology ArchitectJava Technology Architectwww.javapassion.comwww.javapassion.comSun Microsystems, Inc.Sun Microsystems, Inc.
22