DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
The Latest "Software Integration: The Intersection of APIs, Microservices, and Cloud-Based Systems" Trend Report
Get the report
  1. DZone
  2. Coding
  3. Frameworks
  4. Important Factors – Evaluation of Java Based Web Development Frameworks

Important Factors – Evaluation of Java Based Web Development Frameworks

Puneet Monga user avatar by
Puneet Monga
·
Jun. 04, 10 · Interview
Like (0)
Save
Tweet
Share
10.80K Views

Join the DZone community and get the full member experience.

Join For Free

With so many Java based web development frameworks available today, which one to select and which one not to, can be really tough at times. Even though there are well established frameworks available today, there can be some specific requirements which can make us feel that the chosen framework was not the best one.

I have tried to come up with factors that come into play while deciding or locking upon a given web framework.

Factors

Control over customization of URLs
No website is complete in itself if that is not listed on the first few pages of the search engine. URLs play a very important role in determining your site's rank on the search engine. Framework should ideally support meaningful urls. For e.g. no long parameter names and no long parameter values. Also, url should mean the content it is pointing to.  In cases where we want the website to have search-engine friendly URLs, a great lot of control is needed on the URLs of the website and frameworks totally control the way you define them. Framework that doesn't give you (as a developer) a good control over the customization of URLs of the website is not worth considering for development.

Configuration
A good number of java based frameworks are based on MVC pattern. Some of these frameworks require considerable plumbing for tying up varous layers / components together. Configuration can take a toll on the development / maintenance time especially for a small websites. For example, for adding a new error message can sometimes impact 3-4 different files in some frameworks. Conventions definitely help in such cases. Not to forget, for large websites, configuration can prove useful when compared with convention, because it gives you a good control when debugging the various layers because there is no magic happening behind the scenes ( and that's what you configured).

Convention
It's complementary of configuration. For small websites, convention can help you speed up the development. Whereas it can be of little use for large websites, because conventions can give you a impression of magic happening behind the scenes which can seriously impact the debugging of issues.

Support for implementing cross cutting concerns
Analyzing events, tracking user behaviour, securing certain parts of the website, playing around with URLs are some of the features that are much needed in any website today and especially in branding websites. Implementation of such requirements in a website can easily lead to a cluttered, clumsy and redundant code without the support of interception of http requests.  Any frameworks that provides good support for intercepting http requests can help in writing a more maintainable code.

IDE Support
Ideally speaking, no framework should ever be selected on the basis of its IDE support. But that's practically false. IDE support for a framework can improve the developer productivity to a good extent.

Active Development Community
Framework development teams sometimes have a good backup to keep up the good work whereas sometimes they don't. There are frameworks developed by a one-man-army as well. If the framework development team is not that active, then it may lead to a situation where the framework is not able to keep up the pace and hence there is no support of much needed features as the website grows.  To avoid such situations, it is must that framework is backed by an active development team.

Integration with Template engine
Instead of defining your own view layer in jsp / html, it is helpful sometimes to use a template engine such as free marker, velocity. However, a translation layer is needed in between to make the model accessible to the template engines. Frameworks that has these translation layer readily available can be helpful to leverage the benefits of the template engine quickly.

Integration with CMS
CMS plays a very important role in managing the content of a website. Any framework that supports the integration with CMS or makes the integration easy can be a real boost in development.

Tag libraries
Formatting dates, formatting numbers, pagination and various other concerns are almost common in any website today. Some frameworks have tag libraries for handling such concerns effectively in the view layer.

Support for Web Services
Web services can be useful in many cases such as integration with third parties, exposing the functionality as a web service etc. Frameworks that can handle repetitive or common concerns and other infrastructural issues in the implementation of web services efficiently can have  a upper hand on other frameworks that lack that support.

Support for ORM framework
There is a lot of boilerplate code that comes into picture while implementing data access layer for any website. Even though this boiler plate code can be implemented effectively so as to avoid redundancy, but there's no point in re-inventing the wheel. Some frameworks do have support for integrating with ORM framework effectively.

Testability
Frameworks should not only ease out the implementation but also ease out the testability of that implementation. Frameworks which puts the testability of the website at risk is not worth considering.

Support for Localization and Internationalization
To make your website accessible to as many users as possible, localization and internationalization are now inevitable features for any website. And frameworks do play an important role in implementing them effectively.

Framework Web Service Web development Java (programming language) Factor (programming language) Evaluation

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • Multi-Cloud Integration
  • Stop Using Spring Profiles Per Environment
  • How To Build a Spring Boot GraalVM Image
  • Real-Time Analytics for IoT

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: