onTap

onTap
onTap
Powerontap.png
"Features Without Fixtures"
Developer(s) S. Isaac Dealey
Stable release 3.2b / September 24, 2008; 3 years ago (2008-09-24)
Operating system Cross-platform
Type web application framework
Licence OpenBSD
Website on.tapogee.com

The onTap framework is a free service-oriented and "full stack" web application framework for ColdFusion.

In addition to providing an MVC controller like most other ColdFusion frameworks, it also includes an array of APIs for rapid application development, including e-mail, HTML templating (and associated DHTML widgets such as Section 508 compliant tabsets), AJAX, application branding and customization, form management and i18n internationalization features.

Contents

License

The onTap framework is distributed using the OpenBSD license.

Several of the early versions of the framework (prior to version 2.0) were released under the Lesser GPL. The LGPL had been chosen specifically for the purpose of allowing commercial software to be written using the framework as a starting-point. The OpenBSD license was later adopted for its even less restrictive terms, allowing commercial projects based on the framework to encrypt their own proprietary source code (which was not allowed by the LGPL).

Philosophy

The onTap framework has several key goals:

  • Speed and improve rapid application development (RAD) by simplifying common or tedious web development tasks as well as providing convenient methods of accomplishing very complex tasks such as and/or keyword search filtering (this example is from the object-relational mapping (ORM) tool which has split into a separate project called DataFaucet ORM). The use of syntactic sugar is a primary method of achieving this goal.
  • Enable better integration and collaboration between separate applications provided by different authors via a service-oriented architecture (SOA). The long-term goal is a software ecosystem similar to add-ons for the Mozilla Firefox browser in which plugin applications can be one-click installed via the existing browser-based interface.
  • Enable easier customization of Software as a service (SaaS) applications by separating client customizations into their own directory structures thereby reducing conflicts between potentially incompatible customization requests. This is being described as a virtual private application (VPA) as an analogy to the web hosting term virtual private server (VPS).

These goals are similar to and overlap the intent of agile software development methodologies or the Agile Manifesto seeking a "lightweight" method of software development that can produce versatile working software very quickly.

To meet the objective of simplifying and improving the RAD process, the framework's core principles include Convention over Configuration (CoC) and Don't Repeat Yourself (DRY). One example of CoC and DRY principles can be found in the framework's form features. The form tools allow programmers to omit most of the code required to create common CRUD forms by relying on the database as the single point of truth for information about the type of data managed by the form. The following are examples of a form as created using the CFML native cfform tag as compared to using the onTap framework's CoC / DRY concepts for CRUD forms.

Sample Code

The following code sample shows how many ColdFusion forms are written:

<cfparam name="attributes.eventid" default="" />
<cfif len(trim(attributes.eventid))>
  <cfquery name="getEvent" datasource="primary">
    select * from tblEvent 
    where eventid = <cfqueryparam value="#attributes.eventid#" cfsqltype="cf_sql_idstamp" />
  </cfquery>
  <cfparam name="attributes.eventname" default="#getevent.eventname#" />
  <cfparam name="attributes.eventdate" default="#getevent.eventdate#" />
  <cfparam name="attributes.ticketprice" default="#getevent.ticketprice#" />
</cfif>
 
<cfparam name="attributes.eventname" default="" />
<cfparam name="attributes.eventdate" default="" />
<cfparam name="attributes.ticketprice" default="0" />
<cfform format="xml">
  <cfinput type="hidden" name="eventid" value="#attributes.eventid#" />
  <cfinput type="text" name="eventname" label="Event" 
    required="yes" value="#attributes.eventname#" />
  <cfinput type="text" name="eventdate" label="Date" 
    required="yes" value="#attributes.eventdate#" validate="date" />
  <cfinput type="text" name="ticketprice" label="Ticket Price" 
    required="yes" value="#attributes.ticketprice#" validate="numeric" />
</cfform>

The following code sample shows how the same form could be written using the onTap framework's XHTML template engine in combination with the DataFaucet ORM plugin to speed development. This code anticipates the intent of the code in the previous sample by using a conventional relationship between database columns and form input elements. These two code samples produce an approximately similar result with mostly semantic differences in operation. This supports the philosophy of CoC because the programmer only needs to specify the value of an input element (or its default) or the type of validation (date, numeric, required, etc.) in atypical cases in which the input doesn't mirror the structure of the database.

<cf_html>
<tap:form tap:dbtable="tblEvent" xmlns:tap="xml.tapogee.com">
  <input type="hidden" name="eventid" />
  <input type="text" name="eventname" label="Event" />
  <input type="text" name="eventdate" label="Date" />
  <input type="text" name="ticketprice" label="Ticket Price" tap:default="0" />
</tap:form>
<cf_html>

History

Isaac Dealey began working on a content management system (CMS) in late 1998 following his first ColdFusion job at MCI WorldCom. The CMS transitioned through several names eventually becoming known as Tapestry (not to be confused with the Tapestry framework for Java). Isaac later abandoned the CMS but not before releasing an open source API for ColdFusion development called the Tapestry Application Programming Interface (TAPI) not to be confused with the Telephony Application Programming Interface (TAPI). The design of this early version focused on use within an existing application and within several months Isaac decided that the system requirements to support this strategy were too limiting. This led to the first release of the onTap framework (a complex clip of "on Tapestry") as an alternative to TAPI in August 2003. In spite of the fact that the name onTap shares pronunciation with a colloquial description of draught beer (which is often said to be "on tap"), the name engenders less confusion than either the TAPI acronym or the original CMS' name Tapestry.

Website

Some time between August 2003 and August 2004, an official website for the framework launched at fusiontap.com. In March 2007, Nick Tong and Kola Oyedeji interviewed Isaac for a podcast about the framework on the cfFrameworks website. Shortly after the interview, Isaac canceled the website's dedicated hosting service for personal reasons and the domain was subsequently purchased by domain scalpers. This created confusion in the following months with some people thinking the framework project might have been abandoned.

In December 2007 Isaac submitted the onTap framework and several related projects to the open source development community RIAForge.org, an alternative to SourceForge specifically for projects based on Adobe software platforms.

A new official site is now at http://on.tapogee.com starting in August 2008.

As of 11/7/2011 this URL causes a Site Not Found error. Attempting just http://tapogee.com shows simply "Hello World".

See also

External links



Wikimedia Foundation. 2010.

Игры ⚽ Нужен реферат?

Look at other dictionaries:

  • OnTap — Infobox Software name = onTap caption = Features Without Fixtures genre = web application framework developer = S. Isaac Dealey|source model = Open source latest release version = 3.2b latest release date = Sep 24, 2008 operating system = Cross… …   Wikipedia

  • ONTAP — Open Network Technology for Appliance Products Miccrokernel System (Network Appliance Corp.) …   Acronyms

  • ONTAP — Open Network Technology for Appliance Products Miccrokernel System (Network Appliance Corp.) …   Acronyms von A bis Z

  • NetApp filer — In computer storage, NetApp filer, known also as NetApp Fabric Attached Storage (FAS), or NetApp s network attached storage (NAS) device are NetApp s offering in the area of Storage Systems. A FAS functions in an enterprise class Storage area… …   Wikipedia

  • NetApp — NetApp, Inc. Type Public Traded as NASDAQ: NTAP …   Wikipedia

  • Politicks — Infobox musical artist Name = Politicks Img capt = deletable image caption Img size = 250 Landscape = Background = group or band Alias = Origin = Washington, DC, USA Genre = Rock, Soul, Alternative Years active = 2001 Current Label = Brokn… …   Wikipedia

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • Windows PowerShell — Screenshot of a sample PowerShell session …   Wikipedia

  • NetApp — Rechtsform Corporation ISIN US64120L1044 Gründung 1992 …   Deutsch Wikipedia

  • Netapp — Unternehmensform Corporation ISIN …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”