From Wikipedia, the free encyclopedia
Content deleted Content added
Line 1,411:
Line 1,411:
!{{rh}}| [[CherryPy]]
!{{rh}}| [[CherryPy]]
| [[Python (programming language)|Python]]
| [[Python (programming language)|Python]]
| {{No}}
| {{Yes }}
| {{Yes|controller & URL dispatching}}
| {{Yes|controller & URL dispatching}}
|
|
Revision as of 15:52, 2 September 2010
This page or section
may contain link spam masquerading as content. Spam on Wikipedia consists of external links mainly intended to promote a website. If you are familiar with the content of the external links, please help by removing promotional links in accordance with Wikipedia:External links . (August 2010 )
This is a comparison of notable web application frameworks .
General
Basic information about each framework.
Perl
PHP
Java
Python
Ruby
CFML (ColdFusion)
ASP.NET
Other
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
OpenRasta
No
Yes
Push
Yes
ORM-independent
Unit Tests
No
HTTP Digest and via ASP.NET Forms Authentication or host environment
Yes
No
No
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
Wt::Dbo
Boost.test
Yes
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)
CFML
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
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
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
Play
Java
Yes
Yes
Push and Pull
Yes
JPA , Hibernate
JUnit , Selenium
Separate module
via Core Security module
Yes
Yes
Server-side validation
RIFE
Java
DWR (Java)
Yes
Push & Pull
Yes
Yes
Out of container testing
Yes
Yes
Integration with Terracotta
Yes
Spring
Java
Yes
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
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
???, no direct data access
JUnit (too early), jsUnit (too difficult), Selenium (best)
No
ZK
Java , ZUML
Yes
Yes
Push & Pull
Yes
any J2EE ORM framework
Yes
Spring Security
macro components
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)
Banshee PHP
PHP 5
Banshee AJAX, jQuery /jQuery UI
Yes
Push
Module demos, security audit script
No
ACL -based
XSLT
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
CodeIgniter
PHP
Prototype /script.aculo.us , jQuery /jQuery UI]]
Modified active record pattern
Push
Yes
framework extension
Unit Tests
No
Yes
Yes
Yes
Yes
eZ Components
PHP
No
Yes
Push
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Yes
Fusebox
PHP
Yes
Not mandatory
Push
No, custom
multiple plugins available
via qforms or built in PHP validation
Midgard
PHP
jQuery
MidCOM
Pull
Yes
Midgard
PHPUnit
datagard
ACL -based
PHP and TAL
memcache
Yes
phunction
PHP 5
No
Optional
No
No
No
No
OpenID
Views
APC , File
Yes
Qcodo
PHP 5
built-in
QControl
Push
Yes
XML-based
Inherent
QForm and QControl
Yes
Yes
Simple Pattern Framework
PHP 5
No
Yes
Push
Yes
Active PHP
Database Query Debugger
No
Self Administered
Smarty
Yes
Self Administered
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, though)
plugin
Yes
Yes
Yes
Yii
PHP 5 (>=5.1.0)
jQuery , jQuery UI , own components
Yes
Push & Pull
Yes
Database Access Objects (DAO), Active Record
PHPUnit
Plugin
ACL -based, RBAC -based, plugins
PHP -based, PRADO-like, plugins
APC , Database, eAccelerator , File, Memcache, WinCache , XCache , Zend Platform
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)
jQuery /jQuery UI
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)
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
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
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
TurboGears
Python
Toolkit-independent, provides support via JSON
Full stack, best-of-breed based
Push
Yes
SQLAlchemy
nose
No
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
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.*
Ruby
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::Object , etc.
It supports perl testing standards, Test Anything Protocol (TAP) [ 2]
ACL -based, external engines, etc.
Template::Toolkit, HTML::Template, HTML::Mason, PHP and any Perl existing template engine
Cache, Memcached, shared memory, etc.
HTML::FormHandler HTML::FormFu, HTML::FormValidator, etc.
Flex
Actionscript , MXML
Not by name but similar technology [ 3]
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
No
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
Yes
qooxdoo
JavaScript
Yes
Data binding
i18n
Testrunner
Form Validation
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