All Topics  
Web application framework

 

   Email Print
   Bookmark   Link






 

Web application framework



 
 
A web application framework is a software framework
Software framework

A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality....
 that is designed to support the development
Web development

Web development is a broad term for any activity related to developing a web site for the World Wide Web or an intranet. This can include e-commerce business development, web design, web content development, Client-side scripting/server-side scripting programming, and web server configuration....
 of dynamic websites
Dynamic web page

Classical hypertext navigation occurs among "static" documents, and, for "web users," this experience is reproduced using static web pages. However, Web browser can also provide an "interactive experience" that is termed "dynamic." Content on a web page can change, in response to different contexts or conditions....
, Web application
Web application

In software engineering, a web application or webapp is an Application software that is accessed via web browser over a network such as the Internet or an intranet....
s and Web service
Web service

A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network"....
s. The framework aims to alleviate the overhead associated with common activities used in Web development. For example, many frameworks provide libraries for database
Database

A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
 access, templating
Template (software engineering)

The term template, when used in the context of software engineeringhas various technical specifications, but is generally identified asany processing element that can be combined with a data model and...
 frameworks and session
Session (computer science)

In computer science, in particular computer network, a session is a semi-permanent interactive information exchange, also known as a dialogue, a conversation or a meeting, between two or more communicating devices, or between a computer and user ....
 management, and often promote code reuse
Code reuse

Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software....
.

he design of the World Wide Web
World Wide Web

The World Wide Web is a very large set of interlinked hypertext documents accessed via the Internet. With a Web browser, one can view Web pages that may contain writing, s, videos, and other multimedia and navigate between them using hyperlinks....
 was not inherently dynamic, early hypertext
Hypertext

Hypertext is text, displayed on a computer, with references to other text that the reader can immediately follow, usually by a mouse click or keypress sequence....
 consisted of hand-coded HTML
HTML

HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
 that was published on web servers.






Discussion
Ask a question about 'Web application framework'
Start a new discussion about 'Web application framework'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A web application framework is a software framework
Software framework

A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality....
 that is designed to support the development
Web development

Web development is a broad term for any activity related to developing a web site for the World Wide Web or an intranet. This can include e-commerce business development, web design, web content development, Client-side scripting/server-side scripting programming, and web server configuration....
 of dynamic websites
Dynamic web page

Classical hypertext navigation occurs among "static" documents, and, for "web users," this experience is reproduced using static web pages. However, Web browser can also provide an "interactive experience" that is termed "dynamic." Content on a web page can change, in response to different contexts or conditions....
, Web application
Web application

In software engineering, a web application or webapp is an Application software that is accessed via web browser over a network such as the Internet or an intranet....
s and Web service
Web service

A Web service is defined by the W3C as "a software system designed to support interoperability Machine to Machine interaction over a computer network"....
s. The framework aims to alleviate the overhead associated with common activities used in Web development. For example, many frameworks provide libraries for database
Database

A database is a structured collection of records or data that is stored in a computer system. The structure is achieved by organizing the data according to a database model....
 access, templating
Template (software engineering)

The term template, when used in the context of software engineeringhas various technical specifications, but is generally identified asany processing element that can be combined with a data model and...
 frameworks and session
Session (computer science)

In computer science, in particular computer network, a session is a semi-permanent interactive information exchange, also known as a dialogue, a conversation or a meeting, between two or more communicating devices, or between a computer and user ....
 management, and often promote code reuse
Code reuse

Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software....
.

History

As the design of the World Wide Web
World Wide Web

The World Wide Web is a very large set of interlinked hypertext documents accessed via the Internet. With a Web browser, one can view Web pages that may contain writing, s, videos, and other multimedia and navigate between them using hyperlinks....
 was not inherently dynamic, early hypertext
Hypertext

Hypertext is text, displayed on a computer, with references to other text that the reader can immediately follow, usually by a mouse click or keypress sequence....
 consisted of hand-coded HTML
HTML

HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
 that was published on web servers. Any modifications to published pages needed to be performed by the pages' author. To provide a dynamic web page
Dynamic web page

Classical hypertext navigation occurs among "static" documents, and, for "web users," this experience is reproduced using static web pages. However, Web browser can also provide an "interactive experience" that is termed "dynamic." Content on a web page can change, in response to different contexts or conditions....
 that reflected user inputs, the Common Gateway Interface
Common Gateway Interface

The Common Gateway Interface is a Standardization Protocol for interfacing external application software with an Server , commonly a web server....
 (CGI) standard was introduced for interfacing external applications with web servers. CGI could adversely affect server load, though, since each request had to start a separate process.

Programmers wanted tighter integration with the web server to enable high traffic web applications. The Apache HTTP Server
Apache HTTP Server

The Apache HTTP Server, commonly referred to simply as Apache , is a web server notable for playing a key role in the initial growth of the World Wide Web....
, for example, supports modules that can extend the web server with arbitrary code executions (such as mod perl
Mod perl

mod_perl is an optional module for the Apache HTTP server. It embeds a Perl Interpreter into the Apache server, so that dynamic content produced by Perl Scripting language can be served in response to incoming requests, without the significant overhead of re-launching the Perl interpreter for each request....
) or forward specific requests to a web server that can handle dynamic content (such as mod jk
Mod jk

mod_jk is the connector used to connect Apache Tomcat jsp container with web servers such as Apache HTTP Server, Netscape, iPlanet, SunOne and even Internet Information Services using the Apache JServ Protocol protocol....
). Some web servers (such as Apache Tomcat
Apache Tomcat

Apache Tomcat is a servlet container developed by the Apache Software Foundation . Tomcat implements the Java Servlet and the JavaServer Pages specifications from Sun Microsystems, and provides a "pure Java " Hypertext Transfer Protocol web server environment for Java code to run....
) were specifically designed to handle dynamic content by executing code written in some languages, such as Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
.

Around the same time, new languages were being developed specifically for use in the web, such as ColdFusion
ColdFusion

ColdFusion is an application server and software language used for Internet application development such as for dynamic web page. In this regard, ColdFusion is a similar product to Microsoft Active Server Pages, JavaServer Pages or PHP....
, PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
 and Active Server Pages
Active Server Pages

Active Server Pages , also known as Classic ASP, was Microsoft's first server-side scripting Active Scripting for dynamic web page. Initially released as an add-on to Internet Information Services via the Windows_NT_4.0#Option_Pack, it was subsequently included as a free component of Windows Server ....
.

While the vast majority of languages available to programmers to use in creating dynamic web pages have libraries to help with common tasks, web applications often require specific libraries that are useful in web applications, such as creating HTML
HTML

HTML, an Acronym and initialism of HyperText Markup Language, is the predominant markup language for Web pages. It provides a means to describe the structure of text-based information in a document?by denoting certain text as links, headings, paragraphs, lists, and so on?and to supplement that text with interactive forms, embedded '...
 (for example, JavaServer Faces
JavaServer Faces

is a Java -based Web application framework intended to simplify Software of user interfaces for Java EE applications. Unlike request-driven Model-view-controller web frameworks, JSF uses a component-based approach....
).

Eventually, mature, "full stack" frameworks appeared, that often gathered multiple libraries useful for web development
Web development

Web development is a broad term for any activity related to developing a web site for the World Wide Web or an intranet. This can include e-commerce business development, web design, web content development, Client-side scripting/server-side scripting programming, and web server configuration....
 into a single cohesive software stack for web developers to use. Examples of this include JavaEE
Java Platform, Enterprise Edition

Java Platform, Enterprise Edition or Java EE is a widely used Platform for Server programming in the Java programming language. The Java Platform differs from the Java Platform, Standard Edition in that it adds libraries which provide functionality to deploy fault-tolerant, Distributed computing, multitier architecture Java Applicat...
 (Servlets), WebObjects
WebObjects

WebObjects is a Java platform web application server from Apple Inc., and a web application framework that runs on the server. It is available, at no additional cost, as part of the Xcode included with Apple's Mac OS X operating system....
, OpenACS
OpenACS

The Open Architecture Community System is an open-source web application framework licensed under the terms of the GNU General Public License....
, and Ruby on Rails
Ruby on Rails

Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects....
.

Architectures


Model view controller

Many frameworks follow the Model View Controller (MVC) architectural pattern
Architectural pattern (computer science)

Architectural patterns are software patterns that offer well-established solutions to software architecture problems in software engineering. It gives description of the elements and relation type together with a set of constraints on how they may be used....
 to separate the data model
Data model

A data model in software engineering is an abstract model that describes how Data is represented and accessed. Data models formally define data elements and relationships among data elements for a domain of interest....
 with business rules from user interface
User interface

The user interface is the aggregate of means by which people—the User s—Interaction with the system—a particular machine, device, computer program or other complex tools....
.
Push-based vs. Pull-based
Most MVC frameworks follow a push-based architecture. These frameworks use actions that do the required processing, and then "push" the data to the view layer to render the results. Struts, Django, Ruby on Rails
Ruby on Rails

Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects....
 and Spring MVC are good examples of this architecture. An alternative to this is pull-based architecture, sometimes also called "component-based". These frameworks start with the view layer, which can then "pull" results from multiple controllers as needed. In this architecture, multiple controllers can be involved with a single view. Struts2
Struts2

IntroductionApache Struts 2 is a brand-new, state-of-the-art web application framework. Struts 2 isn?t just a new release of the older Strutsframework....
, Tapestry
Tapestry (programming)

Tapestry is an object-oriented Java web application framework to implement applications in accordance with the model-view-controller Design pattern ....
, JBoss Seam
JBoss Seam

JBoss Seam is a web application framework developed by JBoss, a division of Red Hat. The project lead is Gavin King , who also was the key initiator of the Object-relational mapping framework Hibernate ....
 and Wicket are examples of pull-based architectures.

Content Management Systems

Some self-described content management systems have begun to expand into higher layer web application frameworks. For instance, Drupal
Drupal

Drupal is a free software and open source modular Software framework and Content Management System written in the programming language PHP. It is used as a "back end" system for many different types of websites, ranging from small personal blogs to large corporate and political sites....
's structure provides a minimal core whose function is extended through modules that provide functions generally associated with web application frameworks. Joomla, XOOPS
XOOPS

XOOPS is a free software content management system, written in PHP, for websites. It uses a modular architecture allowing users to customize, update and theme their websites....
, Plone and TYPO3
TYPO3

TYPO3 is a free software and open source content management system written in PHP....
 have similar functionality. Historically these projects have been termed content management system
Content management system

A content management system is a computer application used to create, edit, manage, search and publish various kinds of Content . CMSs are frequently used for storing, controlling, versioning, and publishing industry-specific documentation such as news articles, operators' manuals, technical manuals, sales guides, and marketing brochures....
s. However, it is debatable whether "management of content" is the primary value of such systems, especially when some, like SilverStripe
SilverStripe

SilverStripe is a Free and open source software programming framework and content management system for creating and maintaining websites. The CMS provides an intuitive web-based administration panel, allowing any person to maintain their website without knowledge of markup or programming languages....
, provide an object-oriented MVC framework. Add-on modules now enable these systems to function as full fledged applications beyond the scope of content management. They may provide functional APIs, functional frameworks, coding standards, and many of the functions traditionally associated with Web application frameworks.

Features


Security

Some web application frameworks come with authentication
Authentication

Authentication is the act of establishing or confirming something as authentic, that is, that claims made by or about the subject are true....
 and authorization
Authorization

Authorization is the function of specifying access rights to resources, which is related to information security and computer security in general and to access control in particular....
 frameworks, that enable the web server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
 to identify the users of the application, and restrict access to functions based on some defined criteria. Django is one example that provides role-based access to pages, and provides a web-based interface for creating users and assigning them roles.

Database access and mapping

Many web application frameworks create a unified API to a database backend, enabling web applications to work with a variety of databases with no code changes, and allowing programmers to work with higher-level concepts. For higher performance, database connections should be pooled as e.g. AOLserver
AOLserver

AOLserver is America Online's open source web server. AOLserver ismultithreaded, Tcl-enabled, and used for large scale, dynamic web sites.AOLserver is distributed under the Mozilla Public License....
 does. Additionally, some object-oriented
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
 frameworks contain mapping tools to provide Object-Relational Mapping
Object-relational mapping

Object-relational mapping is a Computer programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages....
, which will map objects
Object-oriented programming

Object-oriented programming is a programming paradigm that uses "Object_" and their interactions to design applications and computer programs....
 to tuples
Relational model

The relational model for database management is a database model based on first-order logic, first formulated and proposed in 1969 by Edgar F. Codd....
.

Other features web application frameworks may provide include transactional support
Database transaction

A database transaction comprises a unit of work performed within a database management system against a database, and treated in a coherent and reliable way independent of other transactions....
 and database migration tools
Data migration

Data migration is the process of transferring data between computer storage types, formats, or computer systems. Data migration is usually performed programmatically to achieve an automated migration, freeing up human resources from tedious tasks....
.

URL mapping

A framework's URL
Uniform Resource Locator

In Information technology, a Uniform Resource Locator is a type of Uniform Resource Identifier that specifies where an identified resource is available and the mechanism for retrieving it....
 mapping facility is the mechanism by which the framework interprets URLs. Some frameworks, such as Django, match the provided URL against pre-determined patterns using regular expression
Regular expression

In computing, regular expressions provide a concise and flexible means for identifying strings of text of interest, such as particular characters, words, or patterns of characters....
s, while some others use URL Rewriting
Rewrite engine

A rewrite engine is software that modifies a web Uniform Resource Locator's appearance . Rewritten URL's are used to provide shorter and more relevant-looking links to web pages....
 to translate the provided URL into one that the underlying engine will recognize.

A URL mapping system that uses pattern matching or URL rewriting allows more "friendly" URLs to be used, increasing the simplicity of the site and allowing for better indexing by search engines. For example, a URL that ends with "/page.cgi?cat=science&topic=physics" could be changed to simply "/page/science/physics". This makes the URL easier to read and provides search engines with better information about the structural layout of the site.

Web template system

Dynamic web pages usually consist of a static part (HTML) and a dynamic part, which is code that generates HTML. The code that generates the HTML can do this based on variables in a template, or on code. The text to be generated can come from a database, thereby making it possible to dramatically reduce the number of pages in a site.

Consider the example of a real estate agent with 500 houses for sale. In a static web site, the agent would have to create 500 pages in order to make the information available. In a dynamic website, the agent would simply connect the dynamic page to a database table of 500 records.

In a template
Web template

A web template is a tool used to Separation of concerns content from presentation in web design, and for mass-production of web documents. It is a basic component of a web template system....
, variables from the programming language can be inserted without using code, thereby losing the requirement of programming knowledge to make updates to the pages in a web site. A syntax is made available to distinguish between HTML and variables. E.g. in JSP the tag is used to output variables, and in Smarty, is used.

Many template engines do support limited logic tags, like IF and FOREACH. These are to be used only for decisions that need to be made for the presentation layer, in order to keep a clean separation from the business logic layer, or the M(odel) in the MVC pattern.

Caching

Web caching is the caching of web
World Wide Web

The World Wide Web is a very large set of interlinked hypertext documents accessed via the Internet. With a Web browser, one can view Web pages that may contain writing, s, videos, and other multimedia and navigate between them using hyperlinks....
 documents
Electronic document

An electronic document is any electronic media Content that are intended to be used in either an electronic form or as printed output.Originally, any computer data were considered as something internal — the final data output was always on paper....
 in order to reduce bandwidth
Bandwidth (computing)

In computer networking and computer science, digital bandwidth, network bandwidth or just bandwidth is a measure of available or consumed data communication resources expressed in bit/s or multiples of it ....
 usage, server
Web server

The term web server can mean one of two things:# A computer program that is responsible for accepting Hypertext Transfer Protocol requests from clients , and Server them HTTP responses along with optional data contents, which usually are web pages such as Hypertext Markup Language documents and linked objects ....
 load, and perceived "lag
Lag

In computing and especially computer networks, lag is a term used where the computer freezes and then continues some time later when an action is performed, for example clicking a mouse button....
". A web cache stores copies of documents passing through it; subsequent requests may be satisfied from the cache if certain conditions are met. Some application frameworks provide mechanisms for caching documents and bypassing various stages of the page's preparation, such as database access or template interpretation.

Ajax


Ajax
Ajax (programming)

Ajax, or AJAX , is a group of interrelated web development techniques used to create interactive web applications or rich Internet applications....
, shorthand for "Asynchronous
Asynchrony

Asynchrony, in the general meaning, is the state of not being synchronization.* Asynchronous learning* Collaborative editing systemsIn specific terms of digital logic and physical layer of communication, an asynchronous process does not require a clock signal....
 JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
 and XML
", is a web development
Web development

Web development is a broad term for any activity related to developing a web site for the World Wide Web or an intranet. This can include e-commerce business development, web design, web content development, Client-side scripting/server-side scripting programming, and web server configuration....
 technique for creating interactive web application
Web application

In software engineering, a web application or webapp is an Application software that is accessed via web browser over a network such as the Internet or an intranet....
s. The intent is to make web pages feel more responsive by exchanging small amounts of data with the server behind the scenes, so that the entire web page does not have to be reloaded each time the user requests a change. This is intended to increase the web page's interactivity, speed, and usability
Usability

Usability is a term used to denote the ease with which people can employ a particular tool or other human-made object in order to achieve a particular goal....
.

Due to complexity of Ajax programming, there are numerous Ajax framework
Ajax framework

An Ajax framework is a Web application framework that helps to develop web applications that use Ajax , a collection of technologies used to build dynamic web pages on the client side....
s that exclusively deal with Ajax support. Some Ajax frameworks are even embedded as a part of larger frameworks. For example, the Prototype JavaScript Framework
Prototype Javascript Framework

The Prototype JavaScript Framework is a JavaScript Software framework created by Sam Stephenson which provides an Ajax framework and other utilities....
 is included in Ruby on Rails
Ruby on Rails

Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects....
.

Automatic configuration

Some frameworks minimize web application configuration through the use of introspection and/or following known conventions. For example, many Java frameworks use Hibernate
Hibernate

Hibernation is a state of regulated hypothermia undergone by some animals to conserve energy during the winter.Hibernate may also refer to:* Hibernate , the ability of some operating systems to suspend themselves completely to persistent storage...
 as a persistence layer, which can generate a database schema at runtime capable of persisting the necessary information. This allows the application designer to design business objects without needing to explicitly define a database schema. Frameworks such as Ruby on Rails
Ruby on Rails

Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects....
 can also work in reverse, that is, define properties of model objects at runtime based on a database schemas.

Web services


Some frameworks provide tools for creating and providing web services. These utilities may offer similar tools as the rest of the web application.

Technologies


Languages

Many languages have an associated web application framework. However, certain languages either have a critical mass of developers to give a higher level of support to frameworks, or provide features that prove conducive to the development of web application frameworks

Java
There are numerous Java frameworks either in development or in use. Many of these frameworks are built on top of, or borrow elements from the Java EE platform
Java Platform, Enterprise Edition

Java Platform, Enterprise Edition or Java EE is a widely used Platform for Server programming in the Java programming language. The Java Platform differs from the Java Platform, Standard Edition in that it adds libraries which provide functionality to deploy fault-tolerant, Distributed computing, multitier architecture Java Applicat...
 or Eclipse
Eclipse (software)

Eclipse is a multi-language software development environment comprising an Integrated development environment and a plug-in system to extend it....
 etc.

C# and VB.NET
C# and VB.NET are the most popular languages used to create web applications using Microsoft's
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 ASP.NET
ASP.NET

ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services....
 platform. (ASP.NET is built on the Common Language Runtime
Common Language Runtime

The Common Language Runtime is a core component of Microsoft .NET Framework initiative. It is Microsoft's implementation of the Common Language Infrastructure standard, which defines an execution environment for program code....
, allowing programmers to use any supported .NET language.) ASP.NET has an integrated AJAX framework, ASP.NET AJAX.

ColdFusion

ColdFusion has several active frameworks, including:

  • cfwheels
  • ColdBox
  • Fusebox
    Fusebox

    Fusebox may refer to:* Fuse #Fuse boxes in electric wiring* Fuseboxx, a metal band from the Philippines* Fusebox , a web development programming framework...
  • Mach-II
    Mach-II

    Mach-II is an open-source object-oriented programming web application framework based on the model-view-controller design pattern. The framework focuses on trying to ease software development and maintenance....
  • Model-Glue
    Model-Glue

    Model-Glue is a Object-oriented programming web application framework based on the Model-view-controller design pattern. Its goal is to simplify development of OO ColdFusion applications....
  • onTap
    Ontap

    The onTap framework is a open source software Service-oriented architecture and "full stack" web application framework for Adobe ColdFusion.In addition to providing an Model-View-Controller controller like most other ColdFusion frameworks, it also includes an array of Application Programming Interfaces for rapid application development, inc...


PHP
PHP
PHP

PHP is a scripting language originally designed for producing dynamic web pages. It has evolved to include a command line interface capability and can be used in Standalone software Graphical user interface....
's original design for dynamic web pages has given support to projects such as CakePHP
CakePHP

CakePHP is an open source web application framework for producing web applications written in PHP. It is written in PHP, modeled after the concepts of Ruby on Rails, and distributed under the MIT License....
, CodeIgniter
CodeIgniter

CodeIgniter is an open source web application framework for use in building dynamic web sites with PHP. It enables developers to build applications faster - compared to coding from scratch - by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and a logical structure to access these libraries....
, PRADO, ThinkPHP, Qcodo
Qcodo

The QCodo Development Framework is an open-source PHP 5 web application framework which builds an Object Relational Model , CRUD UI pages, and AJAX hooks from an existing data model....
, symfony
Symfony

Symfony is a web application framework written in PHP which follows the model-view-controller paradigm. Released under the MIT license, Symfony is free software....
, Zoop Framework
Zoop Framework

Zoop Framework stands for Zoop Object Oriented PHP Framework.Zoop is a free software, object oriented web application framework for PHP based on the Model View Controller Methodology....
, Orinoco Framework
Orinoco Framework

The Orinoco Framework is an open source, object-oriented, full-stack web framework implemented in PHP and released under the MIT License. The framework follows the Model-View-Controller architecture and implements the Model 2 design paradigm....
, the eZ publish
EZ publish

eZ Publish is an open source enterprise content management system developed by the Norwegian company eZ Systems. eZ Publish is Free software available under the GPL licence, as well as under proprietary licenses that include commercial support....
 web publishing framework and the Zend Framework
Zend Framework

Zend Framework is an open source, object-oriented web application framework implemented in PHP 5 and licensed under the New BSD License....
. These frameworks assist application structure and modeling by providing a framework layer on top of the core language. These attack the programming problem from the "bottom-up."

In contrast with the mentioned frameworks, software projects like Drupal
Drupal

Drupal is a free software and open source modular Software framework and Content Management System written in the programming language PHP. It is used as a "back end" system for many different types of websites, ranging from small personal blogs to large corporate and political sites....
, Joomla, MODx
MODx

MODx is a free software, open source software content management system and web application framework for publishing content on the world wide web and intranets....
, or TYPO3
TYPO3

TYPO3 is a free software and open source content management system written in PHP....
 have begun to morph from web content management systems to a higher layer web application framework. Their structure generally provides a minimal core whose function is extended through modules that provide functions generally associated with web application frameworks. SilverStripe
SilverStripe

SilverStripe is a Free and open source software programming framework and content management system for creating and maintaining websites. The CMS provides an intuitive web-based administration panel, allowing any person to maintain their website without knowledge of markup or programming languages....
 began life as both a framework and CMS rather than starting with one and going to the other. As open source
Open source

Open source is an approach to design, development, and distribution offering practical accessibility to a product's source . Some consider open source as one of various possible design approaches, while others consider it a critical Strategy element of their business operations....
 projects, their communities contribute many modules (for example, Drupal
Drupal

Drupal is a free software and open source modular Software framework and Content Management System written in the programming language PHP. It is used as a "back end" system for many different types of websites, ranging from small personal blogs to large corporate and political sites....
 has over 2,000 such modules and Typo3 more than 2,500). Use of these CMS's core+modules constitutes a method for assembling a website with a broad range of application features without actually doing any PHP-level coding.

Perl, Python, Ruby, Lua
There are numerous dynamic language frameworks:

  • Perl has Catalyst
    Catalyst (software)

    Catalyst is an open source web application framework written in Perl, that closely follows the model-view-controller architecture, and supports a number of experimental web patterns....
    , Maypole, Jifty, CGIApplication, and WebGUI, amongst others.


  • Python has, for example, Django, TurboGears
    TurboGears

    TurboGears is a Python web application framework consisting of several underlying components such as MochiKit, SQLObject, CherryPy and Kid .TurboGears was created in 2005 by Kevin Dangoor as the framework behind the as yet unreleased Zesty News product....
    , Pylons, Zope
    Zope

    Zope is a free software and open source software, object-oriented web application server written in the Python programming language. Zope stands for "Z Object Publishing Environment." It can be almost fully managed with a web-based user interface....
    , Quixote, Karrigell
    Karrigell

    Karrigell is a web application framework written purely in the Python programming language. It is comparable to other Python web frameworks and to commercial web frameworks called WebSphere and WebLogic , though much smaller in scope and features....
     and web2py
    Web2py

    Description Web2py is an open source framework for agile development of database driven web applications. Web2py is written in the Python language and is programmable in Python....
    . There are many other options available as well.


  • Ruby has Ruby on Rails
    Ruby on Rails

    Ruby on Rails is an open source web application framework for the Ruby . It is often referred to as "Rails" or "RoR". It is intended to be used with an agile software development, which is often utilized by web developers for its suitability for short, client-driven projects....
     and Merb
    Merb

    Merb, short for "Mongrel +eRuby#erb", is a Model View Controller web framework written in Ruby . Merb adopts an approach that focuses on essential core functionality, leaving most functionality to plugins....
     among others.


  • Lua has Kepler
    Kepler (software)

    Kepler is a free software project written in Lua programming language that provides a portable, extensible website development platform. Current stable release is Kepler 1.1, for Lua 5.1....
     and Orbit.


Common Lisp
There are a number of web application frameworks written in Common Lisp
Common Lisp

Common Lisp, commonly abbreviated CL, is a dialect of the Lisp programming language, published in American National Standards Institute standard document Information Technology - Programming Language - Common Lisp, formerly X3.226-1994 ....
, including UnCommon Web
UnCommon Web

UnCommon Web is a web application framework for Common Lisp. It uses Continuation-passing style to control complexity, as opposed to REST. It is primarily intended for developing applications that use the web browser as a graphical user interface , as opposed to a web-based interface to a database....
, Webactions, BKNR
BKNR

BKNR is a web application framework for Common Lisp.External links...
, ABCL-web
ABCL-web

ABCL-web is a web application framework for Common Lisp. It is notable for using the Armed_Bear_Common_Lisp Common Lisp implementation which runs on top of Java Virtual Machines....
, blow
Blow (web framework)

blow is a simple web application framework for Common Lisp designed for deployment within Java Servlet Web container.External links...
, and .

TCL
OpenACS
OpenACS

The Open Architecture Community System is an open-source web application framework licensed under the terms of the GNU General Public License....
 is an open source web application framework designed for developing high traffic web applications in Tcl
Tcl

Tcl is a scripting language created by John Ousterhout. Originally "born out of frustration"?according to the author?with programmers devising their own languages intended to be embedded into applications, Tcl quickly gained wide acceptance on its own and is generally thought to be easy to learn, but powerful in competent hands....
.

Smalltalk
Seaside
Seaside web framework

Seaside is a free software and open source software web application framework for developing web applications in Smalltalk.Seaside provides a component architecture in which web pages are built as trees of individual, stateful components, each encapsulating a small portion of a page....
 is an open source web application framework for developing web applications in Smalltalk
Smalltalk

Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
. Although the main development of Seaside happens in Squeak
Squeak

The Squeak programming language is a Smalltalk implementation, derived directly from Smalltalk-80 by a group at Apple Computer that included some of the original Smalltalk-80 developers....
 there exist ports to all major Smalltalk dialects.

AIDA/Web
AIDA/Web

AIDA/Web is an object-oriented, open source Smalltalk web application server using the model-view-controller architectural pattern. First developed in 1996 by Janko Mivsek, AIDA/Web was designed to integrate the quite distinct object and web philosophies....
 is another open source web framework and application server based on many open source and commercial dialects of Smalltalk
Smalltalk

Smalltalk is an Object-oriented programming, Type system, reflection computer programming programming language. Smalltalk was created as the language to underpin the "new world" of computing exemplified by "human?computer symbiosis." It was designed and created in part for educational use, more so for constructionist learning, at PARC by Al...
.

JavaScript
Helma is an open source web application framework / publishing system written in Java
Java (programming language)

Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java ....
 which uses JavaScript
JavaScript

JavaScript is a scripting language widely used for client-side web development. It was the originating Programming language dialect of the ECMAScript standard....
 as programming language.

Operating Systems

With very few exceptions, web application frameworks are based upon platform independent languages that run on a variety of platforms. While some frameworks may recommend particular configurations, most can run on Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, Linux
Linux

Linux is a generic term referring to Unix-like computer operating systems based on the Linux kernel. Their development is one of the most prominent examples of free and open source software collaboration; typically all the underlying source code can be used, freely modified, and redistributed by anyone under the terms of the GNU GPL license...
, Mac
Mac OS X

Mac OS X is a line of computer operating systems developed, marketed, and sold by Apple Inc., and since 2002 has been included with all new Macintosh computer systems....
 and other Unix
Unix

Unix is a computer operating system originally developed in 1969 by a group of American Telephone & Telegraph employees at Bell Labs, including Ken Thompson , Dennis Ritchie, Douglas McIlroy, and Joe Ossanna....
-based platforms.

See also

  • Application framework
    Application framework

    In computer programming, an application framework is a software framework that is used to implement the standard structure of an application software for a specific operating system....
  • Application security
    Application security

    Application security encompasses measures taken throughout the application's life-cycle to prevent exceptions in the security policy of an application software or the underlying operating system through flaws in the software design, Software engineering, software deployment, Software upgrading, or Software maintenance of the application, ....
  • Comparison of web application frameworks
    Comparison of web application frameworks

    This is a comparison of notable web application frameworks....
  • Don't repeat yourself
    Don't repeat yourself

    Don't Repeat Yourself is a process philosophy aimed at reducing duplication, particularly in computing. The philosophy emphasizes that information should not be duplicated, because duplication increases the difficulty of change, may decrease clarity, and leads to opportunities for inconsistency....
     (DRY)
  • List of web application frameworks
    List of web application frameworks

    This is a list of notable web application frameworks, used for creating web applications....
  • List of Web service Frameworks
    List of Web service Frameworks

    A list of web service frameworks:...
  • Rich Internet Application
    Rich Internet application

    Rich Internet applications are web applications that have some of the characteristics of Application software, typically delivered by way of an Ajax framework, Proprietary software web browser Plug-in s, advanced javascript compiler technology, or independently via Sandbox es or virtual machines....
  • Software framework
    Software framework

    A software framework, in computer programming, is an abstraction in which common code providing generic functionality can be selectively overridden or specialized by user code providing specific functionality....
  • Solution stack
    Solution stack

    In computing, a solution stack is a set of software subsystems or components needed to deliver a fully functional solution, e.g. a product or service....
  • JavaScript library
    JavaScript library

    A JavaScript library is a Library of pre-written JavaScript controls which allow for easier development of JavaScript-based applications, especially for Ajax and other World Wide Web-centric technologies....