>> onTap does a few
>> things that no other framework does (not that I've seen
>> anyway) that I
>> find very useful.

> Out of curiosity, what are those?

Heh... well I really hadn't intended this to become a plug for the
onTap Framework, since Dave had already indicated he wasn't
considering it as an option for his projects. But just briefly:

1. Branding: Probably the biggest advantage in my mind is the ability
to easily provide discrete application branding -- not just of certain
images and predesignated text but also custom features/interfaces with
very little effort and without editing any of an application's core
code. Basically if you look at an HTML page generated with the onTap
framework, you can point at any given graphic or bit of text and you
can say "I want to add to/move/remove/replace this with" and there's
almost no request you can make in that regard that I can't accomodate
in a few minutes without making any changes to my core code.

2. Plugin Manager (closely related to item 1) -- extensions to the
framework can be installed and removed without modifying any of the
application's existing templates or config files. The Plugin Manager
itself provides an API and an interface for the extensions that's
similar to the Windows Add/Remove Programs wizard. I know some other
developers provide similar installers for their software but generally
don't have the kind of flexibility that the onTap framework provides
(re: item 1) -- I'm not aware of any other open-source frameworks that
provide this functionality for free.

3. DSN/Database/SQL Syntax management. The framework provides a
collection of features which allow me to write code for MS SQL, Oracle
8i+, MySQL 4+ and MS Access with a single codebase. Variations between
the databases are handled by the API, so my application code never
changes, and when I write a new app, there's no need to write multiple
versions of my data management code. The latest iterations of this are
largely supported by JDBC and also have additional features beyond
simply managing syntacitcal variations in both DDL and DML, like
fetching primary and foreign key constraints from a table, which is
how the form tools can automate select boxes and radio buttons for
simple lookup tables. This might be available with some other
frameworks -- I have yet to see it, but I'm willing to admit it may
not be unique.

4. Form tools (closely related to the other 3 items). To speed
development for smaller projects I can write out a form as a small
block of standard xhtml, replace the <form> tag with a <tap:form> tag,
add a tap:dbtable attribute and in addition to having the formatting
of the form generated with an XSL style sheet (like CF7's XForms) also
immediately have the form pre-populated with values from the specified
database table. There's no need to specify value attributes in the
form input elements or to bother with htmleditformat() around the
values (although I can choose to). It also matches server-side
validation to javascript validation without using the insecure
standard CF server-side validation. A larger project is likely to be
little different - I would simply use my model objects to prepopulate
the form by appending their values to the attributes structure. (I
think PLUM provides some of this functionality also, although I don't
know enough about PLUM to provide a thorough comparison.) One feature
I'm reasonably certain PLUM doesn't have is that even after the form
is created, you can update the values of the form fields server-side,
similar to the way you can populate forms with JavaScript for example
"htlib.formSetFields(myform,mystructure)". Actually any element of the
form can be edited individually, down to the level of individual
attributes and/or in-line CSS properties (so if you wanted you could
set an inline css property on an input element to make its text
right-aligned, without any string manipulation and without changing
anything else about the form). This goes back to item 1 and the
ability to provide seemless, discrete branding and customization --
because html elements are handled by this API they can be created,
modified, passed back and forth between tags or CFC's -- it gives you
a kind of versatility in the development of the interface that's just
not available with anything else.


s. isaac dealey   954.522.6080
new epoch : isn't it time for a change?

add features without fixtures with
the onTap open source framework

http://www.fusiontap.com
http://coldfusion.sys-con.com/author/4806Dealey.htm




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Discover CFTicket - The leading ColdFusion Help Desk and Trouble 
Ticket application

http://www.houseoffusion.com/banners/view.cfm?bannerid=48

Message: http://www.houseoffusion.com/lists.cfm/link=i:4:209698
Archives: http://www.houseoffusion.com/cf_lists/threads.cfm/4
Subscription: http://www.houseoffusion.com/lists.cfm/link=s:4
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4
Donations & Support: http://www.houseoffusion.com/tiny.cfm/54

Reply via email to