
by Doug Boude
Frameworks in the ColdFusion community have clearly made their way from being a buzzword and novelty a couple of years ago to supporting real world applications. Likewise, overcoming the obstacles to learning object-oriented programming and frameworks is also no longer an elective. It's almost becoming a requirement for future employment. Overcoming these obstacles on your own is a long, arduous, sometimes discouraging journey. Events such as this year?s Frameworks conference hosted by Teratech in Washington, DC, however, can catapult your knowledge far ahead in short order. This conference was, without a doubt, the best career investment I?ve made since the last CFUnited.
The information available at this conference was astounding. Highly focused and real-world relevant sessions such as Model Driven Development and Code Generation, Leveraging Coldspring to Make Better Applications, Intro to Model-Glue, Reactor Fundamentals, Mach-II in Action, and many more, were presented by individuals with intimate knowledge of their subject matter. In the course of just two days I don?t believe there was a single area of OO and frameworks that wasn't covered thoroughly.
Of course I couldn't attend all of the sessions in Teratech's three-track agenda (Beginner, Advanced, and Other); There were two, though, that stood out in my mind -- Application Generation: Beyond Scaffolding, by Peter Bell, and Intro to Model-Glue, by Raymond Camden.
Peter Bell has long been an advocate of application generation, and I must say that the man has it down to an impressive science. Because the topic presents many new terms and detailed concepts, I'm just going to share the big picture. It's relatively simple: describe the application you want to create, then let the application generator create it for you based on your definition. What is the application generator, you ask. It is itself an application, but one whose job it is to read the definition (also known as the metadata) of the application you want to create, and to use those rules to write out all of the needed templates and Coldfusion components. Because not all aspects of an application can or should be defined in this manner, the newly created application comes ready-made with places for extending and customizing it.
Peter's session was jam packed with information and vocabulary that for some were brand new. The massive interest in the topic was also quite obvious, as the number of questions far exceeded the time available to answer them. Regardless of how much of this session one did or did not grasp, however, it was very powerful food for thought. For a more in-depth review of the subject of generating applications from metadata, visit Peter?s blog at http://www.pbell.com/index.cfm/application-generation.
Ray Camden's presentation of basic Model-Glue was perfect, for both those who are just starting to explore the framework and those who have been using it for some time. I have been using the framework for about six months now, but sat in to see if I had missed anything by being self-taught. I, and I would venture to say that all of us in that completely packed conference room, walked away with something we didn?t know when we came in. For instance, within the modelglue.xml result tag, whenever the attribute redirect is set to true, the original event is discarded and a new one is instantiated. Ray's humble yet knowledgeable grassroots approach to presenting the topic made it a worthwhile 45 minutes for all who attended.
Another talk worth mentioning, which caused a bit of controversy in the blogging community, was Steve Nelson's talk, "CFCs are the Framework!" For highlights, see http://ray.camdenfamily.com/index.cfm/2007/2/1/Frameworks-Conference-CFCs-ARE-the-Framework-by-Steve-Nelson and http://www.webapper.net/index.cfm/2007/2/5/cfcs-are-the-framework. Steve's point was that whichever framework you choose, you need to choose one and be consistant. Some of his more interesting ideas were that CFCs are powerful enough to manage themselves, and in many cases, XML, which is used for most frameworks, is a duplication of effort (for instance, include and cfinclude). He suggested instantiating objects and putting them into the application scope rather than using an object factory.
Andrew Sanchez, who works for Concord Management, a company that runs apartment complexes, felt that the Frameworks conference was great. He said that there's a push at his work to to get away from the hybrid Fusebox 2 applications they have and standardize on a framework. He chose the Intro to Fusebox 4 talk to get a feel for the framework. I had read about it, but this was my first chance to really take a look under the hood at actual code. I'm also looking into Model-Glue and Mach-II. So far I like what I've seen...it looks like the conversion of existing apps to Fusebox 5 wouldn't be all that difficult.
Doug Sims of Fiserv Health in San Antonio attended Chip Temm's session on Model-Driven Development and Code Generation. He said that it taught him how important it is to solidify the model the first thing. We're being integrated with a Java team. What I learned in this session could help me relate what we're doing in ColdFusion to what they're doing in Java and enable the ColdFusion team to align with our Java counterparts,
he added.
Ryan Arneson told Rob Gonda that he came to the conference because everything at my day job is procedural, but there's a push to start using frameworks for standardization.
Aaron Robertson of White Horse Ministries, a non-profit Christian ministry, said that the biggest impact for him was getting to talk to and meet the mind behind these frameworks and having one-on-one time with them. These guys are really passionate about what they're doing,
he said, not just trying to build shortcuts to produce apps. I now have more working knowledge I can take back with me to evaluate which framework is right for me.
There was as much knowledge shared during the after-hours socializing as there was during the day. Teratech hosted a very well-orchestrated special event on the evening of the first day that was quite impressive, including such team-building novelties as Foosball and Billiards. It was standing room only in the Forest Glen conference hall as attendees took full advantage of the casual atmosphere to solicit opinions on and approaches to application architecture, server configurations, and specific programming issues. I personally received feedback from a peer regarding my database design for an application being architected at my day job. What that man shared with me probably saved my team hours of work down the road. Much appreciated, Joakim!
I said it before, and I'll say it again: This conference totally rocked. To further substantiate my claim, I watched Clark Valberg interview several attendees during breaks. Every one of them, without fail, reiterated the worthiness of this event, unanimously and eagerly attesting to the real world value of the information they were receiving from the sessions. My hat goes off to Teratech (especially Liz and Nafisa who worked tirelessly to ensure everything went just so) for another outstandingly well-hosted event!