Basic information about each framework.
| 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)
|
| 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)
|
| 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)
|
| 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)
|
| 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)
|