| 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)   | 
| Agavi | 
PHP | 
Yes, toolkit independent | 
Yes | 
Yes (Push) | 
Yes | 
Yes, multiple | 
Yes | 
No | 
Yes | 
Yes, multiple | 
Yes | 
Yes | 
| AIDA/Web | 
Smalltalk | 
Yes, Prototype, script.aculo.us | 
Yes | 
Yes | 
 | 
Yes, Gemstone/S, GLORP, ... | 
Yes, SUnit | 
 | 
Yes | 
 | 
 | 
 | 
| Ajile | 
JavaScript | 
Yes | 
Yes | 
Push & Pull | 
Yes | 
 | 
Yes, jsUnit | 
 | 
 | 
Yes | 
Yes | 
 | 
| Akelos PHP Framework | 
PHP | 
Yes, Prototype, script.aculo.us | 
Yes, Active record pattern | 
Push | 
Yes | 
Yes, Active record pattern | 
Yes, Unit Tests | 
Yes | 
 | 
Yes | 
Yes | 
Yes | 
| Apache Struts | 
Java | 
Yes | 
Yes | 
Push | 
Yes | 
Yes | 
Yes, Unit Tests | 
 | 
 | 
Yes, Jakarta Tiles framework | 
 | 
Yes, Jakarta Validator framework | 
| Struts2 | 
Java | 
Yes | 
Yes | 
Push & Pull | 
Yes | 
Yes | 
Yes, Unit Tests | 
 | 
 | 
Yes | 
 | 
Yes | 
| Aranea MVC | 
Java | 
Yes | 
 | 
Pull | 
Yes | 
Yes | 
 | 
 | 
 | 
mapping-applications using contributions from users to advantage | 
 | 
 | 
| BFC | 
.NET | 
Yes | 
Yes, but not mandatory | 
Push & Pull | 
Yes | 
Yes, through active data dictionary | 
Yes, Unit Tests | 
Yes, SQL Server, Oracle, DB2, Sybase, MySQL | 
Yes, security groups and rules | 
Yes | 
Yes, metadata and result sets | 
Yes, data dictionary-driven | 
| CakePHP | 
PHP | 
Yes, Prototype, script.aculo.us | 
Yes, Active record pattern | 
Push | 
Yes, Development branch | 
Yes, Active record pattern | 
Yes, Unit Tests | 
Yes | 
Yes, ACL-based | 
Yes | 
Yes, Development branch | 
Yes | 
| Camping | 
Ruby | 
No | 
Yes | 
Push | 
No | 
Yes, Active record pattern | 
Yes, via Mosquito | 
Yes | 
No | 
Yes | 
No | 
No | 
| Catalyst | 
Perl | 
Yes, multiple (Prototype, Dojo...) | 
Yes | 
Push in its most common usage | 
Yes | 
Yes, multiple (DBIx::Class, Rose::DB...) | 
Yes[1] | 
 | 
Yes, multiple (ACL-based, external engines...) | 
Yes, multiple (Template::Toolkit, HTML::Template, HTML::Mason...) | 
Yes, multiple (Memcached, TurckMM, shared memory,...) | 
Yes, multiple (HTML::FormValidator,...) | 
| CJAX | 
PHP | 
Yes, | 
Yes | 
Push & Pull | 
Yes | 
Yes, (framework extension) | 
Yes Unit Tests | 
 | 
Yes, framework extension | 
Yes, framework extension | 
Yes, framework extension | 
Yes, framework extension | 
| CherryPy | 
Python | 
 | 
 | 
 | 
Yes | 
 | 
No, because unittest and doctest are standard Python modules | 
 | 
 | 
Yes, CherryTemplate | 
Yes | 
 | 
| Click Framework | 
Java | 
Yes | 
Yes | 
Pull | 
Yes | 
Yes, integrates with Hibernate and Cayenne | 
 | 
 | 
 | 
Yes, Velocity and JSP | 
 | 
Yes, built-in validation | 
| CodeIgniter | 
PHP | 
Yes, Framework extension | 
Yes, Modified Active record pattern | 
Push | 
Yes | 
Yes, framework extension | 
Yes, Unit Tests | 
No | 
Yes | 
Yes | 
Yes | 
Yes | 
| ColdBox Framework | 
ColdFusion | 
Yes, various libraries | 
Yes | 
Push & Pull (via Viewlets) | 
Yes | 
Yes, Transfer & Reactor | 
Yes, Unit Tests | 
No | 
Yes, via plugins or interceptors | 
 | 
Yes ColdBox Cache Manager and externally pluggable. | 
Yes | 
| Django | 
Python | 
Yes | 
Yes | 
Push | 
Yes | 
Yes, Django ORM, SQLAlchemy | 
Yes | 
No (plugin exists, might be merged into trunk when more stable and feature complete) | 
Yes, ACL-based | 
Yes | 
Yes | 
Yes | 
| DotNetNuke | 
.NET | 
Yes | 
No | 
Pull | 
Yes | 
Yes, SubSonic, NHibernate | 
Yes, Unit Tests | 
Yes | 
Yes, ACL-based, (OpenID, LiveID, Active Directory, LDAP, CardSpace, ASP.NET Forms Auth) | 
Yes | 
Yes, Pluggable | 
Yes, ASP.NET Validators, built-in API | 
| Drupal | 
PHP | 
Yes, jQuery | 
Yes[2] [3] | 
 | 
Yes | 
Yes, multiple (CCK, Qcodo[4]) | 
Yes, simpletest, devel | 
Yes, Schema API | 
Yes, multiple (OG, Node Privacy By Role, ACL, Taxonomy Access List) | 
Yes, multiple (PHPTemplate, Smarty, XTemplate, others) | 
Yes, multiple (builtin, memcache, APC) | 
Yes, Form API | 
| eZ Components | 
PHP | 
No | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
| Flex | 
Actionscript, MXML | 
No | 
 | 
 | 
 | 
 | 
Yes,FlexUnit | 
 | 
 | 
 | 
 | 
 | 
| FUSE | 
PHP | 
Yes | 
Yes | 
Push | 
Yes, custom | 
Yes | 
Yes, SimpleTest | 
 | 
Yes | 
Yes | 
Yes | 
Yes | 
| Fusebox | 
ColdFusion, PHP | 
Yes | 
Yes, but not mandatory | 
Push | 
No, custom | 
Yes, via lexicons for Transfer and Reactor | 
Yes, CFUnit, CFCUnit | 
 | 
Yes, multiple plugins available | 
 | 
Yes, via lexicon for ColdSpring | 
Yes, via qforms or built in cf validation | 
| Google Web Toolkit | 
Javascript | 
Sure | 
 | 
 | 
 | 
 ???, no direct data access | 
JUnit (too early), jsUnit (too difficult), Selenium (best) | 
No | 
 | 
 | 
 | 
 | 
| Grails | 
Groovy | 
Yes | 
Active record pattern | 
Push | 
Yes | 
Yes, GORM, Hibernate | 
Yes, Unit Test | 
No | 
Yes | 
Yes | 
Yes | 
Yes | 
| Grok (web framework) | 
Python | 
Yes, | 
Yes | 
Pull | 
Yes | 
Yes, OODBMS called ZODB, SQLAlchemy, Storm | 
Yes, Unit Tests, Functional Tests | 
Yes, ZODB Generations | 
Yes | 
Yes | 
Yes | 
Yes | 
| IVY Framework | 
PHP | 
Yes | 
Yes, MooTools | 
Push | 
No, still not completed | 
Yes | 
No | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes, Data Dictionary | 
| IT Mill Toolkit | 
Java | 
Yes, GWT | 
 | 
Pull | 
Yes | 
Yes | 
Yes, JUnit, IT Mill Testing Tools | 
 | 
 | 
Yes | 
 | 
Yes | 
| JBoss Seam | 
Java | 
Yes | 
 | 
Pull | 
Yes | 
Yes, JPA, Hibernate | 
Yes, JUnit, TestNG | 
 | 
Yes, JAAS integration | 
Yes, Facelets | 
 | 
Yes, Hibernate Validator | 
| jZeno | 
Java | 
Yes | 
Yes | 
Pull | 
No, custom | 
Yes Hibernate | 
Yes, JUnit, TestNG | 
 | 
Yes, role-based | 
Yes, Composite Pattern | 
Yes | 
Yes | 
| Kiwiki | 
Java | 
Yes | 
Yes | 
Push and Pull | 
 | 
Yes | 
 | 
 | 
Yes | 
Yes | 
Yes | 
Yes | 
| Kohana | 
PHP | 
 | 
Yes | 
Push | 
Yes | 
Yes, framework extension | 
Yes, unit_test module | 
 | 
 | 
 | 
Yes, File and SQLite Driver based caches | 
Yes | 
| LecoWeb | 
Java | 
Yes | 
No | 
 | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
Yes | 
| Lift | 
Scala | 
Yes | 
Yes | 
 | 
Yes | 
Yes | 
 | 
 | 
 | 
 | 
 | 
 | 
| Lainsoft Forge | 
Java, JRuby | 
Yes (not restricted) | 
Yes | 
 | 
Yes, via plug-in | 
Yes, via plug-in | 
 | 
 | 
Yes, via plug-in | 
Yes | 
Yes | 
Yes | 
| Mach-II | 
ColdFusion | 
Yes, via CF or any JavaScript Library | 
Yes | 
Push | 
Yes, via custom plugin | 
Yes Transfer, Reactor, Hibernate | 
Yes, CFUnit, CFCUnit | 
 | 
Yes, via plugin | 
 | 
Yes, ColdSpring | 
 | 
| Midgard | 
PHP | 
Yes, jQuery | 
Yes, MidCOM | 
Pull | 
Yes | 
Yes Midgard | 
Yes, PHPUnit | 
Yes, datagard | 
Yes, ACL-based | 
Yes, PHP and TAL | 
Yes, memcache | 
Yes | 
| MonoRail | 
.NET | 
Yes, Prototype | 
Active record pattern | 
Push | 
Yes | 
Yes, Active record pattern | 
Yes, Unit Tests | 
 | 
Yes, via ASP.NET Forms Authentication | 
Yes | 
Yes | 
Yes | 
| Nette Framework | 
PHP5 (>=5.1.4) | 
Yes, various libraries | 
Yes, but not mandatory | 
Push & Pull | 
Yes | 
Yes, via extension dibi | 
Yes | 
 | 
Yes, ACL-based | 
Yes, multiple | 
Yes, multiple | 
Yes, client + server, extensible | 
| Nitro | 
Ruby | 
Yes, jQuery | 
Yes | 
Push | 
Yes | 
Yes, Og | 
Yes, RSpec | 
Yes (automatic) | 
Yes | 
Yes | 
Yes | 
Yes | 
| onTap | 
ColdFusion | 
Yes, native features + Prototype + script.aculo.us | 
Yes, optional | 
Push | 
Yes | 
Yes, DataFaucet [1] | 
Yes, CFUnit, CFCUnit, MXUnit | 
DataFaucet has potential - supports multiple db platforms | 
Yes, Members onTap Plugin | 
Yes, very extensible | 
Yes | 
Yes, client + server, extensible | 
| OpenXava | 
Java | 
No | 
Yes, Model Driven | 
 | 
Yes | 
Yes, JPA, Hibernate and EJB2 CMP | 
Yes, JUnit | 
Yes, Hibernate tools | 
Yes, uses JSR-168 portal security | 
UI is automatically generated | 
Yes, uses portal and JPA caching | 
Yes | 
| Orinoco Framework | 
PHP | 
Yes, Various Libraries | 
Yes | 
Push and Pull | 
 | 
Yes | 
 | 
 | 
 | 
 | 
 | 
 | 
| Pal | 
PHP5 | 
Yes, Ajax Components | 
Yes | 
Push and Pull | 
No, roll your own | 
Yes, optional Active record pattern, arbitrary SQL | 
No, still not completed | 
 | 
Yes, via plugins and filters | 
Yes, via plugins | 
Yes, allows both memcache and caching pages | 
Yes, built-in extensible validation | 
| PHPulse | 
PHP5 | 
Yes | 
Yes | 
Push | 
Yes | 
No, integrated DB objects | 
No, optional | 
 | 
Yes | 
Yes | 
Yes | 
Yes | 
| PRADO | 
PHP5 | 
Yes, Active Controls | 
Yes | 
Push | 
Yes | 
Yes, Active record pattern, SQLMap | 
Yes, PHPUnit, SimpleTest, Selenium (software) | 
 | 
Yes, modular and role-based ACL | 
Yes | 
Yes | 
Yes | 
| Pylons | 
Python | 
Yes, helpers for Prototype and script.aculo.us | 
Yes | 
Push | 
Yes | 
Yes, SQLObject, SQLAlchemy | 
Yes, via nose | 
 | 
 | 
Yes, pluggable (mako, genshi, myghty, kid, ...) | 
Yes, Beaker cache (memory, memcached, file, databases) | 
Yes, preferred formencode | 
| Qcodo | 
PHP5 | 
Yes, built-in | 
Yes, QControl | 
Push | 
Yes | 
Yes, Code Generation-based | 
 | 
Inherent | 
 | 
Yes, QForm and QControl | 
Yes | 
Yes | 
| RIFE | 
Java | 
Yes, DWR (Java) | 
Yes | 
Push & Pull | 
Yes | 
Yes | 
Yes, Out of container testing | 
 | 
Yes | 
Yes | 
Yes, Integration with Terracotta | 
Yes | 
| RoxPHP | 
PHP5 | 
 | 
Yes | 
Push | 
Yes | 
Yes, Active record pattern | 
 | 
No | 
 | 
Yes | 
Yes | 
Yes | 
| Ruby on Rails | 
Ruby | 
Yes, Prototype, script.aculo.us | 
Yes, ActiveRecord, Action Pack | 
Push | 
Yes, Localization Plug-in | 
Yes, ActiveRecord | 
Yes, Unit Tests, Functional Tests and Integration Tests | 
Yes | 
Yes, Plug-in | 
Yes | 
Yes | 
Yes | 
| Seaside | 
Smalltalk | 
Yes, Prototype, script.aculo.us, ... | 
 | 
 | 
Yes | 
Yes, GLORP, Gemstone/S, ... | 
Yes, Unit Tests, SUnit | 
 | 
 | 
No, intentionally | 
 | 
Yes, Magritte | 
| SilverStripe/Sapphire | 
PHP 5.2+ | 
Yes, Prototype, script.aculo.us | 
Yes, Active record pattern | 
Push & Pull | 
Yes | 
Yes, Active record pattern | 
Yes, Unit Tests | 
Yes (Automatic) | 
Yes incl. OpenID | 
Yes (object oriented) | 
Yes | 
Yes | 
| Spring Framework | 
Java | 
 | 
Yes | 
 | 
Yes | 
Yes hibernate, iBatis, etc | 
 | 
 | 
Yes, Acegi | 
Commons Tiles, velocity etc | 
Yes, ehcache etc | 
Commons Validator | 
| Stripes | 
Java | 
Yes | 
Yes | 
Push | 
Yes | 
Yes, Hibernate | 
Yes | 
 | 
Yes, framework extension | 
Yes | 
 | 
Yes | 
| Symfony | 
PHP5 | 
Yes, Prototype, script.aculo.us, Unobtrusive Ajax with UJS and PJS plugins | 
Yes | 
Push | 
Yes | 
Yes, Propel, Doctrine | 
Yes | 
Plugin exists (alpha code, though) | 
Yes, plugin | 
Yes | 
Yes | 
Yes | 
| Tapestry | 
Java | 
Yes | 
Yes | 
Pull | 
Yes | 
Yes, integrated with Hibernate(tapestry-hibernate module) | 
 | 
 | 
Yes, tapestry5-acegi library | 
Yes | 
 | 
Yes, built-in validation system | 
| Tigermouse | 
PHP5 | 
Yes, it is mostly Ajax-only framework | 
Yes, Active record pattern | 
Push | 
Yes | 
Yes, Active record pattern | 
No | 
No, Multiple RBMSes and access libraries supported | 
Yes, through intercepting filters (ACL-based, customizable) | 
Yes | 
No | 
Yes | 
| TurboGears | 
Python | 
Yes, MochiKit | 
Yes | 
Push | 
Yes | 
Yes, SQLObject, SQLAlchemy | 
Yes, nose | 
No | 
Yes, pluggable authentication providers, user->group<-permissions schema | 
Yes, pluggable: Kid, Genshi, any Buffet-compatible engine | 
No | 
Yes, TurboGears widgets, ToscaWidgets, both utilizing FormEncode | 
| WaveMaker Visual Ajax Studio | 
JavaScript (client), Java (server) | 
Yes, Dojo Toolkit | 
Yes | 
Push | 
Yes, Dojo Toolkit | 
Yes, Hibernate (Java) | 
Yes, JUnit | 
Yes, Hibernate (Java) | 
Yes, Spring Security, Acegi, Role-based access control | 
Yes, Dojo Toolkit | 
Yes, Dojo Toolkit | 
Yes, 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 | 
Yes, EOF | 
Yes, WOUnit (JUnit), TestNG, Selenium (software) | 
Yes, in Project WONDER | 
 | 
Yes | 
Yes | 
Yes | 
| Wicket | 
Java | 
Yes | 
Modular event driven | 
Pull | 
Yes | 
Yes | 
 | 
 | 
Yes | 
Yes | 
Yes | 
Yes | 
| Widgetplus | 
JavaScript | 
Yes it is mostly Ajax-only framework | 
Yes | 
Push & Pull | 
Yes | 
No, | 
Yes, | 
No, | 
Yes | 
Yes | 
Yes | 
Yes | 
| Yii Framework | 
PHP5 (>=5.1.0) | 
Yes, jQuery-based js lib and widgets | 
Yes | 
Yes, Push and Pull | 
Yes | 
Yes, Active record pattern | 
Yes, PHPUnit | 
 | 
Yes, modular and role-based ACL | 
Yes | 
Yes | 
Yes | 
| Zend Framework | 
PHP5 (>=5.1.4) | 
Yes, various libraries | 
Yes | 
Push | 
Yes | 
Yes, Table and Row data gateway | 
Yes, Unit Tests | 
Yes | 
Yes, ACL-based | 
Yes | 
Yes | 
Yes | 
| ZK Framework | 
Java | 
Yes, 170+ Ajax components | 
Yes | 
Push & Pull | 
Yes | 
Yes, any ORM frameworks, such as Hibernate, TopLink | 
Yes, Unit Tests, Functional Tests | 
 | 
Yes, plugin, like Acegi | 
Yes, DSP, Velocity, JSP, others pluggable | 
Yes | 
Yes, constraint, event validation, others pluggable | 
| Zope2 | 
Python | 
 | 
Yes | 
Pull | 
Yes | 
Yes, native OODBMS called ZODB, SQLObject, SQLAlchemy | 
Yes, Unit Tests | 
 | 
Yes, ACL-based | 
Yes | 
Yes | 
Yes, CMFFormController | 
| Zope3 | 
Python | 
Yes, via add-on products, e.g. Plone w/KSS | 
Yes | 
Pull | 
Yes | 
Yes, native OODBMS called ZODB, SQLObject, SQLAlchemy | 
Yes, Unit Tests, Functional Tests | 
Yes, ZODB generations | 
Yes, ACL-based | 
Yes | 
Yes | 
Yes | 
| ztemplates | 
Java jdk 1.5 or newer | 
Yes, integrates YUI, Google etc. with annotations | 
Yes | 
Push, multiple actions per url | 
Yes, standard Java | 
Yes, use any J2EE ORM framework | 
Yes, Unit Tests | 
 | 
Yes, annotation based | 
Yes, Velocity, FreeMarker, JSP, others pluggable | 
 | 
Yes, AJAX validation on server and form state update (YUI, JSON) | 
| Lion Framework | 
PHP | 
Yes | 
Yes | 
Yes Push & Pull | 
Yes | 
No | 
Yes | 
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) |