10 Questions for Isaac Dealey on the OnTap Framework
Isaac Dealey is the author of two frameworks: onTap and more recently, an ORM (object relational mapper) called DataFaucet (subject of a future framework interview). Here’s his answers to my 10 framework questions.
1. Hi Ike! Give us your elevator pitch: summarize the essence of onTap in a sentence or two.
Sales Pitchy Version: The onTap framework does for ColdFusion what ColdFusion did for the web: simplify a lot of powerful tools.
Not so Sales Pitchy Version: The onTap framework is an SOA approach to ColdFusion development.
2. Let’s dig a little deeper: tell us more about the main features.
Version 3.2 has converted all its config files from flat CFML includes now to CFCs and includes a new IoC Manager. The IoC Manager and the Plugin Manager provides a structure for developers to distribute or sell pluggable, smartly integrated applications and services that can be installed within a browser. In the not too distant future, the framework site will host a webservice which allows those “plugin” applications to be installed directly from within the framework in much the same way that add-ons can be installed in Eclipse or FireFox 3 without leaving the IDE.
If that sounds intimidating, don’t worry. None of that is actually necessary for developing applications with the onTap framework. The framework itself is agnostic about OO, the same way that the Fusebox framework is agnostic. You can choose to develop your application in an “extreme OO” manner, using an IoC framework, etc. or you can just build pages if that’s your preference. My preference is for the OO/SOA approach.
The framework includes a powerful XHTML library: a powerful and extensible templating engine which gives you access to a variety of form building and Ajax tools.
I use these XHTML tools in combination with a unique core architecture I’ve been calling “tiered inclusion”. Where Fusebox has circuits and fuseactions, the onTap framework has a “process”, which resembles and actually maps to both a URL and a file path. This tiered inclusion also provides some additional directory-based hooks for powerful branding/customization features as well as a host of very comprehensive internationalization (i18n) features for anyone who needs or wants them.
And that’s not even getting into a variety of other odds and ends you’ll find in the framework like content caching, section-508 compliant Ajax widgets, an XML-based rule-manager tool for providing powerfully configurable business logic that users can manage (not found in other frameworks), etc.
3. How did onTap come about and what was the reason for creating it? How are you involved?
I’m the original author. About the time I started working on the tiered inclusion technique, I had been doing a lot of work with Fusebox 3. Sure it was a decent framework, and initially I was a big fan of it… over time I found myself growing increasingly disenchanted by the amount of repetition involved in the switch files in Fusebox 3.
The tiered inclusion concept was something that just occurred to me spur of the moment one day and I worked on it for a long time to perfect it. For myself, it’s always provided an excellent way of reducing the amount of code I write. The rest of the framework came later and has always just been an endless pursuit of tools to make my own development work easier – if I found a way to create a generic tool that would be useful later, I included it in the distribution.
4. When should a developer seek out onTap? What has it got going for it?
The onTap framework’s biggest strength is in its ability to allow seamless branding and customization as well as seamless, automated integration between plugin applications (both using the same techniques).
I worked for a lot of ASP companies over the years and one thing that has been a consistent problem at every ASP I’ve worked for has been client customization requests. Clients invariably want tools the system wasn’t designed to provide and then finding a way to provide them is consistently problematic for the company providing the service, often actually hurting the company financially. The onTap framework provides a comprehensive set of tools that work very well for mitigating the problems caused by implementing client customization requests.
5. What are the pre-requisites for using onTap? Is there any prior knowledge that would help new users? Does it use any other frameworks that could simplify or complicate things?
Knowing some ColdFusion obviously would help! The only real requirement is ColdFusion 7 and it should run on both Windows and Unix operating systems. I haven’t tried with more recent versions of BlueDragon or with Railo yet. It doesn’t require any additional frameworks, although it does include built-in integration for ColdSpring or Lightwire if that’s your preference.
The core architecture behind the onTap framework is honestly not very complicated and is intentionally designed to be very simple to use, however it is unlike most other ColdFusion frameworks in its approach. So if you come to it expecting it to behave just like Mach-II, Model-Glue, ColdBox or even FuseBox you might have to unlearn some complexity to understand how simple and powerful the onTap framework is.
When I work on my own projects, I spend no more than a few minutes on things that normally, even with a good framework like ColdBox, would take several hours of my time. I spend those extra hours working on new problems instead of working on problems that I’ve already solved a bazillion times, like laying out or validating a form. And when I work on projects at my day job I essentially consider much of my time spent working as “time wasted” because I know how much faster things could be done.
6. What sets onTap apart from other frameworks?
Three things especially:
– Its SOA Approach to ColdFusion development
– Powerful tools for customization and branding (very useful for ASPs)
– Its simplicity
Actually something I find interesting is that several years ago I had done a comparison of several ColdFusion frameworks – there weren’t very many at the time, so I had just Fusebox 3 and 4, Mach-II and the onTap framework. At the time I was really disenchanted by the extra work required by the other frameworks, particularly the many, many lines of XML required for Mach-II.
In the intervening years, not just Mach-II and Fusebox have adopted my approaches, but other frameworks like ColdBox have cropped up in various places all touting as their advantages techniques that I’d been using for a long time. I’m not just saying this to pat myself on the back (in spite of the fact that I do take pride in it), but to point out that nearly everything that’s in the onTap framework has always been “ahead of its time”. I think that should speak to the longevity of the framework, which I know a few people have worried about.
In truth I like to think that the onTap framework functions in many ways a lot more like ColdFusion than most of the other ColdFusion frameworks that have been created in recent years.
7. Are there any great examples of onTap “in the wild”?
I have to be honest here and say nobody’s informed me of any yet. I really wish I could say “ahh yeah, XXX Bank is using it”, but I can’t.
Several years ago I implemented a solution using it for a defense contractor called Raytheon. I hesitate to say that’s an example of the framework in the wild because it was such an early version.
I’m excited to get the news though!
8. What about licensing, community, support and documentation?
It’s released with an OpenBSD style license, which is a little less restrictive than LGPL2 in that, not only are you allowed to create commercial software using it (lord knows I’ve had my own plans), but you can also encrypt your own software based on the onTap framework if you want to. It only requires that you include the notice that your distribution includes the onTap framework and that it’s not endorsed by the framework authors (which as of today is just me).
I’m currently working rather hard to try and grow the framework community. I’m trying to find better ways to encourage feedback and participation. I’m just not good at the marketing and people skills. I am however very interested in growing a more active community around this framework like the Fusebox or FarCry communities which have actual dev. teams and active forums and mailing lists. I’d like the framework to have a dev team at some point, not just me. I’d like for it to include code reviews / critiques and code contributions from other members of the community. I just recently published a blog about this specifically asking for people to write about their experiences with the framework, good bad or ugly.
Documentation for the framework has always been… well, verbose. I have actually removed some of the documentation in this latest release because I found that not only was a lot of it not read, but I’d had a number of developers over the years voice … well they weren’t complaints, but they would say things like Jeff Peters from the Fusebox community when I met him at cf.Objective had related an anecdote about having looked at the documentation a few days before and having a conversation with someone else in which the phrase “Do I have to read ALL this?!” was used.
The author of Model-Glue, Joe Rinehart once made a comment on the cf-talk list to the effect of “thanks for setting the bar so high for documentation” because he found my documentation to be so thorough (read LONG).
9. What’s coming up in the future for onTap?
Right now I’m working on getting it back onto its own domain. I just registered tapogee.com … Soon I hope it will be hosting the webservice I mentioned before for instantly finding and downloading plugin applications. My hope is that with a more active community there will be many plugin-based services and applications that can all work together to create a suite that truly leverages the collective talents of the ColdFusion community at large in a way that’s not been seen with other frameworks thus far (yes even FarCry, I’m that bold). Work less, accomplish more.
To that end I’m also considering self-publishing a small book on how to develop applications using the framework, and possibly t-shirts and other guerilla-marketing techniques.
10. Where can people find more information about onTap?