SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
How to Choose
A Web Application
Framework



Sang Shin, sang.shin@sun.com
Java Technology Architect
www.javapassion.com
Sun Microsystems, Inc.
                               1
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
Features of the
Framework




                  3
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
Types of Apps &
Types of Frameworks




                      5
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
Types of Web App. Frameworks
• Request based frameworks
  > Struts 1, Struts 2, Spring MVC
• UI-Component based framework
  > JSF, Tapestry




                                     7
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
Ease of Development,
Ease of Testing &
Debugging & Profiling,
Tool Support



                         9
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
Ease of testing, debugging, profiling
• Does the framework support unit-testing and
  integration testing?
  > Tool support
• Is profiling possible with the framework?




                                                11
POJO Based?
Dependency Injection?




                        12
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
Dependency Injection Support?
• Ease of development
• Ease of testing




                                14
Community Support,
Standard or not




                     15
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
Standard or not?
• No vendor lock-in
• Future enhancement




                       17
Maturity &
Real-life Usage Cases




                        18
Maturity
• Has it proven in the market place?
• Do production environments use it?




                                       19
So... Which One?




                   20
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
How to Choose
A Web Application
Framework



Sang Shin, sang.shin@sun.com
Java Technology Architect
www.javapassion.com
Sun Microsystems, Inc.
                               22

Mais conteúdo relacionado

Semelhante a How to ChoosHow to Choose A Web Application Framework

How to consolidate Citrix Monitoring in a Single Pane of Glass
How to consolidate Citrix Monitoring in a Single Pane of GlassHow to consolidate Citrix Monitoring in a Single Pane of Glass
How to consolidate Citrix Monitoring in a Single Pane of GlasseG Innovations
 
Marlabs Capability Overview: Web Development, Usability Engineering Services
Marlabs Capability Overview: Web Development, Usability Engineering ServicesMarlabs Capability Overview: Web Development, Usability Engineering Services
Marlabs Capability Overview: Web Development, Usability Engineering ServicesMarlabs
 
How to avoid Java and .Net Application Performance Issues using Business Tran...
How to avoid Java and .Net Application Performance Issues using Business Tran...How to avoid Java and .Net Application Performance Issues using Business Tran...
How to avoid Java and .Net Application Performance Issues using Business Tran...eG Innovations
 
Constient global solution- Mobile application development
Constient global solution- Mobile application developmentConstient global solution- Mobile application development
Constient global solution- Mobile application developmentConstient Cgs
 
stackconf 2021 | Platform as a Product
stackconf 2021 | Platform as a Productstackconf 2021 | Platform as a Product
stackconf 2021 | Platform as a ProductNETWAYS
 
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
 Delivering Java Applications? Ensure Top Performance Every Time, with Intell... Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...John Williams
 
Net Beans61 Ide
Net Beans61 IdeNet Beans61 Ide
Net Beans61 Idesatyajit_t
 
Habits of Highly Effective Platform Teams: Unlocking the Value of PCF
Habits of Highly Effective Platform Teams: Unlocking the Value of PCFHabits of Highly Effective Platform Teams: Unlocking the Value of PCF
Habits of Highly Effective Platform Teams: Unlocking the Value of PCFVMware Tanzu
 
Troubleshooting the Most Common Citrix Complaints for Remote Workers
Troubleshooting the Most Common Citrix Complaints for Remote WorkersTroubleshooting the Most Common Citrix Complaints for Remote Workers
Troubleshooting the Most Common Citrix Complaints for Remote WorkerseG Innovations
 
Cynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedCynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedAnna Royzman
 
U test whitepaper_10
U test whitepaper_10U test whitepaper_10
U test whitepaper_10eshwar83
 
Mapping mobileandweblandscape motb
Mapping mobileandweblandscape motbMapping mobileandweblandscape motb
Mapping mobileandweblandscape motbPerfecto Mobile
 
How to Manage Digital User Experience for Web Applications
How to Manage Digital User Experience for Web ApplicationsHow to Manage Digital User Experience for Web Applications
How to Manage Digital User Experience for Web ApplicationseG Innovations
 

Semelhante a How to ChoosHow to Choose A Web Application Framework (20)

How to consolidate Citrix Monitoring in a Single Pane of Glass
How to consolidate Citrix Monitoring in a Single Pane of GlassHow to consolidate Citrix Monitoring in a Single Pane of Glass
How to consolidate Citrix Monitoring in a Single Pane of Glass
 
Nagaraju_M
Nagaraju_MNagaraju_M
Nagaraju_M
 
Marlabs Capability Overview: Web Development, Usability Engineering Services
Marlabs Capability Overview: Web Development, Usability Engineering ServicesMarlabs Capability Overview: Web Development, Usability Engineering Services
Marlabs Capability Overview: Web Development, Usability Engineering Services
 
Fuji Overview
Fuji OverviewFuji Overview
Fuji Overview
 
Apm andre santos
Apm andre santosApm andre santos
Apm andre santos
 
How to avoid Java and .Net Application Performance Issues using Business Tran...
How to avoid Java and .Net Application Performance Issues using Business Tran...How to avoid Java and .Net Application Performance Issues using Business Tran...
How to avoid Java and .Net Application Performance Issues using Business Tran...
 
Constient global solution- Mobile application development
Constient global solution- Mobile application developmentConstient global solution- Mobile application development
Constient global solution- Mobile application development
 
Jeyakumar Narashimman
Jeyakumar NarashimmanJeyakumar Narashimman
Jeyakumar Narashimman
 
stackconf 2021 | Platform as a Product
stackconf 2021 | Platform as a Productstackconf 2021 | Platform as a Product
stackconf 2021 | Platform as a Product
 
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
 Delivering Java Applications? Ensure Top Performance Every Time, with Intell... Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
Delivering Java Applications? Ensure Top Performance Every Time, with Intell...
 
Net Beans61 Ide
Net Beans61 IdeNet Beans61 Ide
Net Beans61 Ide
 
Orchestration, Automation and Virtualisation (OAV) in GÉANT
Orchestration, Automation and Virtualisation (OAV) in GÉANTOrchestration, Automation and Virtualisation (OAV) in GÉANT
Orchestration, Automation and Virtualisation (OAV) in GÉANT
 
Habits of Highly Effective Platform Teams: Unlocking the Value of PCF
Habits of Highly Effective Platform Teams: Unlocking the Value of PCFHabits of Highly Effective Platform Teams: Unlocking the Value of PCF
Habits of Highly Effective Platform Teams: Unlocking the Value of PCF
 
Troubleshooting the Most Common Citrix Complaints for Remote Workers
Troubleshooting the Most Common Citrix Complaints for Remote WorkersTroubleshooting the Most Common Citrix Complaints for Remote Workers
Troubleshooting the Most Common Citrix Complaints for Remote Workers
 
Cynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not GuaranteedCynthia Wu: Satisfaction Not Guaranteed
Cynthia Wu: Satisfaction Not Guaranteed
 
OpenSSO Roadmap Aquarium
OpenSSO Roadmap AquariumOpenSSO Roadmap Aquarium
OpenSSO Roadmap Aquarium
 
U test whitepaper_10
U test whitepaper_10U test whitepaper_10
U test whitepaper_10
 
Mapping mobileandweblandscape motb
Mapping mobileandweblandscape motbMapping mobileandweblandscape motb
Mapping mobileandweblandscape motb
 
QFast
QFastQFast
QFast
 
How to Manage Digital User Experience for Web Applications
How to Manage Digital User Experience for Web ApplicationsHow to Manage Digital User Experience for Web Applications
How to Manage Digital User Experience for Web Applications
 

Mais de elliando dias

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slideselliando dias
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScriptelliando dias
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structureselliando dias
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de containerelliando dias
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agilityelliando dias
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Librarieselliando dias
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!elliando dias
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Webelliando dias
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduinoelliando dias
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorceryelliando dias
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Designelliando dias
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makeselliando dias
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.elliando dias
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebookelliando dias
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Studyelliando dias
 

Mais de elliando dias (20)

Clojurescript slides
Clojurescript slidesClojurescript slides
Clojurescript slides
 
Why you should be excited about ClojureScript
Why you should be excited about ClojureScriptWhy you should be excited about ClojureScript
Why you should be excited about ClojureScript
 
Functional Programming with Immutable Data Structures
Functional Programming with Immutable Data StructuresFunctional Programming with Immutable Data Structures
Functional Programming with Immutable Data Structures
 
Nomenclatura e peças de container
Nomenclatura  e peças de containerNomenclatura  e peças de container
Nomenclatura e peças de container
 
Geometria Projetiva
Geometria ProjetivaGeometria Projetiva
Geometria Projetiva
 
Polyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better AgilityPolyglot and Poly-paradigm Programming for Better Agility
Polyglot and Poly-paradigm Programming for Better Agility
 
Javascript Libraries
Javascript LibrariesJavascript Libraries
Javascript Libraries
 
How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!How to Make an Eight Bit Computer and Save the World!
How to Make an Eight Bit Computer and Save the World!
 
Ragel talk
Ragel talkRagel talk
Ragel talk
 
A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Introdução ao Arduino
Introdução ao ArduinoIntrodução ao Arduino
Introdução ao Arduino
 
Minicurso arduino
Minicurso arduinoMinicurso arduino
Minicurso arduino
 
Incanter Data Sorcery
Incanter Data SorceryIncanter Data Sorcery
Incanter Data Sorcery
 
Rango
RangoRango
Rango
 
Fab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine DesignFab.in.a.box - Fab Academy: Machine Design
Fab.in.a.box - Fab Academy: Machine Design
 
The Digital Revolution: Machines that makes
The Digital Revolution: Machines that makesThe Digital Revolution: Machines that makes
The Digital Revolution: Machines that makes
 
Hadoop + Clojure
Hadoop + ClojureHadoop + Clojure
Hadoop + Clojure
 
Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.Hadoop - Simple. Scalable.
Hadoop - Simple. Scalable.
 
Hadoop and Hive Development at Facebook
Hadoop and Hive Development at FacebookHadoop and Hive Development at Facebook
Hadoop and Hive Development at Facebook
 
Multi-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case StudyMulti-core Parallelization in Clojure - a Case Study
Multi-core Parallelization in Clojure - a Case Study
 

Último

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 

Último (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 

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
  • 5. Types of Apps & Types of Frameworks 5
  • 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
  • 9. Ease of Development, Ease of Testing & Debugging & Profiling, Tool Support 9
  • 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
  • 14. Dependency Injection Support? • Ease of development • Ease of testing 14
  • 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
  • 17. Standard or not? • No vendor lock-in • Future enhancement 17
  • 19. Maturity • Has it proven in the market place? • Do production environments use it? 19
  • 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