Comparison of server-side web frameworks

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Massimodipierro (talk | contribs) at 22:08, 27 September 2007 (→‎General). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

This is a comparison of web application frameworks.

General

Basic general information about the features

Project Current Stable Version Language License
Agavi 0.11 RC5 PHP LGPL
Apache Struts 2.0.9 Java Apache
Andromeda 2007.08.08 PHP GPL
Aranea MVC 1.0.10 Java Apache
CakePHP 1.1.17.5612 PHP MIT
Camping 1.5 Ruby MIT
Catalyst 5.7007 Perl GPL/Artistic
Code Igniter 1.5.4 PHP Apache/BSD-style open source license
ColdBox 2.0.3 ColdFusion Apache
Django 0.96 Python BSD
DotNetNuke 4.5.5 ASP.NET BSD
EWF 1.5 Python GPL
Fusebox 5.1 ColdFusion Apache
Grails 0.6 Groovy Apache
JBoss Seam 1.2.1 GA Java LGPL
Jifty 0.70824 Perl GPL/Artistic
Kumbia 0.46RC9 PHP GPL | Apache 2.0 | PHP5
Lift 0.2.0 Scala Apache 2.0
Mach-II 1.5 ColdFusion Apache
Model-Glue 2.0 ColdFusion Apache
MonoRail 1.0 RC3 ASP.NET Apache
Nitro 0.41 Ruby BSD License
OpenACS 5.3.2 Tcl GPL
PHPulse 2.0 PHP GPL
Pylons (web framework) 0.9.6 Python BSD License
Qcodo 0.3.32 PHP MIT License
RIFE 1.6.2 Java Apache
Ruby on Rails 1.2.3 Ruby MIT/Ruby
Seaside 2.7 Smalltalk MIT License
Spring Framework 2.0.6 Java Apache
Stripes 1.4.3 Java LGPL
Symfony 1.0.7 PHP MIT
TurboGears 1.0.1 Python MIT License, LGPL
WebLeaf 2.1 Java LGPL
WebObjects 5.3.1 Java Proprietary
Zend Framework 1.0.1 PHP BSD License
Zoop Framework 1.2 PHP ZPL
Zope2 2.10 Python ZPL
Zope3 3.3 Python ZPL
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)
Agavi PHP Yes Push Yes Yes Yes Yes Yes Yes Yes Yes
Apache Struts Java Yes Push Yes Yes Yes, Unit Tests Yes, Jakarta Tiles framework Yes, Jakarta Validator framework
Andromeda PHP Yes Yes Yes Yes Yes Yes
Aranea MVC Java Yes Pull Yes Yes
CakePHP PHP Yes, Prototype, script.aculo.us ActiveRecord Push Yes, Development branch Yes, ActiveRecord Yes, Unit Tests Yes Yes, ACL-based Yes Yes, Development branch Yes
Camping Ruby No Yes Push No Yes, ActiveRecord 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,...)
CodeIgniter PHP No Yes, Modified ActiveRecord Push Yes No Yes, Unit Tests No Yes Yes, Smarty Yes Yes
ColdBox ColdFusion Yes, via CF or any JavaScript Library Yes Push Yes provided by framework Yes Transfer, Reactor, Hibernate, ObjectBreeze Yes, Integrated into Core Framework, CFUnit, CFCUnit No Yes, via plugin or interceptors Yes Yes, ColdBox Internal Caching Engine, and via ColdSpring Yes, via cf validation or custom interceptors
Django Python Yes Yes Push Yes Yes, Django ORM, SQLAlchemy Yes No Yes, ACL-based Yes Yes Yes
DotNetNuke .NET Yes Pull Yes Yes, SubSonic, NHibernate
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
Grails Groovy Yes ActiveRecord Push Yes Yes, GORM, Hibernate Yes, Unit Test No Yes Yes Yes Yes
InterJinn PHP Yes Yes Push & Pull No, custom No Yes, TemplateJinn Yes Yes, FormJinn
JBoss Seam Java Yes Pull Yes Yes, Hibernate Yes, JUnit, TestNG Yes, JAAS integration Yes, Facelets Yes, Hibernate Validator
Jifty Perl Yes Yes Push Yes Yes, Jifty::DBI Yes Yes Yes Yes, Mason, Template::Declare Yes, Memcached Yes
Kumbia PHP5 Yes Yes x x ActiveRecord x Yes Yes Yes, Smarty Yes, Memcached 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
Model-Glue::Unity 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 Yes
MonoRail .NET Yes, Prototype ActiveRecord Push Yes Yes, ActiveRecord Yes, Unit Tests Yes, via ASP.NET Forms Authentication Yes Yes Yes
Nitro Ruby Yes, jQuery Yes Push Yes Yes, Og Yes, RSpec Yes (automatic) Yes Yes Yes Yes
PHPulse PHP Yes, Yes, Push Yes, Yes, Yes, Unit Tests Yes, ACL-based Yes, Smarty Yes, multiple (Memcached, TurckMM, shared memory,...) Yes
Pylons Python Yes, helpers for Prototype and script.aculo.us Yes Push Yes Yes, SQLObject, SQLAlchemy Yes, via nose Yes, pluggable (mako, genshi, mighty, kid, ...) Yes, Beaker cache (memory, memcached, file, databases) Yes, preferred formencode
Qcodo PHP5 Yes, built-in Yes, QControl Push Yes Yes, Code Generation-based 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
Ruby on Rails Ruby Yes, Prototype, script.aculo.us 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, ...
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
Tigermouse PHP5 Yes, it is mostly Ajax-only framework Yes, ActiveRecord Push Yes Yes, ActiveRecord No No, Multiple RBMSes and access libraries supported Yes, through intercepting filters (ACL-based, customizable) Yes No Yes
TurboGears Python Yes Yes Yes, SQLObject, SQLAlchemy
WebLEAF Java Yes Yes Push Yes Yes Hibernate, EJB Yes, extensible through custom interfaces Yes XSLT, FreeMarker
WebObjects Java Yes Yes Yes, EOF
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
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
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