Comparison of web application frameworks

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

This is a comparison of notable web application frameworks.

Contents

General

Basic information about each framework.

Perl

Project Current Stable Version Release Date License
Catalyst 5.80017 2010-01-09 Artistic / GPL
Interchange 5.6.2 2009-09-17 GPL
Mason 1.43 2009-12-25 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
AgilePHP 0.2a 2009-09-07 GPL
Atomik Framework 0.9 2009-02-17 MIT
CakePHP 1.2.5 2009-09-08 MIT
Concrete5 5.3.3.1 2009-09-08 MIT
Drupal 6.15 2009-12-16 GPL
CodeIgniter 1.7.2 2009-09-11 BSD-style
Joomla 1.5.15 2009-11-04 GPL
Helix 1.0 GPL
Horde 3.3.6 2009-12-15 LGPL
e107 0.7.16 2009-09-05 GPL
eZ Components 2009.1.2 BSD
FUSE 1.2 MIT
Kohana 3.0.1 BSD
KumbiaPHP 0.5 BSD / GPL
Mambo 4.6.5 GPL
PEAR 1.4.0 PHP / Various
PHP For Applications 3.2.2 LGPL
PHP ActiveRecord 3.2.2 MIT
PHP Work 1.2 2009-06-13 MIT
Qcodo 0.4.2 MIT
QCubed 1.1 2009-10-19 MIT
Seagull 0.6.6 BSD
SilverStripe (Sapphire) 2.3.4 2009-11-27 BSD
SPIP 2.1.0 2009-10-31 GPL
Swiftlet 1.1.3 2010-01-09 GPL
Symfony 1.4.1 2009-12-08 MIT
TYPO3 4.3.0 2009-11-30 GPL
Yii 1.1.0 2010-01-10 BSD
Zend Framework 1.10.0 2010-01-27 BSD
Project Current Stable Version Release Date License

Java

Project Current Stable Version Release Date License
Apache Click 2.1.0 Apache
Apache Cocoon 2.2.0 Apache
Apache Struts 2.1.8.1 Apache
Apache Wicket 1.4.5 2009-12-16 Apache
AppFuse 2.0.2 Apache
Aranea 1.0.10 Apache
Eclipse RAP 1.2.0 Eclipse Public License
Google Web Toolkit 2.0 Apache
Hamlets 1.4 BSD
ItsNat AGPL / Proprietary
IT Mill Toolkit 5.4.0 Apache
JavaServer Faces 2.0
JBoss Seam 2.2.0 GA LGPL
OpenLaszlo 4.1 Common Public License
OpenXava 3.1 LGPL
pirka 1.0.4
RIFE 1.6.2 Apache
Shale 1.0.4 Apache
Sling Apache 2.0
SmartClient LGPL
Sofia 2.3 GPL
Spring 3.0.0 Apache
Stripes 1.5.2 LGPL
Tapestry 4.1.6/5.1.0.5 Apache
ThinWire 1.2 GPL
Vaadin 6.2.0 Apache
WebObjects 5.4.3 Proprietary
WebWork 2.2.6 Apache
ZK 5.0 LGPL
ztemplates 0.9.9.6 Apache
Project Current Stable Version Release Date License

Python

Project Current Stable Version Release Date License
CherryPy 3.1 BSD
CubicWeb 3.3.3 LGPL
Django 1.1.1 BSD
Grok 0.14 ZPL
Pyjamas 0.6 Apache
Pylons 0.9.7 BSD
TurboGears 2.0.1 MIT / LGPL
web2py 1.74.6 GPLv2 with a commercial exception
Zope 2 2.10 ZPL
Zope 3 3.3 ZPL
Project Current Stable Version Release Date License

Ruby

Project Current Stable Version Release Date License
Camping 1.5 MIT
Merb 1.0 RC2 MIT
Nitro 0.41 BSD
Ruby on Rails 2.3.5 2009-11-27 MIT / Ruby
Sinatra 0.10.1 MIT

CFML (ColdFusion)

Project Current Stable Version Release Date License Summary
ColdFusion on Wheels 1.0 24 November 2009 Apache v2 A full-stack convention-based MVC framework, inspired by Rails.
ColdSpring 1.2 12 September 2008 Apache v2 Dependency Injection and AOP framwork
Fusebox 5.5.1 8 March 2008 Apache The oldest CFML framework, supports MVC or not, convention or XML configuration.
Mach-II 1.6.1 29 March 2009 Apache An Object-Oriented MVC framework
Model-Glue 3.1.185 11 August 2009 Apache An Object-Oriented MVC implicit invocation, for web and RIA
onTap 3.3 7 November 2009 BSD A full-stack MVC framework with integrated ORM

ASP.NET

Project Current Stable Version Language License
ASP.NET MVC 1.0 ASP.NET Ms-PL
BFC 7.40 ASP.NET Proprietary
Csla 3.7.0 C#, VB.NET Proprietary; Free to use for non-commercial and commercial applications.
DotNetNuke 4.8.0 ASP.NET BSD
MonoRail 1.0 RC3 ASP.NET Apache
Vici MVC 2.0.1 ASP.NET MIT
Project Current Stable Version Language License

Other

Project Current Stable Version Language License
AIDA/Web 5.6 Smalltalk MIT
CppCMS 0.0.4 C++ LGPL
Flex 3.0 ActionScript, MXML MPL
Grails 1.2 Groovy (JVM) Apache
Helma 1.6.3 Javascript Helma License version 2.0
Kepler 1.1 Lua MIT
Lift 1.0 Scala (JVM) Apache
Midgard 8.09 LTS PHP LGPL
Morfik 1.3.1.18 Basic,Pascal,Java,C# Proprietary
OpenACS 5.4.3 Tcl GPL
Seaside 2.8 Smalltalk MIT
Sproutcore 1.0 BETA Javascript MIT
Wavemaker 4.0.2 JavaScript AGPL
Wt 2.99.5 C++ GPL
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 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)

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 Push Yes Limited, SQL library No No No Yes Yes Yes
Wt Yes Yes Push & Pull Yes No Yes No 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)

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)
ColdFusion on Wheels Yes Yes Yes Yes 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)

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)
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)

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)
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)

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)
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)


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 ActiveRecord, Action Pack Push Localization Plug-in ActiveRecord Unit Tests, Functional Tests and Integration Tests Yes Plug-in Yes Yes Yes
Sinatra No Yes Push No ORM-independent Rack::test Yes No Yes through a Rack middleware No
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)

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
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)

References

  1. Drupal as an MVC framework
  2. MVC vs. PAC
  3. [1]
  4. [2]
  5. QDrupal
  6. Catalyst::Manual::Tutorial::Testing - Catalyst Tutorial - Part 7: Testing - search.cpan.org
  7. URLRequest

See also

ru:Список CMF

Personal tools

Served in 0.774 secs.