Imagine Implement
Home
Services
Domains
Technologies
Methodology
Business Process Outsourcing
Outsourced Product Development
The SMB Practice
"Cerulean does excellent work. We will be using them on future projects. Very capable and professional. Highly skilled in complex programming."

Paul Obis, Owner Owlly.com, Illinois

Cerulean Logo - An ISO 9001:2000 Certified Company Credentials
Company Credentials Clients Careers Case Studies Contact Us
   Overview | Case Studies | White Papers
Home > White Papers > Comparison of Frameworks

WP: Comparison of Frameworks

Comparison of Frameworks


Introduction

There are a lot of frameworks around the software community. Broad classifications are as - (1) rich client frame work which is used in a desktop applications and (2) web based j2ee frame works which is used in web based application.

The choice of framework depends on the project. The following factors need be considered when choosing the frame work:

  • The type of application, whether it is a desktop application or web based application
  • The size of your project
  • Scope and requirement for future enhancements
  • Availability of resources and experts to support the selected framework.

1. Web Application

The following are the popular web based frame works,
  • Struts
  • Spring
  • JSF
The eclipse web based frame work is not so popular as the above frame works for web based applications and is more used for rich client applications.

Comparisons

A. Spring Vs Struts

Benefits of Spring Over Struts

  • Spring provides a very clean division between controllers, JavaBean models, and views.
  • Spring's MVC is very flexible. Unlike Struts, which forces your Action and Form objects into concrete inheritance (thus taking away your single shot at concrete inheritance in Java), Spring MVC is entirely based on interfaces. Furthermore, just about every part of the Spring MVC framework is configurable via plugging in your own interface. Of course we also provide convenience classes as an implementation option.
  • Spring, like WebWork, provides interceptors as well as controllers, making it easy to factor out behavior common to the handling of many requests.
  • Spring MVC is truly view-agnostic. You don't get pushed to use JSP if you don't want to; you can use Velocity, XLST or other view technologies. If you want to use a custom view mechanism - for example, your own tempting language - you can easily implement the Spring View interface to integrate it.
  • Spring Controllers are configured via IOC like any other objects. This makes them easy to test, and beautifully integrated with other objects managed by Spring.
  • Spring MVC web tiers are typically easier to test than Struts web tiers, due to the avoidance of forced concrete inheritance and explicit dependence of controllers on the dispatcher servlet.
  • The web tier becomes a thin layer on top of a business object layer. This encourages good practice. Struts and other dedicated web frameworks leave you on your own in implementing your business objects; Spring provides an integrated framework for all tiers of your application.
Benefits of Struts Over Spring
  • Struts is a aged frame work and lot of projects has been executed in struts whilst Spring MVC is just getting started.

B. Spring Vs JSF

  • Compared to JSF, Spring and JSF are not really in the same space. JSF is essentially a component model for rendering Web resources, whereas Spring is more a framework that aims to bring an overall structure and coherency to your application as a whole. So Spring actually can be used with JSF. Spring does provide its own MVC (Model-View Controller) Web framework.

Conclusion

When considering the web application it is better to go for the spring frame work if you don't have the problem with technical skills to learn this new technology and you can train or having experts to learn this quickly.

2. Rich Client Desktop Application

The following are considerable rich client frame works

  • Eclipse RCP
  • Spring RCP
  • Net Beans
2.1 Spring RCP Vs Eclipse RCP

Spring RCP is not the stable one and there is still work to be done , and still it is in alpha version , may be Spring RCP is having advantages in configuring actions in a xml file which is same like the web applications action configuration file , this is not the time to use Spring RCP at this time , we have to wait till it is getting stable and the release of stable version .

2.2 Eclipse RCP Vs NetBeans
  • Eclipse provides many, many third-party plug-ins. If this is its core strength, it is also its core weakness, Netbeans does not provide the support for the third - party plug ins.
  • One of the advantages of Eclipse up to now has been it's excellent Plug-in Development Environment
  • Eclipse RCP brings with it a set of ready-made components, design and methodologies to use.
  • Eclipse RCP has over custom design is that it is a standardized design which allows for a greater level of extensibility down the road.
  • Eclipse uses SWT, which is a native library with a different API than Swing, this is platform dependent, but works well with the windows platforms.
Conclusion

If your project is small and medium go for NetBeans, if your project is very big and need to add more enhancements in future go for eclipse RCP.

General Conclusion

There are lot of other frame works for web based and rich client applications. Each has their own advantages and disadvantages. It is also possible to mix frameworks e.g. we can use JSF in a presentation layer and controller as Spring and Data Access layer as Hibernate/ I-Batis.


Author :    
 
Arunachalam   R. Arunachalam
Program Manager

 
 
Top
Let Us Help You
A Fortune 50 bank reengine- ered its charge processing system, thereby reducing over $500 million in costs and increasing revenues by over $300 million.
Java : Comparison of Frameworks