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.
Following are few interesting articles you may like:
- Buzz about PHP Frameworks
- CakePHP an Open Source PHP Framework
- 8 Great CSS Frameworks
- symfony Open-Source PHP Web 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 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 – 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:
- A “request” handler provided by the application developer that is mapped to a standard URI.
- A “response” handler that transfers control to another resource which completes the response.
- A tag library that helps developers create interactive form-based applications with server pages.
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 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 – 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 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 – 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 – 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
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 – 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
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 – 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.NET – is 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.
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 – 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.
Gluon – comes from the billows of DePaul University designed for agile development and secure database-driven web-based applications.
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.
Ext JS – Originally built as an add-on to the YUI it can now extend Prototype and jQuery. Includes an impress interface.
jQuery – continues to rise in popularity due to its extensive API and active development. jQuery is a great balance of complexity and functionality.
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 – is a small library focused on interpreter independence and small core size.
MochiKit – A framework that has focus on scripting language standards including
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:
- A framework should fit in your particular design methodology.
- Documentation must be very good otherwise you will find it very difficult in middle stages looking for help everywhere.
- Check which one has the large community. Larger the community means more help available online.
- 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..