Fusebox and Frameworks Conference

"Using Fusebox with CFCs: An OO Approach" interview with Hal Helms *********************************************************************

MS: Today, I’m talking with Hal Helms about his presentation, "Using Fusebox with CFCs: An OO Approach". Hal, what does "An OO Approach" mean?

HH: It’s about leveraging Fusebox to build applications that work with a domain model (that’s the CFCs part), a view layer (those are the display pages), and a controller (that’s Fusebox).

MS: That would be the Model-View-Controller design pattern?

HH: Exactly. MVC (Model-View-Controller) is a well-established pattern for creating applications.

MS: I usually think of that as something that desktop apps are built on. Can you build a web app with MVC?

HH: Yes—and it’s often a very good idea, at least for applications that have moderate to high degrees of complexity—or for applications that you expect to change over time.

MS: Sounds like about every app we build!

HH: Same here, Michael. I pretty much structure all my apps around MVC.

MS: But what exactly does this have to do with your topic?

HH: Bear with me a bit and I’ll try to tie it all together. There are at least two ways of building apps. The first, and by far the most popular one, is what we might call a "page-centric" approach.

MS: Where one page goes directly to another?

HH: That, yes, but also where each page handles its entire business—everything from running queries to displaying information to deciding where each link out of the page should direct the user to.

MS: It’s a model we’re all familiar with.

HH: Right—and have all experienced pain with. Because this model is a "web page" model instead of a "web application" model. Five years ago, people were calling us "webmasters".

MS: Don’t remind me…

HH: Well, we’ve moved on from that, but we’re still building web pages, not web apps!

MS: We’re familiar with web pages, but what makes web apps different?

HH: Primarily that the application is viewed as a client that uses a collection of services. These services define the domain. Hence the name: domain model. An example might be the domain of an online store.

MS: That’s an example we’re all familiar with, but what are the services?

HH: Things like "getItemsInInventory(): Product[ ]" and "applyTax(Product product): void". Both of these are services that you would expect an online store to be able to handle.

MS: But that’s not the app, you say?

HH: No, of course it’s closely related, as the app uses the domain model, but the domain model is written so that many different applications (including future ones) can be written much quicker and with less bugs. The secret lies in object orientation and while some people may not think of Fusebox and OO in the same sentence, I’m going to show attendees how wrong such a notion is—and how valuable Fusebox can be for writing OO apps.

MS: This is one session I definitely don’t want to miss.

HH: I hope it will be helpful for people who have some knowledge of OO and would like to see how realistic OO apps are in ColdFusion.

MS: Thanks, Hal.


If you have any questions, contact michael(at)teratech.com


|  HOME  |  DIRECTIONS  |  HOTEL  |
|  TOPICS  |  SPEAKERS  |  REGISTER  |  CF CONF CENTRAL  |