by http://webgeektutorials.blogspot.com

Wednesday, December 22, 2010

What is a Framework?


The framework is a re-usable design platform for software systems, which provides support for code libraries and various scripting languages. There are frameworks for PHP, Perl, Python, Ruby and many other scripting languages. All software frameworks are built with the idea of re-usability of the code and provide tools that help programmers develop and mount together the different components of a software project. Various parts of the framework may be exposed through an API.

 From my perspective, a framework does several things:

  • it makes it easier to work with complex technologies
  • it ties together a bunch of discrete objects/components into something more useful
  • it forces the team (or just me) to implement code in a way that promotes consistent coding, fewer bugs, and more flexible applications
  • everyone can easily test and debug the code, even code that they didn't write

Here are some lists of PHP & Java frameworks used ( From Web )

 Zend



The Zend framework is an open source, PHP5-based software framework aimed at providing useful and reusable solutions to common web development issues. The Zend framework is based on the MVC architecture which allows the developers to separate the different parts of the application in order to make development and maintenance easier. Focused on building modern PHP applications, the Zend framework provides a large collection of classes and connections to different popular web services.

 Symfony

Symfony is a web application framework for PHP5 projects. The Symfony PHP framework can be used on various operating systems including Linux, FreeBSD, Mac OS and Microsoft Windows. Using Symfony developers have the possibility to connect to almost every RDBMS (Relational Database Management System). Based on a Ruby-on-Rails-like MVC architecture, Symfony significantly reduces the PHP script execution time. Symfony features Ajax helpers, plugins, and an admin generator, which render the programming of complete applications an easy task. Developers can focus on applicative logic without losing time to write endless XML configuration files.

PHPDevShell

PHPDevShell is an open source PHP framework, aimed at developing web applications. Actually, PHPDevShell is not a common PHP framework, but rather an Application Management and Development GUI. Based on the Rapid Application Development architecture, PHPDevShell is fast, stable and very secure. PHPDevShell offers many features that a developer might require for any generic project, such as management of users, roles, groups, menus, crons, templates, hooks, logs, plugins, settings, plus various navigation, registration, theming, search filtering, caching and mailing options.
 
CodeIgniter

 CodeIgniter is an open source PHP framework which is compatible with standard hosting accounts and various PHP versions (including both PHP4 and PHP5) and configurations. Based on the MVC platform, it needs almost zero configuration and does not require you to use the command line. The CodeIgniter PHP framework also supports routing and scaffolding. This modern MVC framework makes the creation of PHP application simpler as everything is in plain sight and most of the work, such as the loading of the libraries, the extraction of data from the model, and the rendering of the view, is done in the controller. CodeIgniter also provides classes for FTP, email, file uploading, XMLRPC, zip encoding, and more.

 PRADO

 PRADO stands for PHP Rapid Application Development Object-oriented. It is an open source, PHP5-based programming framework designed for professional web applications development. PRADO is an MVC-based framework, which allows event-driven programming. Also, PRADO provides support for different databases and AJAX-enabled web components, as well as generic caching modules, customizable and localizable error/exception handling and selective output caching support.

CakePHP

 CakePHP represents a robust PHP development framework for handling every aspect of a web application, from the user’s initial request to the final rendering of a web page. Following the principles of MVC (model, view, controller), the framework allows programmers to easily customize and extend most aspects of the project application. CakePHP provides the customers with all the tools needed to get started coding quickly.

 Akelos

The Akelos framework is a PHP4 and PHP5-based MVC (Model View Controller) platform similar to Ruby on Rails. The main goal of the Akelos framework is to help programmers build multilingual database-based web applications according to the MVC pattern. It favors the convention over configuration paradigm, which lets the programmers write less code and leads to the creation of uniform, simpler-to-understand scripts. The Akelos PHP framework provides support for Ajax and runs smooth in a shared hosting environment.

 ZooP

The Akelos framework is a PHP4 and PHP5-based MVC (Model View Controller) platform similar to Ruby on Rails. The main goal of the Akelos framework is to help programmers build multilingual database-based web applications according to the MVC pattern. It favors the convention over configuration paradigm, which lets the programmers write less code and leads to the creation of uniform, simpler-to-understand scripts. The Akelos PHP framework provides support for Ajax and runs smooth in a shared hosting environment.

   

Java Server Faces – JSF
  • From Sun Microsystems
  • Based on Component Centric approach
  • Best Feature : The most using web framework. Because of its component architecture, the developer doesn’t need to mess with writing HTML, JavaScript etc to get rich “AJAX” type of functionality. It also takes care of state and event management. It has very less configuration too.
JavaServer Faces (JSF) is a new standard Java framework for building Web applications. It simplifies development by providing a component-centric approach to developing Java Web user interfaces. JavaServer Faces also appeals to a diverse audience of Java/Web developers. “Corporate developers” and Web designers will find that JSF development can be as simple as dragging and dropping user interface (UI) components onto a page, while “systems developers” will find that the rich and robust JSF API offers them unsurpassed power and programming flexibility. JSF also ensures that applications are well designed with greater maintainability by integrating the well established Model-View-Controller (MVC) design pattern into it’s architecture. Finally, since JSF is a Java standard developed through Java Community Process (JCP), development tools vendors are fully empowered to provide easy to use, visual, and productive develop environments for JavaServer Faces.

 GWT
  • From Google
  • Based on Widgets
  • Best Feature : Speed development. Easy to develop good, neat and “Browser independent” Ajax applications. Give more stress to pure browser independent .
Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don’t speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript’s lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.GWT lets you avoid many of these headaches while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML. 

Stripes
  • From Mc4j
  • Based on MVC architecture
  • Best Feature: No Configurations  . Annotation based programming makes coding more interesting and easy. 
Stripes is a presentation framework for building web applications using the latest Java technologies. The main driver behind Stripes is that web application development in Java is just too much work! It seems like every existing framework requires gobs of configuration.

Spring MVC
  • From SpringSource
  • Based on MVC architecture
  • Best Feature : Speed development. Now so many Annotations are also included (v2.5). Its from SpringSource and have a good support too. Being a person who likes and works with Spring framework.. I really encouraged by their good and really fast support.
Spring Web MVC is the own web framework of Spring Framework.The Spring MVC Framework’s architecture and design are in such a way that every piece of logic and functionality is highly configurable. Also Spring can integrate effortlessly with other popular Web Frameworks like Struts, WebWork, Java Server Faces and Tapestry. It means that you can even instruct Spring to use any one of the Web Frameworks. More than that Spring is not tightly coupled with Servlets or Jsp to render the View to the Clients. Integration with other View technologies like Velocity, Freemarker, Excel or Pdf is also possible.


Struts2
  • From Apache
  • Based on MVC architecture
  • Best Feature : No more ActionForms! Use any JavaBean to capture form input or put properties directly on an Action class. Use both binary and String properties! and its enhanced and rich tags
Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications. The framework is designed to streamline the full development cycle, from building, to deploying, to maintaining applications over time.

Wicket
  • From Apache
  • Based on Component Centric approach
  • Best Feature : Swing-like OO Component Model. This feature separates Wicket from all other frameworks 
With proper mark-up/logic separation, a POJO data model, and a refreshing lack of XML, Apache Wicket makes developing web-apps simple and enjoyable again. Swap the boilerplate, complex debugging and brittle code for powerful, reusable components written with plain Java and HTML.

Please put your Suggestions here and the frameworks which you are used . That will be more helpful to all of us to get the real idea.

No comments:

Post a Comment