Share on Facebook Share on Twitter Email
Answers.com

Comparison of web application frameworks

 
Wikipedia: Comparison of web application frameworks

This is a comparison of notable web application frameworks.

Contents

General

Basic information about each framework.

Perl

Project Current Stable Version License
Catalyst 5.80007 Artistic / GPL
Interchange 5.6.1 GPL
Mason Artistic / GPL
Maypole Artistic / GPL

PHP

Project Current Stable Version License
Atomik Framework 0.9 MIT
CakePHP 1.2.5 MIT
CodeIgniter 1.7.2 BSD-style
Drupal 6.14 GPL
Joomla 1.5.15 GPL
Helix 1.0 GPL
Horde 3.2 LGPL
eZ Components 2008.2.1 BSD
FUSE 1.2 MIT
Kohana 2.3.4 BSD
KumbiaPHP 0.5 BSD / GPL
LISA 0.2.0 GPL
Mambo 4.6.5 GPL
PEAR 1.4.0 PHP / Various
PHP For Applications 3.2.2 LGPL
PHP ActiveRecord 3.2.2 MIT
PHP Work 1.2 MIT
Qcodo 0.4.2 MIT
QCubed 1.1 MIT
Seagull 0.6.6 BSD
SilverStripe (Sapphire) 2.3.2 BSD
SPIP 2.0.9 GPL
Symfony 1.2.9 MIT
Zend 1.9.2 BSD
Project Current Stable Version License

Java

Project Current Stable Version License
Apache Click 2.1.0 Apache
Apache Cocoon 2.2.0 Apache
Apache Struts 2.1.8 Apache
Apache Wicket 1.4.1 Apache
AppFuse 2.0.2 Apache
Aranea 1.0.10 Apache
Eclipse RAP 1.2.0 Eclipse Public License
Google Web Toolkit 1.7 Apache
Hamlets 1.4 BSD
ItsNat AGPL / Proprietary
IT Mill Toolkit 5.4.0 Apache
JavaServer Faces 1.2
JBoss Seam 2.2.0 GA LGPL
ManyDesigns Portofino 2.0.16 GPL
OpenLaszlo 4.1 Common Public License
OpenXava 3.1 LGPL
pirka 1.0.4
RIFE 1.6.2 Apache
Shale 1.0.4 Apache
Sling Apache 2.0
SmartClient LGPL
Sofia 2.3 GPL
Spring 2.5.6 Apache
Stripes 1.5.1 LGPL
Tapestry 4.1.6/5.1.0.5 Apache
ThinWire 1.2 GPL
Vaadin 6.1.4 Apache
WebObjects 5.4.3 Proprietary
WebWork 2.2.6 Apache
ZK 5.0 RC LGPL
ztemplates 0.9.9.6 Apache
Project Current Stable Version License

Python

Project Current Stable Version License
CherryPy 3.1 BSD
CubicWeb 3.3.3 LGPL
Django 1.1 BSD
Grok 0.14 ZPL
Pyjamas 0.6 Apache
Pylons 0.9.7 BSD
TurboGears 2.0.1 MIT / LGPL
web2py 1.66.2 GPLv2 with a commercial exception
werkzeug 0.5.1 BSD
Zope 2 2.10 ZPL
Zope 3 3.3 ZPL
Project Current Stable Version License

Other

Project Current Stable Version Language License
AIDA/Web 5.6 Smalltalk MIT
ASP.NET MVC 1.0 ASP.NET Ms-PL
Axiom Stack 3.2.9 Javascript,Java AGPL / Proprietary
BFC 7.40 ASP.NET Proprietary
Camping 1.5 Ruby MIT
ColdFusion on Wheels 0.9.4 Coldfusion Apache License
ColdSpring ColdFusion
Csla 3.7.0 C#, VB.NET Proprietary; Free to use for non-commercial and commercial applications.
CppCMS 0.0.4 C++ LGPL
DotNetNuke 4.8.0 ASP.NET BSD
Flex 3.0 ActionScript, MXML MPL
Fusebox 5.1 ColdFusion Apache
Grails 1.1 Groovy (JVM) Apache
Helma 1.6.3 Javascript Helma License version 2.0
Kepler 1.1 Lua MIT
Lift 1.0 Scala (JVM) Apache
Mach-II 1.6 CFML Apache
Merb 1.0 RC2 Ruby MIT
Midgard 8.09 LTS PHP LGPL
Model-Glue 2.0 ColdFusion Apache
MonoRail 1.0 RC3 ASP.NET Apache
Morfik 1.3.1.18 Basic,Pascal,Java,C# Proprietary
Nitro 0.41 Ruby BSD
Obyx 1.0 RC3 C++ GPL
onTap 3.2 ColdFusion BSD
OpenACS 5.4.3 Tcl GPL
Orbit 2.0.1 Lua MIT
Ruby on Rails 2.3.4 Ruby MIT / Ruby
Seaside 2.8 Smalltalk MIT
Sinatra 0.10.1 Ruby MIT
Sproutcore 1.0 BETA Javascript MIT
Vici MVC 2.0.1 .NET MIT
Wavemaker 4.0.2 JavaScript AGPL
Wt 2.99.5 C++ GPL
Project Current Stable Version Language License

Comparison of features


Project Language Ajax MVC framework MVC Push/Pull i18n & l10n? ORM Testing framework(s) DB migration framework(s) Security Framework(s) Template Framework(s) Caching Framework(s) Form Validation Framework(s)
AIDA/Web Smalltalk Prototype, script.aculo.us Yes Gemstone/S, GLORP, etc. SUnit Yes
Agavi PHP Toolkit-independent Yes Push Yes Doctrine & Propel integration PHPUnit Yes Any template engine supported Yes Yes
Akelos PHP Prototype, script.aculo.us Active record pattern Push Yes Active record pattern Unit Tests Yes Yes Yes Yes
Apache Click Java Yes Yes Pull Yes Hibernate and Cayenne Velocity and JSP Built-in validation
Apache Struts Java Yes Yes Push & Pull Yes Yes Unit Tests Yes Yes
Apache Wicket Java Yes, extensions for YUI, ExtJS and more Modular event driven Pull Yes Yes, thanks to extensions Yes, mock objects, unit and integration tests through an extension Yes Yes Yes Yes
Aranea Java Yes Pull Yes Yes mapping-applications using contributions from users to advantage
ASP.NET MVC ASP.NET Yes Yes Push ORM-independent Unit Tests ASP.NET Forms Auth pluggable (default is WebForms) Yes Yes (client-side via plugins)
BFC ASP.NET Yes Not mandatory Push & Pull Yes through active data dictionary Unit Tests SQL Server, Oracle, DB2, Sybase, MySQL security groups and rules Yes metadata and result sets data dictionary-driven
CakePHP PHP Prototype/script.aculo.us, jQuery/jQuery UI, MooTools/MooTools more Active record pattern (CakePHP 1.x), Data Mapper Pattern (CakePHP 2.x) Push Yes Active record pattern (CakePHP 1.x), Data Mapper Pattern (CakePHP 2.x) Unit Tests, Object Mocking, Fixtures, Code Coverage, Memory Analysis with SimpleTest and XDebug Yes ACL-based Themes, Layouts, Views and Elements Memcache, Xcache, APC, File Validation and Security
Camping Ruby No Yes Push No Active record pattern via Mosquito Yes No Yes No No
Catalyst Perl Toolkit-independent (REST & JSON support, specific plugins for Prototype etc.) Yes Push in its most common usage Yes DBIx::Class, Rose::DB, etc. [1] ACL-based, external engines, etc. Template::Toolkit, HTML::Template, HTML::Mason, etc. Cache, Memcached, shared memory, etc. HTML::FormFu, HTML::FormValidator, etc.
CherryPy Python Yes No, because unittest and doctest are standard Python modules CherryTemplate Yes
CodeIgniter PHP framework extension Modified active record pattern Push Yes framework extension Unit Tests No Yes Yes Yes Yes
Project Language Ajax MVC framework MVC Push/Pull i18n & l10n? ORM Testing framework(s) DB migration framework(s) Security Framework(s) Template Framework(s) Caching Framework(s) Form Validation Framework(s)
CppCMS C++ Yes Push Yes Limited, SQL library No No No Yes Yes Yes
Django Python Yes Yes Push Yes Django ORM Yes No (plugin exists, might be merged into trunk when more stable and feature complete) ACL-based Yes Yes Yes
DooPHP PHP Yes Yes Push Yes Yes Unit Tests No ACL-based Yes Frontend, Disk Cache, PHP vars, Memcached, Apc, XCache, EAccelerator Form & Models, Auto code generation
DotNetNuke ASP.NET Yes No Pull Yes SubSonic, NHibernate Unit Tests Yes ACL-based (OpenID, LiveID, Active Directory, LDAP, CardSpace, ASP.NET Forms Auth) Yes Pluggable ASP.NET Validators, built-in API
Drupal PHP jQuery Yes[2][3] Yes[4][5] multiple (CCK, QCubed)[6] simpletest, devel Schema API OG, Node Privacy By Role, ACL, Taxonomy Access List PHPTemplate, Smarty, XTemplate, others builtin, memcache, APC Form API
eZ Components PHP No Yes Yes Yes Yes Yes Yes Yes Yes Yes
Flex Actionscript, MXML Not by name but similar technology [7] FlexUnit
FUSE PHP Yes Yes Push custom Yes SimpleTest Yes Yes Yes Yes
Fusebox ColdFusion, PHP Yes Not mandatory Push No, custom via lexicons for Transfer and Reactor CFUnit, CFCUnit multiple plugins available via lexicon for ColdSpring via qforms or built in cf validation
Google Web Toolkit Java, Javascript Yes Yes  ???, no direct data access JUnit (too early), jsUnit (too difficult), Selenium (best) No
Grails Groovy Yes Active record pattern Push Yes GORM, Hibernate Unit Test,Integration test,Functional test multiple plugins(autobase, dbmigrate, etc.) Yes Yes Yes Yes
Grok Python Yes Yes Pull Yes OODBMS called ZODB, SQLAlchemy, Storm Unit Tests, Functional Tests ZODB Generations Yes Yes Yes Yes
ItsNat Java Yes event driven Push using Java i18n external and built-in pluggable pure HTML/SVG page caching normal Java
IT Mill Toolkit Java GWT Pull Yes Yes JUnit, IT Mill Testing Tools Yes Yes
JBoss Seam Java Yes Pull Yes JPA, Hibernate JUnit, TestNG JAAS integration Facelets Hibernate Validator
Kohana PHP Yes Push Yes framework extension unit_test module File and SQLite Driver based caches Yes
Lift Scala Yes Yes Pull Yes Yes Yes Yes Yes Yes Yes
Mach-II CFML via CF or any JavaScript Library Yes Push via custom plugin Transfer, Reactor, Hibernate CFUnit, CFCUnit via plugin ColdSpring
Midgard PHP jQuery MidCOM Pull Yes Midgard PHPUnit datagard ACL-based PHP and TAL memcache Yes
MonoRail ASP.NET Prototype Active record pattern Push Yes Active record pattern Unit Tests via ASP.NET Forms Authentication Yes Yes Yes
Project Language Ajax MVC framework MVC Push/Pull i18n & l10n? ORM Testing framework(s) DB migration framework(s) Security Framework(s) Template Framework(s) Caching Framework(s) Form Validation Framework(s)
Nitro Ruby jQuery Yes Push Yes Og RSpec (automatic) Yes Yes Yes Yes
O2 CMS Perl Yes Yes Yes Yes Yes Unit Tests Yes Yes Yes Yes Yes
Obyx C++ Yes Yes Push - atomic composition UTF-8 XML Objects and r/w using extended Xpath2 Yes Yes Yes Yes Yes Yes
onTap ColdFusion native features + Prototype + script.aculo.us optional Push Yes DataFaucet [3] CFUnit, CFCUnit, MXUnit DataFaucet has potential - supports multiple db platforms Members onTap Plugin very extensible Yes client + server, extensible
OpenACS TCL Yes Yes Yes Yes Yes Yes Yes Yes Yes Yes
OpenXava Java Yes Model Driven Yes JPA, Hibernate and EJB2 CMP JUnit Hibernate tools uses JSR-168 portal security UI is automatically generated uses portal and JPA caching Yes
Orinoco PHP Toolkit-independent Yes Push & Pull Yes
PEAR PHP
Pyjamas Python, Javascript Yes Use PureMVC python version (compiled to javascript) Yes ???, no direct data access No
Pylons Python helpers for Prototype and script.aculo.us Yes Push Yes SQLObject, SQLAlchemy via nose pluggable (mako, genshi, myghty, kid, etc.) Beaker cache (memory, memcached, file, databases) preferred formencode
Qcodo PHP 5 built-in QControl Push Yes Code Generation-based Inherent QForm and QControl Yes Yes
Rapyd Framework PHP 5 Yes Push Yes Active record pattern Yes Yes Yes
RIFE Java DWR (Java) Yes Push & Pull Yes Yes Out of container testing Yes Yes Integration with Terracotta Yes
Ruby on Rails Ruby Prototype, script.aculo.us ActiveRecord, Action Pack Push Localization Plug-in ActiveRecord Unit Tests, Functional Tests and Integration Tests Yes Plug-in Yes Yes Yes
Samstyle PHP jQuery, etc. Yes[8] Pull Yes based on PHP's OOP using header filter and validation Template management system with blocking and cutomized HTML tags Caching functions included (file) Built-in Session and form verification
Seaside Smalltalk Prototype, script.aculo.us, etc. Yes GLORP, Gemstone/S, etc. Unit Tests, SUnit No, intentionally Magritte
SilverStripe (Sapphire) PHP 5 (>=5.2) Prototype, script.aculo.us Active record pattern Push & Pull Yes Active record pattern Unit Tests (Automatic) incl. OpenID (object oriented) Yes Yes
Sinatra Ruby No Yes Push No ORM-independent Rack::test Yes No Yes through a Rack middleware No
Sling Java Yes Yes Push & Pull Uses JCR content repository Yes Yes Yes
Spring Java Yes Yes Hibernate, iBatis, etc Yes, mock objects & unit tests Spring Security (formerly Acegi) Commons Tiles, Velocity, etc. ehcache etc. Commons Validator
Project Language Ajax MVC framework MVC Push/Pull i18n & l10n? ORM Testing framework(s) DB migration framework(s) Security Framework(s) Template Framework(s) Caching Framework(s) Form Validation Framework(s)
Sproutcore Javascript Yes
Stripes Java Yes Yes Push Yes Hibernate Yes framework extension Yes Yes
Symfony PHP 5 Prototype, script.aculo.us, Unobtrusive Ajax with UJS and PJS plugins Yes Push Yes Propel, Doctrine Yes Plugin exists (alpha code, though) plugin Yes Yes Yes
Symphony CMS PHP 5 jQuery Yes Pull Yes Export Ensemble Extension Member Extension or Front End Authentication Extension Yes CacheLite Extension Yes
Tapestry Java Yes Yes Pull Yes integrated with Hibernate (tapestry-hibernate module) tapestry5-acegi library Yes built-in validation system
Tigermouse PHP 5 it is mostly Ajax-only framework Active record pattern Push Yes Active record pattern No No, Multiple RBMSes and access libraries supported through intercepting filters (ACL-based, customizable) Yes No Yes
TurboGears Python Toolkit-independent, provides support via JSON Yes Push Yes SQLAlchemy (default), SQLObject nose No Repoze.what & Repoze.who Genshi, additional plugins available Support for memcached, and any WSGI compliant system ToscaWidgets, utilizing FormEncode
Vaadin Java GWT Pull Yes Yes Yes Yes Yes
Vork PHP 5 Toolkit-independent Yes Push (option to use Pull instead or in-combination) UTF-8 Universal DB objects without ORM abstraction layers Yes PHP with HTML helpers Unified server-side & client-side validation
Wavemaker JavaScript (client), Java (server) Dojo Toolkit Yes Push Dojo Toolkit Hibernate (Java) JUnit Hibernate (Java) Spring Security, Acegi, Role-based access control Dojo Toolkit Dojo Toolkit Regular expression, schema-driven validation
web2py Python Yes Yes Push Yes Yes Yes Yes Yes Yes Yes Yes
WebObjects Java Yes Yes Push & Pull Yes EOF WOUnit (JUnit), TestNG, Selenium in Project WONDER Yes Yes Yes
Wigbi PHP, JavaScript Wigbi AJAX Engine, jQuery, MooTools No No Custom Wigbi ORM Plug-in Plug-in Plug-in
Wt C++ Yes Yes Push & Pull Yes No Yes No No Yes
ZK Java, ZUML Yes Yes Yes any J2EE ORM framework
Zend PHP 5 (>=5.2.4) Toolkit-independent Yes Push & Pull Yes Table and Row data gateway Unit Tests Yes ACL-based Yes Yes Yes
Zope 2 Python Yes Pull Yes native OODBMS called ZODB, SQLObject, SQLAlchemy Unit Tests ACL-based Yes Yes CMFFormController
Zope 3 Python via add-on products, e.g. Plone w/KSS Yes Pull Yes native OODBMS called ZODB, SQLObject, SQLAlchemy Unit Tests, Functional Tests ZODB generations ACL-based Yes Yes Yes
ztemplates Java JDK 1.5 or newer integrates YUI, Google etc. with annotations Yes Push, multiple actions per URL standard Java use any J2EE ORM framework Unit Tests annotation based Velocity, FreeMarker, JSP, others pluggable AJAX validation on server and form state update (YUI, JSON)
Project Language Ajax MVC framework MVC Push/Pull i18n & l10n? ORM Testing framework(s) DB migration framework(s) Security Framework(s) Template Framework(s) Caching Framework(s) Form Validation Framework(s)

References

  1. ^ Catalyst::Manual::Tutorial::Testing - Catalyst Tutorial - Part 7: Testing - search.cpan.org
  2. ^ Drupal as an MVC framework
  3. ^ MVC vs. PAC
  4. ^ [1]
  5. ^ [2]
  6. ^ QDrupal
  7. ^ URLRequest
  8. ^ Samstyle MVC Modelling

See also


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Comparison of web application frameworks" Read more