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) |