Comparison of server-side web frameworks: Difference between revisions
Content deleted Content added
Line 385: | Line 385: | ||
| |
| |
||
|- |
|- |
||
| [[EnterpriseWebFramework|EWF] |
| [[EnterpriseWebFramework|EWF]] |
||
| Python |
| Python |
||
| Via third party libraries |
| Via third party libraries |
Revision as of 22:31, 27 September 2007
It has been suggested that List of web application frameworks, Talk:Comparison_of_web_application_frameworks#Merge_List_of_web_application_frameworks_into_Comparison_of_web_application_frameworks and User:The Wild Falcon be merged into this article. (Discuss) Proposed since September 2007. |
This is a comparison of web application frameworks.
General
Basic general information about the features
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 | |||||||
EWF | Python | Via third party libraries | Yes | Push | Yes provided by framework | Yes | Yes | No | Yes | Yes | Via third party wsgi modules | 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 | ||
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) |