Web client development framework

This page describes the existing open source development frameworks for web applications, with the goal of identifying one that would fit our needs for the demexp web client.

Most of these frameworks follow the MVC model.

NameWebsiteLicenceAjax or RIALanguageComments
Ex-nunchttp://www.ex-nunc.org/MITNot yetOCamlI like the attitude of ex-nunc developers
WDialoghttp://wdialog.sourceforge.net/GPLNoOCaml + XML for page descriptionSupport dialogs (set of pages) with information between dialogs. No i18n.
mod_camlhttp://merjis.com/developers/mod_camlLGPLNoOCaml (bytecode only)Work within Apache web server (tied to Apache).
OCamlNethttp://sourceforge.net/projects/ocamlnetlicenseNot includedOCamlProvides CGI, FCGI, SCGI, AJP, and Apache “mod” connectors. mod_caml style template
Ocsigenhttp://www.ocsigen.org/GPLUnder devtOCaml (or OCamlDuce)Uses its own web server
Djangohttp://www.djangoproject.com/BSDNot yetPythonBuilt-in support for localization. Works with own DB or SQL
Quixotehttp://www.mems-exchange.org/software/quixote/CNRI OPEN SOURCE LICENSE AGREEMENT FOR QUIXOTE-2.4YesPythonUsed to make lwn.net
Turbogearshttp://www.turbogears.org/about/index.htmlMIT licenceYes, good integrationPython-
Catalysthttp://catalyst.perl.org/Unkown, free softwareYes, by pluginsPerlClose to Ruby On Rails, Maypole, Spring.
Maypolehttp://maypole.perl.org/Same as PERL itselfNoPerl-
Ruby on Railshttp://www.rubyonrails.org/MIT licenceYes, Ajax on RailsRuby-
Ozone http://www.ozoneframework.org/LGPLNoPHP5-
Pagekithttp://pagekit.org/RICOH SOURCE CODE PUBLIC LICENSE No Perl-
PRADOhttp://www.xisc.com/BSDYesPHP-
CivicSpacehttp://civicspacelabs.org/home/civicspace/featuresGPL????-
Demehttp://www.groupspace.org/Affero General Public LicenseYes??-
Moodlehttp://docs.moodle.org/en/FeaturesGPL??PHPMoodle is oriented towards building pedagogical web sites. However, it could be useful for the way it considers social constructionism: social group constructing things for one another, collaboratively creating a small culture of shared artifacts with shared meanings (see http://docs.moodle.org/en/Philosophy).
OpenLazlohttp://www.openlaszlo.org/Common Public License Version 1.0YesLZX: Javascript + XMLUse Java for compilation of applications
Zend Frameworkhttp://framework.zend.com/BSD??PHPNo support of i18n
Nekohttp://nekovm.orgLGPLNoNekosmall embeddable VM with Apache module
haXehttp://haxe.orgGPLYeshaXetarget three platforms : Javascript/AJAX, Neko (for Server-side) and Flash (SWF). High level OO language with many modern features (type inference)

Some Frameworks that were not worth considering (e.g., based on Java, non-free, etc.) did not make it into the above list. Here they are:

More about Quixote

An introduction: http://quixote.ca/overview/paper.html

The Debian package (in main): http://packages.debian.org/stable/web/quixote

Good points about Quixote:

  • simple and small;
  • focused on the Python language (even for the template language).

Bad points:

  • no facilities to access SQL databases (but do we really need this).

More about Ajax

Comparison of OCaml frameworks

FunctionalityWDialogEx-NuncOcsigenmod_caml
Continuations based frameworkNoNoYesNo
Static validation of xhtmlNoNo. Run time validation plannedYesNo
i18n supportBasic support in CVS versionNo(use a i18n library such as ocaml-gettext)Use an external library
Database backendNoUsing external library(Using external library) Advanced support under development (2007-2008)(Using external library)
Session through hidden form fields (POST)YesYesYesYes
Session through URL parameters (GET)Yes (through Cgi interface)YesYesYes
Session savingMemory, external daemon, client hidden fields, databaseMemory, client hidden fieldsUsing closures in memory, and/or database on hard disk. Cookie at client sideCookie and database
Validation of typed script parametersNoYesYesNo
Script formXML description + OCaml codeHTML that contains OCaml code in special tagsOCaml code to describe the logic of the site. Ocaml functions generate pages (no specific template system).HTML templates, separate from OCaml code
Script interactionOCaml functions called with simulated events??OCaml function callsOCaml function calls
AJAX supportNoNot yetUnder development (2007-2008)No
Protection against HTML injectionYesYesYesYes, in templates
Protection against SQL injectionNoNoYes, if using for example PG’OCaml or ocamldbi for database accessYes, if using PG’OCaml or ocamldbi for database access
Development status2.1.2??version 1.01.4.0 (CVS version)
Communityvery smallnonesmall??
 
en/web_client_development_framework.txt · Last modified: 2008/04/11 22:32 by 82.234.66.214
 
Recent changes RSS feed Powered by PHP Valid XHTML 1.0 Valid CSS Debian Driven by DokuWiki