Web Applications are just as important as any other part of a system and should be designed, implemented and tested with same care. With the ever-growing complexity of Web applications has arisen the need to have frameworks in place that can increase the efficiency of Java-based Web development.
There are number of web frameworks available to make it easier for developers to build web applications, which provides unified infrastructure upon which internet application can be based. Framework provides the solid foundation and allows developers to invest all their time and effort on building the business application rather than on the infrastructure.
I am studying about framework, why is so important, its benefits and problems of using it - by focusing mainly on ORACLE's Application Development Framework (ADF).
Oracle Application Development Framework is a comprehensive productivity layer for J2EE developers which simplify building applications and accelerates development with ready-to-use J2EE Design pattern implementations and metadata-driven components that otherwise needs to code, test, and debug by hand.
One very important feature of ADF is, The Apache Jakarta Struts controller (an open source framework controller) which is the de facto standard controller for Java-based Web systems. Oracle ADF uses the Struts controller to manage the flow of Web applications.
I will really appreciate for all your comments on how using framework can be better approach towards web development.
Looks like an examination question to me :-). Let me see how much I score?
(1) Frameworks have design patterns weaved in - so you do not need to worry about which design pattern to use where, is my design right and so on and so forth. This is the primary advantage I would say - you can have a team of newbie's who just dont know how to apply design patterns - ask them to just use a well designed framework and still produce nice applications with well - used design patterns and solid design.
(2) Frameworks allow plug n play of components
(3) Frameworks promote reuse, but as I always like to say - you use first , before you reuse :-)
(4) Frameworks enable IoC, Inversion of control - which is a big plus in many cases.
(5) Frameworks provide extensibility
(6) Cost of learning a framework is much lesser than the cost of learning to build the entire architecture embedded inside a framework - so you get all those for free - a nice architecture and design - you just code to the framework. That is saving two phases in a Software DEV lifecycle - in ideal case :-)
As an FYI on Oracle's ADF. Today it currently uses Struts for the controller and primarily JSTL/EL or UIX as it's presentation technology and will of course continue to support these technologies.
But one of the key things being added to ADF is it's upcoming support for JSF. JSF will become the main presentation technology for ADF. The cool thing is that Oracle's originally proprietary UIX framework is becoming a standard JSF UI component technology - ADF Faces. You can already download it from OTN today.
This means that with Oracle ADF you'll be able to use the ADF Faces components in addition to any other JSF compliant component technology.
In an ideal situation, independent JSF component communites will begin to flourish and develop many useful libraries of rich/intelligent UI components such as what you see today with .Net. If this happens it would definitely improve the overall power, flexibility not to mention ease of J2EE Web development.