Important Factors – Evaluation of Java Based Web Development Frameworks
Join the DZone community and get the full member experience.
Join For FreeWith 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.
Opinions expressed by DZone contributors are their own.
Comments