Jump to content

Comparison of server-side web frameworks: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Line 113: Line 113:
| 4.0
| 4.0
| 2011-04-05<ref>http://lists.horde.org/archives/announce/2011/000607.html</ref>
| 2011-04-05<ref>http://lists.horde.org/archives/announce/2011/000607.html</ref>
| [[LGPL]]
|-
!{{rh}}| [[Jelix|Jelix]]
| 1.2.6
| 2011-10-03
| [[LGPL]]
| [[LGPL]]
|-
|-

Revision as of 06:23, 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
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

See also