Most Popular Web Application Frameworks

A software framework provides “the skeleton of an application that can be customized by an application developer” Like software libraries, software frameworks aid the software developer by containing source code that solves problems for a given domain and provides a simple API. However, while a code library acts like a servant to other programs, software frameworks reverse the master/servant relationship. Software frameworks often help expedite the development process by providing necessary functionality “out of the box”. Such things include user/role management, data access, caching, and much more. These frameworks aid in helping you focus on the more important details of design and even project management by alleviating the need to reinvent the wheel for common development needs.

There are frameworks that cover specific areas of application development such as JavaScript/CSS frameworks that target the presentation (view) layer of the application, and there are others that handle more of the dynamic aspects of the application. Some include both!

In the following we present an overview of most popular web application frameworks; we cover both server-side (PHP, Java, C#, Ruby) and client-side approaches (JavaScript, CSS).

Following are few interesting articles you may like:

Java Frameworks

gwt

The Google Web Toolkit comes from the grand-daddy of all Java development shops-Google. They have released their framework as open-source software. Functionality includes extensive interaction with Ajax, and you can simply write your front end in Java and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML. Also includes interaction with the newly released Google Gears for creating applications available offline.

spring-java-framework

Spring Framework is a MVC Java framework that can run on any J2EE server. The framework has a multi-layered architecture with an extensive API and supporting documentation.

Apache Cocoon

Apache Cocoon framework is a Java framework built around the concepts of separation of concerns and component-based development. There is a strong emphasis on working with XML and serializing into other portable formats.

JSF – JavaServer Faces technology simplifies building user interfaces for JavaServer applications. Developers of various skill levels can quickly build web applications by: assembling reusable UI components in a page; connecting these components to an application data source; and wiring client-generated events to server-side event handlers.

Aranea – a MVC framework that includes a web integration layer.

AppFuse Framework

AppFuse – a framework that is a self-described “project skeleton” similar to new projects created in an IDE.

Struts – Apache Struts is a free open-source framework for creating Java web applications. The framework provides three key components:

  1. A “request” handler provided by the application developer that is mapped to a standard URI.
  2. A “response” handler that transfers control to another resource which completes the response.
  3. A tag library that helps developers create interactive form-based applications with server pages.

PHP Frameworks

Zend

The Zend Framework is the self-proclaimed “leading open-source PHP framework.” Services included in the API include Ajax (JSON), search, syndication, web services, and a fully object oriented PHP class library.

cakePHP

CakePHP is a PHP framework that works on the MVC architecture and offers caching, application scaffolding, validation of model data and even a presentation API. One of the most popular PHP frameworks.

Symfony Framework

Symfony – Symfony is aimed at building robust applications in an enterprise context. This means that you have full control over the configuration: from the directory structure to the foreign libraries, almost everything can be customized. To match your enterprise’s development guidelines, symfony is bundled with additional tools helping you to test, debug and document your project.< CodeIgniter

CodeIgniter is a PHP framework that also uses the MVC platform, has classes for data access, e-mail, FTP, and XML-RPC. Also, CodeIgniter has an exciting community and thorough documentation to get you started.

Akelos Framework

Akelos – The Akelos PHP Framework is a web application development platform based on the MVC (Model View Controller) design pattern.

Agavi – Agavi is a general purpose application framework built around the Model-View-Controller architecture originally based on the Mojavi 3 Web application framework written by Sean Kerr. It provides a rich toolset that solves most of the routine problems in Web application development.

Prado Framework
Prado – A component framework for PHP5 that has similar event based web apps similar to ASP.NET.

BareBones – a one-file, no-configuration, MVC framework for PHP5.


Frameworks for Ruby

Rails

Ruby on Rails – It lets you write beautiful code by favoring convention over configuration. Rails has taken the programming world by storm by popularizing the MVC approach to application development.

Nitro Framework

Nitro – a Ruby framework, but at the current time it lacks substantial documentation for their API.

Camping – is a micro-framework weighing 4Kb.

Ramaze – has principles on keeping things simple, modular design, and minimal dependencies with an impressive source browser for documentation.


C Sharp (C#) Frameworks

.NET
The .NET Framework – is an application framework taking application development by storm with its impressive collection of functionality. The great thing about the .NET framework is that you can build it around the MVC framework if you wish (there is an official Microsoft implementation coming out), or you can create your own architecture.The .NET framework is available out of the box for C# and Visual Basic, but there are extensions available to allow languages like PHP to access and utilize the framework. Look out for some new features including the Windows Workflow Foundation for building powerful business solutions and Silverlight which is set up to be a direct competitor to Flash.

MonoRail

MonoRail – is a MVC framework where the controllers handle solely application flow, the models represent the data, and the view is just about presentation logic. If your project depends too much on third party Web controls or if your IT team skill set is totally centered around WebForms, MonoRail would not be a good choice.

AForge.NETis a C# framework designed for developers and researchers in the fields of Computer Vision and Artificial Intelligence – image processing, neural networks, genetic algorithms, machine learning, etc.


Python Frameworks

Django

Django – is the ever popular Python framework that has an impressive template system, caching, dynamic database access API, and more. Many high-profile sites like The Washington Post and Pownce are using django for their development purposes.

Pylons Framework
Pylons – Pylons combines the very best ideas from the worlds of Ruby, Python and Perl, providing a structured but extremely flexible Python web framework. It’s also one of the first projects to leverage the emerging WSGI standard, which allows extensive re-use and flexibility — but only if you need it. Out of the box, Pylons aims to make web development fast, flexible and easy.

Turbo Gears
TurboGears – is a framework that includes a templating system, access the database with obscuring the database, and it uses MochiKit to provide a JavaScript API.

Gluon – comes from the billows of DePaul University designed for agile development and secure database-driven web-based applications.


Client-Side Frameworks

Client-side frameworks are frameworks that specifically target the user interface/view/presentation layer. Recently both JavaScript and CSS frameworks have started to enter the mainstream.

While these frameworks might provide the Ajax-functionality, they are not meant to actually complete the data transaction and manipulation. A client-side framework is usually a smaller subset in a larger application framework.


JavaScript Frameworks

Prototype – is a JavaScript framework that serves as a foundation for other JavaScript frameworks. Don’t be fooled however, as Prototype can stand on its own.

ExtJS

Ext JS – Originally built as an add-on to the YUI it can now extend Prototype and jQuery. Includes an impress interface.


Mootools – is a compact, modular, object-oriented JavaScript framework with impressive effects and Ajax handling. The framework is for advanced users as the learning curve is rather steep.

jQuery
jQuery – continues to rise in popularity due to its extensive API and active development. jQuery is a great balance of complexity and functionality.

Adobe Spry – The Spry framework for Ajax is a JavaScript library that provides easy-to-use yet powerful Ajax functionality that allows designers to build pages that provide a richer experience for their users. It is designed to take the complexity out of Ajax and allow designers to easily create Web 2.0 pages.

Script.aculo.us

script.aculo.us – is built on the Prototype framework and has found its way into many high-profile sites including Digg, Apple, and Basecamp. The documentation is clear, and has an easy learning curve. However, compared to other JavaScript frameworks it is larger in size.

ASP.NET

ASP.NET AJAX – ASP.NET AJAX is a free framework for quickly creating efficient and interactive Web applications that work across all popular browsers. ASP.NET AJAX is built-into ASP.NET 3.5. It is also available as a separate download for ASP.NET 2.0. There are controls that you can simply drag-and-drop an update panel on an ASPX page and process Ajax!

Telerik Rad Controls – Built on top of Microsoft ASP.NET AJAX framework. The most comprehensive UI suite with over 20 controls and Unique features and performance optimizations. Wide cross-browser compatibility making it an excellent addition to your web application.

Dojo Toolkit
The Yahoo! User Interface Library – Yahoo! released its impressed JavaScript library with incredible amounts of documentation.

Dojo – is a small library focused on interpreter independence and small core size.

MochiKit – A framework that has focus on scripting language standards includingMochikit


CSS Frameworks


Yet Another Multicolumn Layout – (YAML) is a XHTML/CSS framework for created modern and flexible floated layouts. It even includes a generator!


Blueprint – is one of the more mature CSS frameworks with a focus on layout, typography, and even including a print stylesheet.

Content with Style – a CSS framework to aid in layouts and basic CSS design elements, but its development has slowed down.

Yahoo! UI Library: Grids CSS – Yahoo!’s CSS library for layouts.

I would recommend to keep the following in mind before you pick any one of it in your web application:

  1. A framework should fit in your particular design methodology.
  2. Documentation must be very good otherwise you will find it very difficult in middle stages looking for help everywhere.
  3. Check which one has the large community. Larger the community means more help available online.
  4. Search for developer experiences for any particular frameworks.

I would love to hear your thoughts on this. Please post your comments below. If you liked this article please subscribe to our RSS for more..

0 I like it
0 I don't like it