SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Choosing a JVM Web Framework
               Matt Raible
        matt@raibledesigns.com
        http://raibledesigns.com




                                   © 2007 Raible Designs, Inc.
Today’s Agenda
Introductions
The Problem
Is there a solution to The Problem?
How do you choose?
6 Important Factors
Case Studies
What do I think?
Q and A



                                      © 2007 Raible Designs, Inc.
Audience Matters
This talk is designed for teams trying to navigate the
confusion in the JVM Web Framework space
It is designed to be a discussion, not a presentation
These are my opinions...
... and options are like ...
Your opinions will influence mine
So please share them!




                                            © 2007 Raible Designs, Inc.
Introductions
Your experience with web applications?
Your experience with Java EE?
What do you want to get from this session?
Experience with Maven, Tomcat, Hibernate, Spring?
Web Framework Experience:
   Spring MVC, Struts 2, Stripes, JSF, Tapestry,
   Wicket, Rails, Grails, Flex




                                            © 2007 Raible Designs, Inc.
Who is Matt Raible?
Power user of Java Open Source Frameworks
Author of Spring Live and Pro JSP 2.0
Founder of AppFuse and AppFuse Light
Member of Java EE 5, JSF 1.2 and Bean Validation
Expert Groups
Committer on Apache Projects: Roller and Struts
Java Blogger since 2002




                                         © 2007 Raible Designs, Inc.
The Problem




              © 2007 Raible Designs, Inc.
The Problem




              © 2007 Raible Designs, Inc.
How do you choose?




                © 2007 Raible Designs, Inc.
Eliminate, don’t Include



                    © 2007 Raible Designs, Inc.
© 2007 Raible Designs, Inc.
6 Important Factors
Request, Component or RIA Framework
Ease of Development
Project Community
Project Future and Roadmap
Maintenance
Technical Features




                                      © 2007 Raible Designs, Inc.
Request, Component or RIA
  Are you developing...
      ... a consumer facing site?
      ... a heavy forms, desktop-like, application?
      ... a media-rich site?
  If the framework is built for state-fulness, should you
  use it in a stateless architecture?




                                              © 2007 Raible Designs, Inc.
Types of Applications
High-traffic, internet facing, infinite scalability
Intranet-based, behind the firewall, few users
Products, to be maintained for 5-10 years
Legacy Backend
Others?




                                             © 2007 Raible Designs, Inc.
Types of Frameworks
Request Based Frameworks
    Struts 1/2, Spring MVC, Rails, Stripes
Component Based Frameworks
    JSF, Tapestry, GWT
Rich Internet Applications
    Flex, OpenLaszlo
One Size Fits All
    Grails


                                             © 2007 Raible Designs, Inc.
Do they matchup?
High-traffic, internet facing, infinite scalability

    Request-based frameworks

Intranet-based, behind the firewall, few users

    Component-based frameworks

Products, to be maintained for 5-10 years

    Largest Community, Most Vendor Support

Legacy Backend

    Same Language as backend

                                                    © 2007 Raible Designs, Inc.
Ease of Development
Can new developers learn the basic concepts on
their first day?
Does the framework follow the principle of least
surprise?
Are you migrating from an existing web framework?




                                          © 2007 Raible Designs, Inc.
Project Community
Is there a company backing the project?
Are vendors jumping on board? What about
consultants?
Does it have healthy mailing list traffic?
    Users and developers are both important
Are there frequent releases?
What’s the level of real-world usage?
Are there books written about it?


                                            © 2007 Raible Designs, Inc.
Project Future & Roadmap
 Does the project have ambitious goals for its future?
    JSF 2 and Tapestry 5
    Both will sacrifice backwards compatibility
 Are you willing to be an early adopter?




                                            © 2007 Raible Designs, Inc.
Project Future & Roadmap
 Does the project have ambitious goals for its future?
    JSF 2 and Tapestry 5
    Both will sacrifice backwards compatibility
 Are you willing to be an early adopter?




                                            © 2007 Raible Designs, Inc.
Maintenance
Is the framework easy to test?
Is backwards compatibility a concern for framework
developers?
Are releases backwards compatible?
If not, is there an upgrade guide or adapter?
Can 5 years go by?




                                            © 2007 Raible Designs, Inc.
Technical Features
Are you migrating from an existing web framework
or creating a new application?
If creating new, are you doing “greenfield”
development?
If migrating, does the new framework have all the
features your current framework has?
If migrating, can you migrate one module at a time?
Is the framework’s “full-stack” a feature or a barrier?



                                             © 2007 Raible Designs, Inc.
Don’t believe the Hype
Don’t believe blogs and articles
Try it yourself
Believe developers, not evangelists
Believe developers that are experienced with the
framework and have used it in production
Beware of corporate interests - they can twist
marketing
Are books a good sign?



                                           © 2007 Raible Designs, Inc.
Best Tool for the Job
Do you believe in Application Categorization and
Framework Specialization?
If so, pick the top players in that category...
... and prototype!
If prototyping is painful, switch
If prototyping isn’t painful, is it work trying others?




                                              © 2007 Raible Designs, Inc.
After you’ve decided
Document the reasons for your decision
Allow developers to challenge it
Allow your prototype to be written with other
frameworks
Don’t be afraid to try new frameworks
Don’t be afraid to use old frameworks
Don’t be afraid to keep your existing framework




                                          © 2007 Raible Designs, Inc.
Case Studies




http://raibledesigns.com/rd/entry/choosing_a_jvm_web_framework1

                                                   © 2007 Raible Designs, Inc.
Wicket over JSF
I had a project I started with JSF and spent about 2 weeks coding the dao
and service layer when finally starting the work on the UI. I ran into some
nasty problems I couldn't came around (displaying buttons in a datatable
that work even when the backing bean is not stored in the session). Then
I found Facelets which solved some of my JSF problems, but not all -
although it was nicer than plain old jsp-jsf soup.
...
I played around with wicket 1.0 some months before this project and
thought I would give it a try. I spent about 6 days on the UI with JSF when
doing the switch to wicket and in about 6-7 hours all of my UI pages were
converted from JSF to wicket.
...
We like the technology very much, it's really easy and straightforward
once you get it.
                                                         Janos Cserep
                                             http://www.metaprime.hu
                                                            © 2007 Raible Designs, Inc.
Stripes over Struts
My favourite option is Stripes. I have tried Struts (1.x) and some home-
grown frameworks before but I don't have any reason to switch to other
framework since I've met Stripes. It fully satisfy my needs. Easy
integration with AJAX, easy configuration and yet the framework allows
for easy extension as well. Easy integration with Spring and Hibernate.
Nice validation. I have used Stripes for more then 5 projects now and the
fact that I haven't find any show-stoppers yet is self-explanatory I guess.
For me Stripes is the real option when the project does not require other
framework to be used.




                                                            Lukas Vlcek
                                            http://blog.lukas-vlcek.com
                                                            © 2007 Raible Designs, Inc.
Grails over Struts & Spring MVC
I have used Struts 1.x with hibernate and a home made service layer. I
have also used Spring + Hibernate + SpringMVC (AppFuse 1.9.x).
Nowadays I am using Grails 0.5.x (but have used it since Grails 0.3).
...
...my elimination process was the balance between productivity and
production environment stability.
...
In terms of productivity, I haven't seen anything like Grails in JVM
platform. It is so productive to develop with. And fun! A Grails app is very
smooth to maintain. If you like Code By Convention over configuration,
Grails is great. But if you need to do something different from the
convention, you can configure Hibernate, or Spring with their xml config
files.
                                                       Felipe Nascimento
                                          http://felipenasc.blogspot.com
                                                              © 2007 Raible Designs, Inc.
Grails over Struts & Spring MVC
I have used Struts 1.x with hibernate and a home made service layer. I
have also used Spring + Hibernate + SpringMVC (AppFuse 1.9.x).
Nowadays I am using Grails 0.5.x (but have used it since Grails 0.3).
...
...my elimination process was the balance between productivity and
production environment stability.
...
In terms of productivity, I haven't seen anything like Grails in JVM
platform. It is so productive to develop with. And fun! A Grails app is very
smooth to maintain. If you like Code By Convention over configuration,
Grails is great. But if you need to do something different from the
convention, you can configure Hibernate, or Spring with their xml config
files.
                                                       Felipe Nascimento
                                          http://felipenasc.blogspot.com
                                                              © 2007 Raible Designs, Inc.
RIFE over Wicket
I've been using RIFE for a few years now and it has treated me extremely
well. It is a single solution that includes most things you'd need for
building J2EE web applications. I have tried a few other solutions, which
most recently was Wicket, and found that the time/code it took to get
something done was much greater than with RIFE.
...
I feel like RIFE's templating design and syntax spoils me. When I tried to
convert a RIFE basic page to Wicket, I did it with much less Java and
HTML than I did with RIFE. I feel spoiled by RIFE's very simple syntax
and markup support. No need to use special tags in my HTML or
anything.


                                                     Jeremy Whitlock
                                         http://www.thoughtspark.org
                                                            © 2007 Raible Designs, Inc.
Tapestry vs. JSF and Wicket
We spent some time (almost a week) in the jungle of Java Web
Framework, just reading comparison, looking at the quot;ecosystemquot; of the
framework (community, project linked to it, press buzz, etc). Quite quickly,
the choice list drop to JSF, Wicket and Tapestry.
...
Wicket as a really good press, and was a kind of buzz work (not as
bussing as RoR, but intrigating). Tapestry was the old one component
framework, the one that open the way, and I had several friends that
really love it, from a long time. JSF was the quot;obviousquot; choice, the norm, it
has to be part of the choice.
...
Quickly, JSF was dropped : too complex, too huge, too much XML, it
reminded us the worst day of Struts or EJBs.
                                              continued on next page ...


                                                             © 2007 Raible Designs, Inc.
Tapestry vs. JSF and Wicket
Wicket was impressive. The mailing list is really responsive, the
approach of the framework is innovative (at least, for me who doesn't
have any Swing background), the separation between code and style is
really strict, etc.
...
Drawbacks: Wicket is hard, at least in the beginning. Stateful by default.
...
Tapestry 5 was... Wow. It was the effect it did to me and the other tester.
Its simplicity is amazing : its a joy to create new components (simple
POJOs with some conventions and annotation), test them and reuse
them along your application. The separation between HTML and logic is
rather good, the reload facility a must have (Wicket also have this), the
injection framework is amazing.
                                                        Francois Armand


                                                             © 2007 Raible Designs, Inc.
Tapestry vs. JSF
I did an extensive study for a dissertation, lasting a year on web
frameworks - but particularly Tapestry 4.
...
I also wrote a complex web application spanning over 1000 personal man
hours. My findings are related to productivity and interoperability as these
were seen as perhaps the most important areas for businesses. Tapestry
was a success for the project, but had two critical failings: 1. Backwards
compatibility 2. Documentation and project resources.
...
JSF is the most serious contender for longer term investment by a
company in a web framework, yes it is immense, but they have heavy
investment and rock solid documentation and training material. Once you
are using it, it is really simple.
                                                        Peter Stavrinides


                                                            © 2007 Raible Designs, Inc.
What about SOFEA?
Web Architecture for SOA Applications
Client should be downloaded from a web server
Presentation Flow should be on the client
Data Interchange should happen via REST or SOAP
http://wisdomofganesh.blogspot.com/2007/10/life-
above-service-tier.html




                                            © 2007 Raible Designs, Inc.
© 2007 Raible Designs, Inc.
SOFEA Frameworks
DHTML/AJAX frameworks for Current Browsers
   Hand-coded with third party JavaScript libraries
   Google Web Toolkit (GWT, GWT­Ext)
   TIBCO General Interface Builder
XML Dialects for Advanced Browsers
   XForms and XHTML 2.0
   Mozilla XUL
   Microsoft SilverLight/XAML


                                          © 2007 Raible Designs, Inc.
SOFEA Frameworks
Java frameworks
   Java WebStart (with/without Spring Rich Client)
   JavaFX
Adobe Flash­based frameworks
   Adobe Flex
   OpenLaszlo




                                         © 2007 Raible Designs, Inc.
What do I think?




               © 2007 Raible Designs, Inc.
Conclusion
The future is bright because of all the competition
Developers should know more than one web
framework
You should try a framework before dissing it
The plethora of web frameworks is a good thing!
Doing proper research can save time and money
Testing is the best path to future maintenance



                                           © 2007 Raible Designs, Inc.
Questions?
      matt@raibledesigns.com
      http://raibledesigns.com


         Download presentation from:
http://raibledesigns.com/rd/page/publications




                                                © 2007 Raible Designs, Inc.

Contenu connexe

Similaire à Choosing a JVM Web Framework

Comparing JVM Web Frameworks - TSSJS 2011
Comparing JVM Web Frameworks - TSSJS 2011Comparing JVM Web Frameworks - TSSJS 2011
Comparing JVM Web Frameworks - TSSJS 2011Matt Raible
 
Java Web Frameworks Sweetspots
Java Web Frameworks SweetspotsJava Web Frameworks Sweetspots
Java Web Frameworks SweetspotsMatt Raible
 
How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022Katy Slemon
 
Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018Helios Solutions
 
Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Matt Raible
 
Popular Web Frameworks for web Development
Popular Web Frameworks for web DevelopmentPopular Web Frameworks for web Development
Popular Web Frameworks for web DevelopmentChinmayee Behera
 
Javascript Framework: React JS VS Vue.js | Bosc Tech Labs
Javascript Framework: React JS VS Vue.js | Bosc Tech LabsJavascript Framework: React JS VS Vue.js | Bosc Tech Labs
Javascript Framework: React JS VS Vue.js | Bosc Tech LabsBOSC Tech Labs
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueMarudi Subakti
 
10 Best Web Development Frameworks for Your Business Needs
10 Best Web Development Frameworks for Your Business Needs10 Best Web Development Frameworks for Your Business Needs
10 Best Web Development Frameworks for Your Business NeedsSofiaCarter4
 
Building Large Sustainable Apps
Building Large Sustainable AppsBuilding Large Sustainable Apps
Building Large Sustainable AppsBuğra Oral
 
React.js alternatives modern web frameworks and lightweight java script libr...
React.js alternatives  modern web frameworks and lightweight java script libr...React.js alternatives  modern web frameworks and lightweight java script libr...
React.js alternatives modern web frameworks and lightweight java script libr...Katy Slemon
 
5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdf5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdfMverve1
 
Frameworks for Web Development
Frameworks for Web DevelopmentFrameworks for Web Development
Frameworks for Web Developmentdtmodern
 
JavaScript Frameworks Popularity
JavaScript Frameworks PopularityJavaScript Frameworks Popularity
JavaScript Frameworks PopularityAlbiorix Technology
 
React Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdfReact Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdfLaura Miller
 
Embracing Uncertainty: Learning to Think Responsively
Embracing Uncertainty: Learning to Think ResponsivelyEmbracing Uncertainty: Learning to Think Responsively
Embracing Uncertainty: Learning to Think ResponsivelyChad Currie
 
Vue Framework: Why is the best alternative to React and Angular? 
Vue Framework: Why is the best alternative to React and Angular? Vue Framework: Why is the best alternative to React and Angular? 
Vue Framework: Why is the best alternative to React and Angular? simonedaniels3
 

Similaire à Choosing a JVM Web Framework (20)

Comparing JVM Web Frameworks - TSSJS 2011
Comparing JVM Web Frameworks - TSSJS 2011Comparing JVM Web Frameworks - TSSJS 2011
Comparing JVM Web Frameworks - TSSJS 2011
 
Java Web Frameworks Sweetspots
Java Web Frameworks SweetspotsJava Web Frameworks Sweetspots
Java Web Frameworks Sweetspots
 
How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022How to choose the best frontend framework in 2022
How to choose the best frontend framework in 2022
 
Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018Top 10 Front End Development Technologies to Focus in 2018
Top 10 Front End Development Technologies to Focus in 2018
 
Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010Comparing JVM Web Frameworks - Rich Web Experience 2010
Comparing JVM Web Frameworks - Rich Web Experience 2010
 
Popular Web Frameworks for web Development
Popular Web Frameworks for web DevelopmentPopular Web Frameworks for web Development
Popular Web Frameworks for web Development
 
Javascript Framework: React JS VS Vue.js | Bosc Tech Labs
Javascript Framework: React JS VS Vue.js | Bosc Tech LabsJavascript Framework: React JS VS Vue.js | Bosc Tech Labs
Javascript Framework: React JS VS Vue.js | Bosc Tech Labs
 
Frontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs VueFrontend War: Angular vs React vs Vue
Frontend War: Angular vs React vs Vue
 
10 Best Web Development Frameworks for Your Business Needs
10 Best Web Development Frameworks for Your Business Needs10 Best Web Development Frameworks for Your Business Needs
10 Best Web Development Frameworks for Your Business Needs
 
Building Large Sustainable Apps
Building Large Sustainable AppsBuilding Large Sustainable Apps
Building Large Sustainable Apps
 
React.js alternatives modern web frameworks and lightweight java script libr...
React.js alternatives  modern web frameworks and lightweight java script libr...React.js alternatives  modern web frameworks and lightweight java script libr...
React.js alternatives modern web frameworks and lightweight java script libr...
 
5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdf5 Front End Frameworks to Master in Web Development.pdf
5 Front End Frameworks to Master in Web Development.pdf
 
Frameworks for Web Development
Frameworks for Web DevelopmentFrameworks for Web Development
Frameworks for Web Development
 
JavaScript Frameworks Popularity
JavaScript Frameworks PopularityJavaScript Frameworks Popularity
JavaScript Frameworks Popularity
 
React Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdfReact Vs Vue.js Which One is Better.pdf
React Vs Vue.js Which One is Better.pdf
 
Embracing Uncertainty: Learning to Think Responsively
Embracing Uncertainty: Learning to Think ResponsivelyEmbracing Uncertainty: Learning to Think Responsively
Embracing Uncertainty: Learning to Think Responsively
 
GluonCV
GluonCVGluonCV
GluonCV
 
Vue Framework: Why is the best alternative to React and Angular? 
Vue Framework: Why is the best alternative to React and Angular? Vue Framework: Why is the best alternative to React and Angular? 
Vue Framework: Why is the best alternative to React and Angular? 
 
Angular.js vs React.js vs Vue.js _ Elsner.pptx
Angular.js vs React.js vs Vue.js _ Elsner.pptxAngular.js vs React.js vs Vue.js _ Elsner.pptx
Angular.js vs React.js vs Vue.js _ Elsner.pptx
 
Node.js vs. java
Node.js vs. javaNode.js vs. java
Node.js vs. java
 

Plus de Matt Raible

Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Matt Raible
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Matt Raible
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Matt Raible
 
Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Matt Raible
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Matt Raible
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Matt Raible
 
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Matt Raible
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Matt Raible
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Matt Raible
 
Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Matt Raible
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Matt Raible
 
Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Matt Raible
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Matt Raible
 
Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021Matt Raible
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Matt Raible
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Matt Raible
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Matt Raible
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020Matt Raible
 

Plus de Matt Raible (20)

Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
 
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
 
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
 
Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022Micro Frontends for Java Microservices - Cork JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
 
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022Comparing Native Java REST API Frameworks - Seattle JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
 
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
 
Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022Comparing Native Java REST API Frameworks - Devoxx France 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
 
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
 
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021Native Java with Spring Boot and JHipster - Garden State JUG 2021
Native Java with Spring Boot and JHipster - Garden State JUG 2021
 
Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021Java REST API Framework Comparison - PWX 2021
Java REST API Framework Comparison - PWX 2021
 
Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021Web App Security for Java Developers - PWX 2021
Web App Security for Java Developers - PWX 2021
 
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
 
Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021Web App Security for Java Developers - UberConf 2021
Web App Security for Java Developers - UberConf 2021
 
Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021Java REST API Framework Comparison - UberConf 2021
Java REST API Framework Comparison - UberConf 2021
 
Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021Native Java with Spring Boot and JHipster - SF JUG 2021
Native Java with Spring Boot and JHipster - SF JUG 2021
 
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
 
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
 
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
 
JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020JHipster and Okta - JHipster Virtual Meetup December 2020
JHipster and Okta - JHipster Virtual Meetup December 2020
 

Dernier

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
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
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 

Dernier (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
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...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
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...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 

Choosing a JVM Web Framework

  • 1. Choosing a JVM Web Framework Matt Raible matt@raibledesigns.com http://raibledesigns.com © 2007 Raible Designs, Inc.
  • 2. Today’s Agenda Introductions The Problem Is there a solution to The Problem? How do you choose? 6 Important Factors Case Studies What do I think? Q and A © 2007 Raible Designs, Inc.
  • 3. Audience Matters This talk is designed for teams trying to navigate the confusion in the JVM Web Framework space It is designed to be a discussion, not a presentation These are my opinions... ... and options are like ... Your opinions will influence mine So please share them! © 2007 Raible Designs, Inc.
  • 4. Introductions Your experience with web applications? Your experience with Java EE? What do you want to get from this session? Experience with Maven, Tomcat, Hibernate, Spring? Web Framework Experience: Spring MVC, Struts 2, Stripes, JSF, Tapestry, Wicket, Rails, Grails, Flex © 2007 Raible Designs, Inc.
  • 5. Who is Matt Raible? Power user of Java Open Source Frameworks Author of Spring Live and Pro JSP 2.0 Founder of AppFuse and AppFuse Light Member of Java EE 5, JSF 1.2 and Bean Validation Expert Groups Committer on Apache Projects: Roller and Struts Java Blogger since 2002 © 2007 Raible Designs, Inc.
  • 6. The Problem © 2007 Raible Designs, Inc.
  • 7. The Problem © 2007 Raible Designs, Inc.
  • 8. How do you choose? © 2007 Raible Designs, Inc.
  • 9. Eliminate, don’t Include © 2007 Raible Designs, Inc.
  • 10. © 2007 Raible Designs, Inc.
  • 11. 6 Important Factors Request, Component or RIA Framework Ease of Development Project Community Project Future and Roadmap Maintenance Technical Features © 2007 Raible Designs, Inc.
  • 12. Request, Component or RIA Are you developing... ... a consumer facing site? ... a heavy forms, desktop-like, application? ... a media-rich site? If the framework is built for state-fulness, should you use it in a stateless architecture? © 2007 Raible Designs, Inc.
  • 13. Types of Applications High-traffic, internet facing, infinite scalability Intranet-based, behind the firewall, few users Products, to be maintained for 5-10 years Legacy Backend Others? © 2007 Raible Designs, Inc.
  • 14. Types of Frameworks Request Based Frameworks Struts 1/2, Spring MVC, Rails, Stripes Component Based Frameworks JSF, Tapestry, GWT Rich Internet Applications Flex, OpenLaszlo One Size Fits All Grails © 2007 Raible Designs, Inc.
  • 15. Do they matchup? High-traffic, internet facing, infinite scalability Request-based frameworks Intranet-based, behind the firewall, few users Component-based frameworks Products, to be maintained for 5-10 years Largest Community, Most Vendor Support Legacy Backend Same Language as backend © 2007 Raible Designs, Inc.
  • 16. Ease of Development Can new developers learn the basic concepts on their first day? Does the framework follow the principle of least surprise? Are you migrating from an existing web framework? © 2007 Raible Designs, Inc.
  • 17. Project Community Is there a company backing the project? Are vendors jumping on board? What about consultants? Does it have healthy mailing list traffic? Users and developers are both important Are there frequent releases? What’s the level of real-world usage? Are there books written about it? © 2007 Raible Designs, Inc.
  • 18. Project Future & Roadmap Does the project have ambitious goals for its future? JSF 2 and Tapestry 5 Both will sacrifice backwards compatibility Are you willing to be an early adopter? © 2007 Raible Designs, Inc.
  • 19. Project Future & Roadmap Does the project have ambitious goals for its future? JSF 2 and Tapestry 5 Both will sacrifice backwards compatibility Are you willing to be an early adopter? © 2007 Raible Designs, Inc.
  • 20. Maintenance Is the framework easy to test? Is backwards compatibility a concern for framework developers? Are releases backwards compatible? If not, is there an upgrade guide or adapter? Can 5 years go by? © 2007 Raible Designs, Inc.
  • 21. Technical Features Are you migrating from an existing web framework or creating a new application? If creating new, are you doing “greenfield” development? If migrating, does the new framework have all the features your current framework has? If migrating, can you migrate one module at a time? Is the framework’s “full-stack” a feature or a barrier? © 2007 Raible Designs, Inc.
  • 22. Don’t believe the Hype Don’t believe blogs and articles Try it yourself Believe developers, not evangelists Believe developers that are experienced with the framework and have used it in production Beware of corporate interests - they can twist marketing Are books a good sign? © 2007 Raible Designs, Inc.
  • 23. Best Tool for the Job Do you believe in Application Categorization and Framework Specialization? If so, pick the top players in that category... ... and prototype! If prototyping is painful, switch If prototyping isn’t painful, is it work trying others? © 2007 Raible Designs, Inc.
  • 24. After you’ve decided Document the reasons for your decision Allow developers to challenge it Allow your prototype to be written with other frameworks Don’t be afraid to try new frameworks Don’t be afraid to use old frameworks Don’t be afraid to keep your existing framework © 2007 Raible Designs, Inc.
  • 26. Wicket over JSF I had a project I started with JSF and spent about 2 weeks coding the dao and service layer when finally starting the work on the UI. I ran into some nasty problems I couldn't came around (displaying buttons in a datatable that work even when the backing bean is not stored in the session). Then I found Facelets which solved some of my JSF problems, but not all - although it was nicer than plain old jsp-jsf soup. ... I played around with wicket 1.0 some months before this project and thought I would give it a try. I spent about 6 days on the UI with JSF when doing the switch to wicket and in about 6-7 hours all of my UI pages were converted from JSF to wicket. ... We like the technology very much, it's really easy and straightforward once you get it. Janos Cserep http://www.metaprime.hu © 2007 Raible Designs, Inc.
  • 27. Stripes over Struts My favourite option is Stripes. I have tried Struts (1.x) and some home- grown frameworks before but I don't have any reason to switch to other framework since I've met Stripes. It fully satisfy my needs. Easy integration with AJAX, easy configuration and yet the framework allows for easy extension as well. Easy integration with Spring and Hibernate. Nice validation. I have used Stripes for more then 5 projects now and the fact that I haven't find any show-stoppers yet is self-explanatory I guess. For me Stripes is the real option when the project does not require other framework to be used. Lukas Vlcek http://blog.lukas-vlcek.com © 2007 Raible Designs, Inc.
  • 28. Grails over Struts & Spring MVC I have used Struts 1.x with hibernate and a home made service layer. I have also used Spring + Hibernate + SpringMVC (AppFuse 1.9.x). Nowadays I am using Grails 0.5.x (but have used it since Grails 0.3). ... ...my elimination process was the balance between productivity and production environment stability. ... In terms of productivity, I haven't seen anything like Grails in JVM platform. It is so productive to develop with. And fun! A Grails app is very smooth to maintain. If you like Code By Convention over configuration, Grails is great. But if you need to do something different from the convention, you can configure Hibernate, or Spring with their xml config files. Felipe Nascimento http://felipenasc.blogspot.com © 2007 Raible Designs, Inc.
  • 29. Grails over Struts & Spring MVC I have used Struts 1.x with hibernate and a home made service layer. I have also used Spring + Hibernate + SpringMVC (AppFuse 1.9.x). Nowadays I am using Grails 0.5.x (but have used it since Grails 0.3). ... ...my elimination process was the balance between productivity and production environment stability. ... In terms of productivity, I haven't seen anything like Grails in JVM platform. It is so productive to develop with. And fun! A Grails app is very smooth to maintain. If you like Code By Convention over configuration, Grails is great. But if you need to do something different from the convention, you can configure Hibernate, or Spring with their xml config files. Felipe Nascimento http://felipenasc.blogspot.com © 2007 Raible Designs, Inc.
  • 30. RIFE over Wicket I've been using RIFE for a few years now and it has treated me extremely well. It is a single solution that includes most things you'd need for building J2EE web applications. I have tried a few other solutions, which most recently was Wicket, and found that the time/code it took to get something done was much greater than with RIFE. ... I feel like RIFE's templating design and syntax spoils me. When I tried to convert a RIFE basic page to Wicket, I did it with much less Java and HTML than I did with RIFE. I feel spoiled by RIFE's very simple syntax and markup support. No need to use special tags in my HTML or anything. Jeremy Whitlock http://www.thoughtspark.org © 2007 Raible Designs, Inc.
  • 31. Tapestry vs. JSF and Wicket We spent some time (almost a week) in the jungle of Java Web Framework, just reading comparison, looking at the quot;ecosystemquot; of the framework (community, project linked to it, press buzz, etc). Quite quickly, the choice list drop to JSF, Wicket and Tapestry. ... Wicket as a really good press, and was a kind of buzz work (not as bussing as RoR, but intrigating). Tapestry was the old one component framework, the one that open the way, and I had several friends that really love it, from a long time. JSF was the quot;obviousquot; choice, the norm, it has to be part of the choice. ... Quickly, JSF was dropped : too complex, too huge, too much XML, it reminded us the worst day of Struts or EJBs. continued on next page ... © 2007 Raible Designs, Inc.
  • 32. Tapestry vs. JSF and Wicket Wicket was impressive. The mailing list is really responsive, the approach of the framework is innovative (at least, for me who doesn't have any Swing background), the separation between code and style is really strict, etc. ... Drawbacks: Wicket is hard, at least in the beginning. Stateful by default. ... Tapestry 5 was... Wow. It was the effect it did to me and the other tester. Its simplicity is amazing : its a joy to create new components (simple POJOs with some conventions and annotation), test them and reuse them along your application. The separation between HTML and logic is rather good, the reload facility a must have (Wicket also have this), the injection framework is amazing. Francois Armand © 2007 Raible Designs, Inc.
  • 33. Tapestry vs. JSF I did an extensive study for a dissertation, lasting a year on web frameworks - but particularly Tapestry 4. ... I also wrote a complex web application spanning over 1000 personal man hours. My findings are related to productivity and interoperability as these were seen as perhaps the most important areas for businesses. Tapestry was a success for the project, but had two critical failings: 1. Backwards compatibility 2. Documentation and project resources. ... JSF is the most serious contender for longer term investment by a company in a web framework, yes it is immense, but they have heavy investment and rock solid documentation and training material. Once you are using it, it is really simple. Peter Stavrinides © 2007 Raible Designs, Inc.
  • 34. What about SOFEA? Web Architecture for SOA Applications Client should be downloaded from a web server Presentation Flow should be on the client Data Interchange should happen via REST or SOAP http://wisdomofganesh.blogspot.com/2007/10/life- above-service-tier.html © 2007 Raible Designs, Inc.
  • 35. © 2007 Raible Designs, Inc.
  • 36. SOFEA Frameworks DHTML/AJAX frameworks for Current Browsers Hand-coded with third party JavaScript libraries Google Web Toolkit (GWT, GWT­Ext) TIBCO General Interface Builder XML Dialects for Advanced Browsers XForms and XHTML 2.0 Mozilla XUL Microsoft SilverLight/XAML © 2007 Raible Designs, Inc.
  • 37. SOFEA Frameworks Java frameworks Java WebStart (with/without Spring Rich Client) JavaFX Adobe Flash­based frameworks Adobe Flex OpenLaszlo © 2007 Raible Designs, Inc.
  • 38. What do I think? © 2007 Raible Designs, Inc.
  • 39. Conclusion The future is bright because of all the competition Developers should know more than one web framework You should try a framework before dissing it The plethora of web frameworks is a good thing! Doing proper research can save time and money Testing is the best path to future maintenance © 2007 Raible Designs, Inc.
  • 40. Questions? matt@raibledesigns.com http://raibledesigns.com Download presentation from: http://raibledesigns.com/rd/page/publications © 2007 Raible Designs, Inc.