cf.Objective() - Day One

 
May 06, 2007

by Brian Rinaldi

Well, my first impression walking into cf.Objective(), now in its second year, was that this conference got a major upgrade in terms of venue. The hotel is really top notch and outdoes the CFUnited location by far (and the conference rate makes this a real bargain). Attendance is also outstanding, with Jared announcing it has reached some 230 or more attendees, more than twice last year's total. Already I am getting to network with well-known names in the community like Ray Camden, Hal Helms, Charlie Arehart and Sean Corfield, just to name a few. Ray demoed an application for me that he is building using some newly-announced features in Scorpio; Matt Woodward showed me the upcoming Mach-II site with all new logo and branding; and I got some inside scoop on what's in the works for Fusion Debug and FusionReactor.

So, the conference would be worthwhile at this point even if the sessions weren't terrific. They are terrific, however. Here is a quick overview of what I learned today:

Keynote - Top Secret Scorpio

Jason Delmore gave this morning's keynote presentation and presented on a number of new features that are finally getting officially announced. Jason covered an enormous number of features included in Scorpio, the sheer quantity of which is impressive by itself. One "feature" he talked about which hasn't received much coverage is performance. Jason stated that the development team spent an entire development cycle focused on performance, with the result being that Scorpio is four to five times faster than ColdFusion 7. In addition, he says start-up time has improved to a quick 20 seconds by his measure.

The big official feature announcement of the day was CFTHREAD, which manages the creating and rejoining of asynchronous threads. CFTHREAD also exposes metadata about the executed thread, including the elapsed time, error detail, start time and status. Jason also announced the CFFEED tag for parsing and creating RSS and ATOM feeds.

Transfer - Beginner and Advanced Sessions

Mark Mandel gave two separate sessions covering his Transfer object-relational mapper, including his new branding and URL (www.transfer-orm.com). Note: at the moment this only points to the Transfer page on his blog. The first session covered the basics of using Transfer, showing how it can replace much of the tedious and repetitive process of creating beans and DAO's as well as managing your relationships and object composition. Transfer does all its magic by creating generic "TransferObjects" and using mixins to dynamically add in methods at run-time. The beautiful thing about Transfer is that its architecture, which includes an advanced caching layer covered in the second session, allows it to perform quickly, even during the examples which ran with debugging on.

The advanced session delved deeper into the caching layer and how this can be manipulated programmatically. Mark briefly covered the event model built within Transfer. In addition, he introduced the TQL query syntax, based upon Hibernate's HQL, which allows you to easily create complex query statements within Transfer using Transfer's configured object definitions.

Object-Oriented Modeling

Hal Helms covered this complex topic in his usual, easy-to-understand way. One of his main points was something I have discussed frequently on my site, which is how easily one can focus on the attributes of an object rather than its responsibilities. This can often lead to the anti-pattern called the Anemic Domain Model whereby your objects express little more than data and the behaviors are defined within services.

Hal also discussed some of the basic concepts of object modeling, including the separation of concerns that leads to high cohesion, meaning your objects have a single, clearly defined purpose, and how low coupling can lead to a more stable interface.

AJAX Integration with Scorpio

This presentation by Sean Corfield was, in my opinion, one of the more impressive of the day. Sean covered what seemed like an endless list of new tags that allowed you to easily build in complex AJAX functionality and dynamic user interface elements with very little code. For instance, the CFAJAXPROXY tag will allow you to easily make your components available directly within JavaScript, where you can directly call their methods – including a browser-based debugger to see what is going across the wire.

The UI elements are based upon the Yahoo UI components and included a long list of new tags such as CFPOD, CFTOOLTIP and CFWINDOW, as well as revamped existing tags such as CFGRID and CFTREE. Each of these includes the ability to bind content to CFC methods or form elements and style with CSS.

The CFEclipse Project

The final presentation I attended this Friday was Mark Drew speaking about CFEclipse. Much of Mark's presentation covered existing features in the IDE, though not necessarily ones that we all are aware of or use as frequently as we should. This included all the variations and uses of snippets, including creating a snippet that can serve as a document template. Another example is the little known fact that you can indeed drag and drop CSS, JavaScript and image files into the document from the navigation bar, and CFEclipse will auto-generate the proper code for you.

Mark had created some anticipation for his presentation by teasing us about a big new feature announcement, and he didn't disappoint. He announced the release of a separate CFEclipse add-on component called Project:Unity that will allow for integrated framework support for any XML-configured ColdFusion framework. This includes some frameworks such as Mach II, Model-Glue, Fusebox, Transfer, Reactor and ColdSpring. The new tab will automatically discover your framework configuration files and allow you to expand and inspect their nodes and properties as well as add/edit/delete any configuration element.

Conclusion

As you can see, there was no shortage of items to report from this year's conference, and that is even without going into great detail. The night ended with quite a bit of beer and conversation – some about ColdFusion and some not even remotely technology-related, but all interesting and fun.


Brian Rinaldi is a web developer at Sun Life Financial, Inc. He is the manager of the Boston ColdFusion User Group and an Advanced Certified ColdFusion MX Developer, as well as a Microsoft Certified Professional. Brian also serves on the editorial advisory board for the ColdFusion Developer's Journal. Brian is most well known for his efforts promoting open-source projects in ColdFusion, especially for maintaining the ColdFusion open-source list as well as the weekly updates, both of which you can find via his web site at http://www.remotesynthesis.com.

Add a Comment
(If you subscribe, any new posts to this thread will be sent to your email address.)
  
Privacy | FAQ | Site Map | About | Guidelines | Contact | Advertising | What is ColdFusion?
House of Fusion | ColdFusion Jobs | Blog of Fusion | AHP Hosting