This is a comparison of notable web application frameworks.
General
Basic information about each framework.
Perl
PHP
Java
Python
Ruby
Project
|
Current Stable Version
|
Release Date
|
License
|
Summary
|
ColdFusion on Wheels
|
1.0
|
24 November 2009
|
Apache v2
|
A full-stack convention-based MVC framework, inspired by Rails.
|
ColdSpring
|
1.2
|
12 September 2008
|
Apache v2
|
Dependency Injection and AOP framwork
|
Fusebox
|
5.5.1
|
8 March 2008
|
Apache
|
The oldest CFML framework, supports MVC or not, convention or XML configuration.
|
Mach-II
|
1.6.1
|
29 March 2009
|
Apache
|
An Object-Oriented MVC framework
|
Model-Glue
|
3.1.185
|
11 August 2009
|
Apache
|
An Object-Oriented MVC implicit invocation, for web and RIA
|
onTap
|
3.3
|
7 November 2009
|
BSD
|
A full-stack MVC framework with integrated ORM
|
ASP.NET
Other
Comparison of Features
ASP.NET
Project
|
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)
|
ASP.NET MVC
|
Yes
|
Yes
|
Push
|
|
ORM-independent
|
Unit Tests
|
|
ASP.NET Forms Auth
|
pluggable (default is WebForms)
|
Yes
|
Yes (client-side via plugins)
|
BFC
|
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
|
DotNetNuke
|
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
|
MonoRail
|
Prototype
|
Active record pattern
|
Push
|
Yes
|
Active record pattern
|
Unit Tests
|
|
via ASP.NET Forms Authentication
|
Yes
|
Yes
|
Yes
|
Vici MVC
|
Yes
|
Yes
|
Push
|
Yes
|
ORM-independent
|
Unit Tests
|
|
via ASP.NET Forms Authentication
|
Yes
|
No
|
Yes
|
Project
|
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)
|
C++
Project
|
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
|
|
Yes
|
Push
|
Yes
|
Limited, SQL library
|
No
|
No
|
No
|
Yes
|
Yes
|
Yes
|
Wt
|
Yes
|
Yes
|
Push & Pull
|
Yes
|
No
|
|
|
Yes
|
No
|
No
|
Yes
|
Project
|
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)
|
CFML
Java
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)
|
Apache Click
|
Java
|
Yes
|
Page Oriented
|
Pull
|
Yes
|
Hibernate and Cayenne
|
Yes
|
|
Template:Pluggable
|
Velocity and JSP
|
Template:Cached Templates
|
Built-in validation
|
Sling
|
Java
|
Yes
|
Yes
|
Push & Pull
|
|
Uses JCR content repository
|
|
|
Yes
|
Yes
|
Yes
|
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
|
|
|
IT Mill Toolkit
|
Java
|
GWT
|
|
Pull
|
Yes
|
Yes
|
JUnit, IT Mill Testing Tools
|
|
|
Yes
|
|
Yes
|
ItsNat
|
Java
|
Yes
|
event driven
|
Push
|
using Java i18n
|
|
external and built-in
|
|
pluggable
|
pure HTML/SVG
|
page caching
|
normal Java
|
JBoss Seam
|
Java
|
Yes
|
Yes
|
Pull
|
Yes
|
JPA, Hibernate
|
JUnit, TestNG
|
|
JAAS integration, Drools, Hibernate Filters, OpenID, CAPTCHA
|
Facelets
|
JbossCache, EHCache
|
Hibernate Validator
|
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
|
RIFE
|
Java
|
DWR (Java)
|
Yes
|
Push & Pull
|
Yes
|
Yes
|
Out of container testing
|
|
Yes
|
Yes
|
Integration with Terracotta
|
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
|
Stripes
|
Java
|
Yes
|
Yes
|
Push
|
Yes
|
Hibernate
|
Yes
|
|
framework extension
|
Yes
|
|
Yes
|
Tapestry
|
Java
|
Yes
|
Yes
|
Pull
|
Yes
|
integrated with Hibernate (tapestry-hibernate module)
|
|
|
tapestry5-acegi library
|
Yes
|
|
built-in validation system
|
Vaadin
|
Java
|
GWT
|
|
Pull
|
Yes
|
Yes
|
Yes
|
|
|
Yes
|
|
Yes
|
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
|
WebObjects
|
Java
|
Yes
|
Yes
|
Push & Pull
|
Yes
|
EOF
|
WOUnit (JUnit), TestNG, Selenium
|
in Project WONDER
|
|
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)
|
Google Web Toolkit
|
Java, Javascript
|
Yes
|
|
|
Yes
|
???, no direct data access
|
JUnit (too early), jsUnit (too difficult), Selenium (best)
|
No
|
|
|
|
|
ZK
|
Java, ZUML
|
Yes
|
Yes
|
|
Yes
|
any J2EE ORM framework
|
|
|
|
|
|
|
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)
|
PHP
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)
|
AgilePHP
|
PHP
|
Toolkit-independent
|
Yes
|
Push,Pull,Component-based
|
Yes
|
Yes
|
PHPUnit
|
|
Yes
|
Any template engine supported
|
Yes
|
Yes
|
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
|
CodeIgniter
|
PHP
|
framework extension
|
Modified active record pattern
|
Push
|
Yes
|
framework extension
|
Unit Tests
|
No
|
Yes
|
Yes
|
Yes
|
Yes
|
Drupal
|
PHP
|
jQuery
|
Yes[1][2]
|
|
Yes[3][4]
|
multiple (CCK, QCubed)[5]
|
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
|
FUSE
|
PHP
|
Yes
|
Yes
|
Push
|
custom
|
Yes
|
SimpleTest
|
|
Yes
|
Yes
|
Yes
|
Yes
|
Fusebox
|
PHP
|
Yes
|
Not mandatory
|
Push
|
No, custom
|
|
|
|
multiple plugins available
|
|
|
via qforms or built in PHP validation
|
Kohana
|
PHP
|
|
Yes
|
Push
|
Yes
|
framework extension
|
unit_test module
|
|
|
Yes
|
File and SQLite Driver based caches
|
Yes
|
Midgard
|
PHP
|
jQuery
|
MidCOM
|
Pull
|
Yes
|
Midgard
|
PHPUnit
|
datagard
|
ACL-based
|
PHP and TAL
|
memcache
|
Yes
|
PEAR
|
PHP
|
|
|
|
|
|
|
|
|
|
|
|
Qcodo
|
PHP 5
|
built-in
|
QControl
|
Push
|
Yes
|
Code Generation-based
|
|
Inherent
|
|
QForm and QControl
|
Yes
|
Yes
|
Swiftlet
|
PHP 5 (>=5.1)
|
jQuery
|
Yes
|
Push
|
Yes
|
|
Yes
|
|
Yes
|
Yes
|
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
|
Zend Framework
|
PHP 5 (>=5.2.4)
|
Toolkit-independent
|
Yes
|
Push & Pull
|
Yes
|
Table and Row data gateway
|
Unit Tests
|
Yes
|
ACL-based
|
Yes
|
Yes
|
Yes
|
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
|
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)
|
Python
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)
|
CherryPy
|
Python
|
|
|
|
Yes
|
|
No, because unittest and doctest are standard Python modules
|
|
|
CherryTemplate
|
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
|
Grok
|
Python
|
Yes
|
Yes
|
Pull
|
Yes
|
OODBMS called ZODB, SQLAlchemy, Storm
|
Unit Tests, Functional Tests
|
ZODB Generations
|
Yes
|
Yes
|
Yes
|
Yes
|
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
|
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
|
web2py
|
Python
|
Yes
|
Yes
|
Push
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
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
|
Zope 2
|
Python
|
|
Yes
|
Pull
|
Yes
|
native OODBMS called ZODB, SQLObject, SQLAlchemy
|
Unit Tests
|
|
ACL-based
|
Yes
|
Yes
|
CMFFormController
|
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)
|
Ruby
Others
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
|
|
|
|
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.
|
[6]
|
|
ACL-based, external engines, etc.
|
Template::Toolkit, HTML::Template, HTML::Mason, etc.
|
Cache, Memcached, shared memory, etc.
|
HTML::FormFu, HTML::FormValidator, etc.
|
Flex
|
Actionscript, MXML
|
Not by name but similar technology [7]
|
|
|
|
|
FlexUnit
|
|
|
|
|
|
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
|
Lift
|
Scala
|
Yes
|
Yes
|
Pull
|
Yes
|
Yes
|
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Seaside
|
Smalltalk
|
Prototype, script.aculo.us, etc.
|
|
|
Yes
|
GLORP, Gemstone/S, etc.
|
Unit Tests, SUnit
|
|
|
No, intentionally
|
|
Magritte
|
OpenACS
|
TCL
|
Yes
|
Yes
|
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Yes
|
Sproutcore
|
Javascript
|
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)
|
References
See also
de:Liste von Webframeworks
ru:Список CMF
If you like SEOmastering Site, you can support it by - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 and more...