Ample SDK

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search
Ample SDK
Stable release 0.8.9 / November 3, 2009; 407185050 ago
Written in JavaScript
Development status Active
Type Web application framework
License Dual license: GPL / MIT[1]

Ample SDK is a lightweight JavaScript library that enables standards-based web application development. It has a full implementation of the core level of the DOM W3C technologies. Therefore it abstracts end developer from differences found in web-browsers' own DOM implementations while allowing them to code applications against standard-based APIs. It is unobtrusive and when running, it doesn't modify the browser infrastructure, while adding missing technologies and APIs. The main purpose of the Ample SDK framework is enabling Rich Internet application rather than enhancing HTML pages, for which libraries like jQuery or Prototype.js fit better.



The Ample SDK framework can be seen as a User Agent (like a web browser, Flash or Silverlight) that implements standard web W3C technologies. Ample consists of a Runtime and has implementations for UI Markup Languages.


The runtime is the core module of the Ample SDK framework. It contains implementations for:

Scripting APIs

XML-based technologies

UI Managers

  • Drag & Drop
  • Resize
  • Focus
  • Capture
  • History
  • Selection

UI Markup Languages

The UI Markup Languages are implemented in JavaScript independently on each other:

Standards-based web-development

Creation of a client-side application in Ample SDK is done in exactly the same way as when you would do it in a regular web-browser, with only one exception: The API and behavior are consistent on all web-browsers that run the framework.

User Interface

The Application User Interface is defined in an XML Markup Language, for example:

<script type="application/ample+xml" xmlns:xul="">
	<xul:listbox type="checkbox" height="200" onselect="onListBoxSelect(event)">
	        <xul:listheader width="30" minwidth="30" label="id"/>
	        <xul:listheader width="600" minwidth="300" label="Name" tooltiptext="Shows firstname of the person. Click to sort."/>
	        <xul:listheader label="column2" minwidth="200" tooltiptext="Shows lastname of the person. Click to sort."/>
	        <xul:listheader width="200" minwidth="200" label="column2" tooltiptext="Shows person location. Click to sort."/>
	    <xul:listbody id="listbody">
	        <xul:listitem class="test">
	            <xul:listcell label="1" />
	            <xul:listcell label="George"/>
	            <xul:listcell label="House Painter"/>
	            <xul:listcell label="USA"/>
	        <xul:listitem class="test2">
	            <xul:listcell label="2" />
	            <xul:listcell label="Mary Ellen"/>
	            <xul:listcell label="Candle Maker"/>
	            <xul:listcell label="Java"/>


The Application Logic of your client web application is written in JavaScript. For example:

<script type="text/javascript">
function onListBoxSelect(oEvent) {
    if (oEvent.currentTarget.selectedItem)


The styling of your application is done in CSS, for example:

<style type="text/ample+css">
@namespace xul "";
.test {
    font-weight: bold;
xul|listitem:selected {
    background-color: blue;
    color: white;

Componentization model

Although there is a set of pre-defined UI Markup Languages (including XUL, XHTML, SVG and HTML5) it is easy to extend the base (to adjust it to certain application needs) and create new languages and UI components. This is done by either prototyping objects in JavaScript and registering them with the framework, or by implementing these components in XBL2. The UI Languages that are currently present in Ample are prototype implementations.

Related links


External links

pl:Ample SDK

Personal tools

Served in 0.729 secs.