Comparison of server-side web frameworks: Difference between revisions
Appearance
Content deleted Content added
Line 154: | Line 154: | ||
| 2011-06-05<ref>http://code.google.com/p/outglow/downloads/list</ref> |
| 2011-06-05<ref>http://code.google.com/p/outglow/downloads/list</ref> |
||
| [[GPL]] |
| [[GPL]] |
||
|- |
|||
!{{rh}}| [[PHPDevShell|PHPDevShell]] |
|||
| 3.0.4 |
|||
| 2011-06-28 |
|||
| [[LGPL]] |
|||
|- |
|- |
||
!{{rh}}| [[PopcornPHP]] |
!{{rh}}| [[PopcornPHP]] |
Revision as of 06:42, 9 October 2011
This is a comparison of notable web application frameworks.
General
Basic information about each framework.
Perl
Project | Current Stable Version | Release Date | License |
---|---|---|---|
Catalyst | 5.80032 | 2011-04-13 | Artistic / GPL |
Dancer | 1.2000 | 2010-11-18 | Artistic / GPL |
Interchange | 5.6.2 | 2009-09-17 | GPL |
Mason | 1.45 | 2010-04-03 | Artistic / GPL |
Maypole | 2.13 | 2008-04-17 | Artistic / GPL |
Reaction | 0.002000 | 2009-04-29 | Artistic / GPL |
PHP
Project | Current Stable Version | Release Date | License |
---|---|---|---|
Adventure PHP Framework | 1.13 | 2011-03-02 | GPLv3 |
Agavi | 1.0.6 | 2011-07-23 | LGPL |
Agile Toolkit | 4.1.2 | 2011-09-22 | AGPL and commercial |
Alloy | 0.7.2 | 2011-04-12 | BSD |
AppFlower | 1.0 | 2011-03-30 | GPLv3 |
CakePHP | 1.3.12 | 2011-09-19[1] | MIT |
CodeIgniter | 2.0.3 | 2011-04-07 | BSD-style |
DooPHP | 1.4.1 | 2011-02-23[2] | BSD |
Drupal | 7.8 | 2011-08-31[3] | GPL |
FuelPHP | 1.0.1 | 2011-08-23 | MIT |
e107 | 0.7.25 | 2011-04-06 | GPL |
Horde | 4.0 | 2011-04-05[4] | LGPL |
Jelix | 1.2.6 | 2011-10-03 | LGPL |
Joomla! Platform | 11.2 | 2011-04-26[5] | GPL |
Kajona | 3.4.0 | 2011-06-19 | LGPL |
Kohana | 3.2 | 2011-07-24[6] | BSD |
Lithium | 0.10 | 2011-06-18 | BSD |
Modx | 2.1.0 | 2011-05-24[7] | GPL |
Movicon | 0.4 | 2011-05-30[8] | LGPL |
Outglow | 2.1.6 | 2011-06-05[9] | GPL |
PHPDevShell | 3.0.4 | 2011-06-28 | LGPL |
PopcornPHP | 0.5 | 2011-09-18[10] | |
Qcodo | 0.4.20 | 2010-12-24[11] | MIT |
Quick PHP | 1.4.3 | 2011-03-21[12] | Open source |
Rain Framework | 2.3.1 | 2011-05-03 | MIT |
Sapphire | 2.4.5 | 2011-02-02 | BSD |
Seagull | 0.6.8 | 2010-12-03 | BSD |
Solar | 1.1.2 | 2011-02-04 | BSD |
Symfony | 2.0.1 | 2011-08-26 | MIT |
Yii | 1.1.8 | 2011-06-26 | BSD |
Zend Framework | 1.11.10 | 2011-08-03[13] | BSD |
Zeta Components (previously eZ Components) | eZ Components 2009.2.1 | 2010-03-22[14] | Apache (previously BSD) |
Project | Current Stable Version | Release Date | License |
Java
Project | Current Stable Version | Release Date | License |
---|---|---|---|
Apache Click | 2.3.0 | 2011-03-27[15] | Apache |
Apache Cocoon | 2.2.0 | 2008-05-15 | Apache |
Apache Struts | 2.2.3 | 2011-05-05 | Apache |
Apache Tapestry | 5.2.6 | 2011-03-30 | Apache |
Apache Wicket | 1.4.18 | 2011-08-09 | Apache |
AppFuse | 2.1 | 2011-04-04 | Apache |
Aranea | 1.2.2 | 2009-06-18 | Apache |
Context Framework | 0.8.4 | 2011-08-23 | Apache |
Eclipse RAP | 1.4.0 | 2011-06-22 | Eclipse Public License |
FormEngine | 1.7.2 | 2011-04-19 | MIT |
Google Web Toolkit | 2.3.0 | 2011-05-03 | Apache |
Hamlets | 1.7 | 2011-03-11 | BSD |
IceFaces | 2.0.2 | 2011-05-13 | Mozilla Public License 1.1 (MPL) |
ItsNat | 1.2 | 2011-05-24 | LGPL / Proprietary |
JavaServer Faces | 2.1 | 2010-10-22 | (implementation dependent) |
JBoss Seam | 3.0.0 GA | 2011-03-31 | LGPL |
Jspx-bay | 1.1.0 | 2011-02-17 | Apache 2.0 |
JVx WebUI | 0.9 | 2011-04-01 | Apache 2.0 |
ManyDesigns Portofino | 3.1.10 | 2011-03-22 | GPL v3 |
OpenLaszlo | 4.9.0 | 2010-10-21 | Common Public License |
OpenXava | 4.2 | 2011-06-17 | LGPL |
Oracle ADF | 11.1.1.5 | 2011-05-06 | Oracle Technology Network Developer License |
Play! | 1.2.3 | 2011-08-23 | Apache 2.0 |
Richfaces | 4.1.0.M1 | 2011-08-16 | GPL |
RIFE | 1.6.2 | Apache | |
Shale | 1.0.4 | 2007-12-19 | Apache |
Sling | 6 | 2011-04-18 | Apache 2.0 |
SmartClient | 8.0 | 2011-01-05 | LGPL |
Spring | 3.0.6 | 2011-08-23 | Apache |
Stripes | 1.5.6 | 2011-03-14 | Apache |
ThinWire | 1.2 | 2007-09-17 | GPL |
Vaadin | 6.6.5 | 2011-08-09 | Apache |
Wavemaker | 6.2.5 | 2010-12-14 | Apache |
WebObjects | 5.4.3 | 2008-09-15 | Proprietary |
WebWork | 2.2.6 | 2007-07-21 | Apache |
ZK | 5.0.8 | 2011-08-31 | LGPL / ZOL |
ztemplates | 2.2.1 | 2011-01-11 | Apache |
Python
Project | Current Stable Version | Release Date | License |
---|---|---|---|
BlueBream | 1.0 | 2011-01-18 | ZPL |
CherryPy | 3.2.0 | 2011-02-25 | BSD |
CubicWeb | 3.12.3[16] | 2011-05-06 | LGPL |
Django | 1.3 | 2011-03-23[17] | BSD |
Flask | 0.7.2 | 2011-07-06[18] | BSD |
Grok | 1.4 | 2011-04-04 | ZPL |
Nagare | 0.3.0 | 2010-12-14 | BSD |
Pyjamas | 0.7 | 2010-04-25 | Apache |
Pylons | 1.0.0 | 2010-05-28 | BSD |
Pyramid | 1.1.0 | 2011-07-22 | BSD |
TurboGears | 2.1.2 | 2011-08-24 | MIT / LGPL |
web2py | 1.99.2 | 2011-06-26[19] | LGPLv3 |
Webware | 1.0.2 | 2009-06-07 | Python License |
Zope 2 | 2.13.6 | 2011-04-03[20] | ZPL |
Zope 3 | 3.4.1 | 2010-06-22 | ZPL |
Ruby
Project | Current Stable Version | Release Date | License |
---|---|---|---|
Camping | 2.1 | 2010-08-20 | MIT |
Merb | 1.1.2 | 2010-06-17 | MIT |
Nitro | 0.41 | 2006-12-12 | BSD |
Ruby on Rails | 3.1.0 | 2011-08-31 | MIT / Ruby |
Ramaze | 2011.07.25 | 2011-07-25 | Ruby License |
Sinatra | 1.2.6 | 2011-05-01 | MIT |
CFML (ColdFusion)
Project | Current Stable Version | Release Date | License |
---|---|---|---|
ColdBox Platform | 3.1.0 | 2011-06-22 | Apache v2 |
WireBox | 1.2.0 | 2011-06-22 | Apache v2 |
ColdFusion on Wheels | 1.1.3 | 2011-03-24 | Apache v2 |
ColdSpring | 1.2 | 2008-09-12 | Apache v2 |
Fusebox | 5.5.1 | 2008-03-08 | Apache |
FW/1 | 1.2 | 2010-10-18 | Apache v2 |
Mach-II | 1.8.1 | 2010-09-20 | GPLv3 with Classpath exception |
Model-Glue | 3.1.185 | 2009-08-11 | Apache |
onTap | 3.3 | 2009-11-07 | BSD |
ASP.NET
Project | Current Stable Version | Language | License |
---|---|---|---|
ASP.NET MVC | 3.0 | ASP.NET | Ms-PL |
BFC | 7.40 | ASP.NET | Proprietary |
Csla | 4.1.0 | C#, VB.NET | Proprietary; Free to use for non-commercial and commercial applications. |
DotNetNuke | 6.0.0 | ASP.NET | MIT |
MonoRail | 2.0 | ASP.NET | Apache |
OpenRasta | 2.0 RC | ASP.NET | MIT |
Project | Current Stable Version | Language | License |
Other
Project | Current Stable Version | Language | License |
---|---|---|---|
AIDA/Web | 5.6 | Smalltalk | MIT |
Application Express | 4.1 | PL/SQL | Proprietary-Freeware |
CppCMS | 0.0.4 | C++ | LGPL |
Tntnet | 2.0 | C++ | LGPL |
Flex | 4.0 | ActionScript, MXML | MPL |
Grails | 1.3.7 | Groovy (JVM) | Apache |
Helma | 1.6.3 | JavaScript | Helma License version 2.0 |
Kepler | 1.1 | Lua | MIT |
Lift | 2.2 | Scala (JVM) | Apache |
Midgard | 8.09 LTS | PHP | LGPL |
Morfik | 2.3.0.6 | Basic,Pascal,Java,C# | Proprietary&freeware |
Ocsigen | 1.91 | OCaml | LGPL |
OpenACS | 5.4.3 | Tcl | GPL |
qooxdoo | 1.2 | JavaScript | LGPL or Eclipse Public License |
Seaside | 3.0 | Smalltalk | MIT |
SproutCore | 2.0 BETA | JavaScript | MIT |
Compojure | 0.3.2 | Clojure | Eclipse Public License |
Yesod | 0.9.3 | Haskell | BSD3 |
Wavemaker | 4.0.2 | JavaScript | AGPL |
Wt | 3.1.11 | C++ | GPL and proprietary |
Zotonic | 0.7 | Erlang | Apache |
Project | Current Stable Version | Language | License |
Comparison of Features
ASP.NET
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 Razor) | 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 | |
OpenRasta | No | Yes | Push | Yes | ORM-independent | Unit Tests | No | HTTP Digest and via ASP.NET Forms Authentication or host environment | Yes | No | No |
C++
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) |
---|---|---|---|---|---|---|---|---|---|---|---|
CppCMS | Yes | Yes | Push | Yes | CppDB | No | No | Yes | Yes | Yes | Yes |
Wt | Yes | Yes | Push & Pull | Yes | Wt::Dbo | Boost.test | Yes | Yes | Yes | Yes | |
Tntnet | Yes | No | No | Yes | No | No | No | No | Yes | No | No |
CFML
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) |
---|---|---|---|---|---|---|---|---|---|---|---|
ColdBox Platform | Yes | Yes | Push & Pull | Yes | Yes | via MockBox, MXUnit, and others | via Plugin | Yes | Yes | Yes | via Plugin |
ColdFusion on Wheels | Yes | Yes | via Plugin | Yes | Yes integrated RocketUnit | via Plugin | Yes | via Plugin | Yes | ||
Fusebox | via CF or any JavaScript Library | optional | Push | No, custom | via lexicons for Transfer and Reactor | via MXUnit, and others | No | via plugins | via lexicon for ColdSpring | No | |
Mach-II | via CF or any JavaScript Library | Yes | Push | via plugin | Transfer, Reactor, Hibernate | via MXUnit, and others | via plugins | ColdSpring | |||
Model-Glue | via CF or any JavaScript Library | Yes | Push | Transfer, Reactor, Hibernate | via MXUnit, and others | via plugins | ColdSpring | ||||
onTap | native features + Prototype + script.aculo.us | optional | Push | Yes | DataFaucet [3] | via MXUnit, and others | DataFaucet has potential - supports multiple db platforms | Members onTap Plugin | Yes | Yes | 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) |
Python
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) | Python 3.* |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CherryPy | Python | Yes | controller & URL dispatching | Yes | ORM agnostic | use stdlib's unittest and doctest | depends on ORM | Templating engine agnostic | Yes | Form validation engine agnostic | 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 | No | ||||||
Pylons | Python | helpers for Prototype and script.aculo.us | controller | Push | Yes | ORM-agnostic | via nose | depends on ORM | pluggable (Mako, genshi, myghty, kid, etc.) | Beaker cache (memory, memcached, file, databases) | preferred formencode | No | |
Pyramid | Python | No | Yes | Push | Yes | ORM-agnostic | Yes | depends on ORM | Yes | pluggable ((Chameleon, Genshi), (Mako); others may be plugged in) | Beaker cache (memory, memcached, file, databases) | preferred formencode | No |
Django | Python | Django uses jquery in the admin, but is js-agnostic in the user templates | Full Stack | Push | Yes | Django ORM | Yes | reusable applications which might get merged into core e.g. South | ACL-based | Django Template Language | Cache Framework | Django Forms API | No |
TurboGears | Python | Toolkit-independent, provides support via JSON | Full stack, best-of-breed based | Push | Yes | SQLAlchemy | nose | SQLAlchemy-Migrate | Repoze.what & Repoze.who | Genshi, additional plugins available | Support for memcached, and any WSGI compliant system | ToscaWidgets, utilizing FormEncode | No |
web2py | Python | Yes | Yes | Push | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Webware | Python | No | Optional | Pull | No | Yes | Yes | No | Yes | Yes | No | No | No |
Zope 3 | Python | via add-on products, e.g. Plone w/KSS | Yes | Pull | Yes | ZODB, SQLObject, SQLAlchemy | Unit Tests, Functional Tests | ZODB generations | ACL-based | Yes | Yes | Yes | No |
Zope 2 | Python | Yes | Pull | Yes | ZODB, SQLObject, SQLAlchemy | Unit Tests | ACL-based | Yes | Yes | CMFFormController | No |
Java
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) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Spring | Java | Yes | Yes | Push | Yes | Hibernate, iBatis, etc | Yes, mock objects & unit tests | Spring Security (formerly Acegi) | Commons Tiles, Velocity, etc. | ehcache etc. | Commons Validator | |
Apache Click | Java | JQuery | Page Oriented | Pull | Yes | Hibernate and Cayenne | Yes | pluggable | Velocity and JSP | 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, with 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 | ||||||
FormEngine | Java | Yes | Yes | own connector API | AJAX validation on server and form state update | |||||||
ItsNat | Java | Yes | event driven | Push | using Java i18n | external and built-in | pluggable | pure HTML/SVG | page caching | normal Java | ||
JavaServer Faces | Java | Yes | Yes | Pull | Yes | Yes, with extensions | JUnit | Yes | Facelets, JSP | Yes | Native validators and integration with Bean Validation | |
JBoss Seam | Java | Yes | Yes | Pull | Yes | JPA, Hibernate | JUnit, TestNG | JAAS integration, Drools, Hibernate Filters, OpenID, CAPTCHA | Facelets | JBoss Cache, EHcache | Hibernate Validator | |
Jspx-bay | Java | Yes | Page oriented | Own API | JAAS integration | Master/Content Pages | Yes, Internal UI validation controls | |||||
JVx WebUI | Java | Yes | Model Driven | Yes | Yes, pluggable | JUnit | Yes | Single sourcing | Yes, pluggable | |||
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 | |
Play | Java | Yes | Yes | Push and Pull | Yes | JPA, Hibernate | JUnit, Selenium (Software) | Yes | via Core Security module | Yes | Yes | Server-side validation |
RIFE | Java | DWR | Yes | Push & Pull | Yes | Yes | Out of container testing | Yes | Yes | Integration with Terracotta | Yes | |
Stripes | Java | Yes | Yes | Pull | Yes | JPA, 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 | JPA with RequestFactory | JUnit (too early), jsUnit (too difficult), Selenium (best) | via Java | Yes | |||||
ZK | Java, ZUML | JQuery | Yes | Push & Pull | Yes | any J2EE ORM framework | JUnit,ZTL | HibernateUtil & SpringUtil | Spring Security | Macro components & Composition | Yes | client and server |
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) |
PHP
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) | Scaffolding |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AppFlower | PHP 5 | Yes, ExtJS | Yes | Push | Yes | Propel | Yes | Plugin exists | Plugin | Yes | Yes | Yes | Yes |
CakePHP | PHP | Prototype/script.aculo.us, jQuery/jQuery UI, MooTools/MooTools more | Yes | 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 | Yes |
CodeIgniter | PHP >= 5.1 | Any, its agnostic | Yes | Push | Mostly[21] | Third party only | Ready for next release | Yes | Yes | Yes | Yes | Yes | Yes |
Drupal | PHP | jQuery/jQuery UI, more | No | Push & Pull | Yes | Optional module | SimpleTest | Yes | Yes | Yes | Memcache, APC, Varnish and more | Yes | No |
Zeta Components (previously eZ Components) | PHP | Toolkit-independent | Yes | Push | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | No |
Fusebox | PHP | Yes | Not mandatory | Push | No, custom | Multiple plugins available | via qforms or built in PHP validation | Yes | |||||
FuelPHP | PHP >= 5.3.x | Yes | MVC, HMVC | Push | Yes | Yes | PHPUnit | Yes | Yes, Plugins available | Yes, Plugins available | File, Redis, Memcache and more | Yes | Yes |
Joomla! Platform | PHP >= 5.3.x | Yes Mootools 1.3 | Yes | Push & Pull | Yes | Yes | Unit Tests | No | Yes | Yes | Yes | Yes | No |
Kajona | PHP 5 | Yes | Yes | Yes | Yes | Yes | Unit Tests | Automatic | Yes | Yes | Yes | Yes | No |
Kohana | PHP 5 | Yes | MVC, HMVC | Push | Yes | Yes | PHPUnit, (as module) | Yes | Plugin | Yes | APC, Database, eAccelerator, File, Memcache, XCache | Yes | No |
Midgard | PHP | jQuery | MidCOM | Pull | Yes | Midgard | PHPUnit | datagard | ACL-based | PHP and TAL | Memcache | Yes | No |
Movicon | PHP | No | Yes | Push | Yes | No | Unit Tests | No | Yes | Yes | File | No | No |
Outglow | PHP 5 | jQuery, jQueryUI, OJAX | Bridges | Push | Yes | No | No | Yes | Yes | Custom | Yes | Yes | No |
Qcodo | PHP 5 | built-in | QControl | Push | Yes | XML-based | Inherent | QForm and QControl | Yes | Yes | No | ||
Rain Framework | PHP 5 | jQuery | Yes | Push | Yes | sanitize input, output and query | RainTPL | Yes | Yes | No | |||
Symfony | PHP 5 | Prototype, script.aculo.us, Unobtrusive Ajax with UJS and PJS plugins | Yes | Push | Yes | Propel, Doctrine (YAML) | Yes | Plugin exists (alpha code) | Plugin | Yes | Yes | Yes | Yes |
Yii | PHP 5 (>=5.1.0) | jQuery, jQuery UI, own components, plugins | Yes | Push & Pull | Yes | Database Access Objects (DAO), Active Record, plugins | PHPUnit, Selenium | Yes | ACL-based, RBAC-based, plugins | PHP-based, PRADO-like, plugins | APC, Database, eAccelerator, File, Memcache, WinCache, XCache, Zend Platform | Yes | Yes[22] |
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 | No |
SilverStripe (Sapphire) | PHP 5 (>=5.2) | jQuery/jQuery UI | Push & Pull | Yes | Active record pattern | Unit Tests | (Automatic) | incl. OpenID | 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) | Scaffolding |
Ruby
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) |
---|---|---|---|---|---|---|---|---|---|---|---|
Camping | No | Yes | Push | No | Active record pattern | via Mosquito | Yes | No | Yes | No | No |
Nitro | jQuery | Yes | Push | Yes | Og | RSpec | (automatic) | Yes | Yes | Yes | Yes |
Ruby on Rails | Prototype, script.aculo.us, jQuery | ActiveRecord, Action Pack | Push | Yes | ActiveRecord | Unit Tests, Functional Tests and Integration Tests | Yes | Plug-in | Yes | Yes | Yes |
Sinatra | No | Yes | Push | No | ORM-independent | rack-test | Yes | through a Rack middleware | Yes | through a Rack middleware | No |
Others
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 | ||||||
Application Express | PL/SQL | Yes | Yes | Yes | Yes | 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::Object, etc. | It supports perl testing standards, Test Anything Protocol (TAP) | ACL-based, external engines, etc. | Template::Toolkit, HTML::Template, HTML::Mason, PHP and any existing Perl template engine | Cache, Memcached, shared memory, etc. | HTML::FormHandler HTML::FormFu, HTML::FormValidator, etc. | |
Dancer | Perl | Yes | Yes | Push | Yes | DBIx::Class, ORMesque | Yes | Template::Toolkit, HTML::Mason, Text::MicroTemplate, any existing Perl template engine | Cache, Memcached, shared memory, etc. | DataFu, any existing Perl form validation software | ||
Flex | Actionscript, MXML | Not by name but similar technology[23] | FlexUnit | |||||||||
Grails | Groovy | Yes | Active record pattern | Push | Yes | GORM, Hibernate | Unit Test, Integration test, Functional test | multiple plugins(autobase, dbmigrate, etc.) | Spring Security plugin | Yes | Yes | Yes |
Kepler | Lua | Yes | ||||||||||
Lift | Scala | Yes | Yes | Pull | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
Ocsigen | OCaml | Yes | Yes | Yes | ||||||||
OpenACS | Tcl | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes | |
qooxdoo | JavaScript | Yes | Data binding | i18n | Testrunner | Form Validation | ||||||
Seaside | Smalltalk | jQuery, jQuery UI, Prototype, script.aculo.us, etc. | Yes | Yes | GLORP, Gemstone/S, etc. | Unit Tests, SUnit | No, intentionally | Magritte | ||||
SproutCore | JavaScript | 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
- ^ http://bakery.cakephp.org/articles/lorenzo/2011/09/19/cakephp_triple_layered_edition_released
- ^ http://www.doophp.com/blog/article/doophp-1.4.1-release
- ^ http://drupal.org/drupal-7.8
- ^ http://lists.horde.org/archives/announce/2011/000607.html
- ^ http://docs.joomla.org/Joomla_platform_version_history
- ^ http://forum.kohanaframework.org/discussion/9380/kohana-3.2.0-3.1.4-3.0.12-released
- ^ http://modxcms.com/forums/index.php/topic,64823.0.html
- ^ http://movicon.ath.cx/news/release-of-movicon-044
- ^ http://code.google.com/p/outglow/downloads/list
- ^ http://www.popcornphp.com
- ^ http://www.qcodo.com/forums/forum.php/5/4305/
- ^ http://qphp.net/download/change_log.txt
- ^ [1]
- ^ [2]
- ^ http://click.apache.org/
- ^ http://www.cubicweb.org/project/cubicweb/3.12.3
- ^ http://www.djangoproject.com/weblog/2011/mar/23/13/
- ^ http://flask.pocoo.org/docs/changelog/
- ^ http://web2py.com/examples/default/download
- ^ http://zope2.zope.org/releases
- ^ Language helper included, must activate & set desired language by parsing HTTP headers.{http://codeigniter.com/user_guide/libraries/language.html}
- ^ http://www.yiiframework.com/doc/blog/1.1/en/prototype.scaffold
- ^ URLRequest
See also
- Web application framework, Content management systems and List of content management frameworks
- PHP MVC Frameworks
- Java: View Technologies and Frameworks
- Comparison of common web frameworks (PHP, Java, Ruby etc.)
- Tony Shan, Taxonomy of Java Web Application Frameworks
- Open Source Web Frameworks in Java
- Open Source Web Frameworks in Python
- Top 10 Web Frameworks in php