The following video and slide show is my presentation: Advanced ColdFusion Custom Tags. While the slide show covers the entire breadth of ColdFusion custom tags, from the basics to the advanced, the video demonstrates only the advanced aspects covered in my CFUNITED version of the presentation. Custom tags are the unsung heroes of the ColdFusion world and I hope that in this presentation I can demonstrate the ways in which they can be used to create more natural, more elegant, and ultimately more powerful solutions to your everyday business problems.
In the presentation, I keep bringing up ColdFusion components because it has been my observation that in the community at large, it is believed that ColdFusion components are a replacement for the "outdated" usage of Custom Tags. What I want to get across to you is that these are not competing technologies in any way; and, in fact, ColdFusion components and custom tags can work together, synergistically, to create best-of-breed solutions.
NOTE: I recorded the video at a very large dimension - my apologies for the scrolling.
On a personal note, this my first presentation given at a conference, so a big thanks to everyone who encouraged me and gave me excellent feedback (especially you Simon Free).
Thanks Ben for posting your preso, I agree that alot of people don't appreciate how useful and relevant custom tags can still be in this crazy grande cfc with oo icing thanks world :P
The best example of advanced tag use in the wild I have seen would have to be Mango Blog with it's custom tag templating and event system. Complex and very cool stuff.
No problem. And thanks for the Mango Blog tip, I'll have to take a look at what their doing.
Thanks for putting this out there. I haven't done much with custom tags for the last few years but they are still useful and pretty great for portability reasons!
Glad you like it my man. Custom tags are very powerful things.
@Ben, I'm trying to figure out what the difference is between a custom tag and calling a function inside a CFC.
Right now we have zero CT's. Is it leaner to simply put
<cf_GetNewAccount Variable="Username"> than to <cfset variable=account.newAccount(Username)>? (Sorry if the coding is wrong)
Typically, application business logic is being packaged inside of your ColdFusion components these days. As such, for your example, I would go with a CFC.
ColdFusion custom tags are great for more display logic, domain specific languages (DSL - basically a fancy way to abstract the way things are "described"), and for creating control flow (ie. augmenting the core language in a way that is not tied to any particular application).
Any performance hit between Tags and CFCs? Have you ever tested?
I'm just imagining it needing to read an /additional/ file from disk (versus possibly having a CFC already loaded in memory). Or is it a moot point after the first go 'round?
ColdFusion will try to cache all "Templates." There's not that much difference between a template that ends in CFC and a template that ends in CFM. That said, as long as you have your template cache turned on, there shouldn't be disk overhead for either case.
Comparing the performance of the two is someone of a moot point as custom tags do different things than components. Really, you just want to pick the right tool for the job.
Just wanted to ask you like can we use application scoped variables inside a custom tag page or we can only use request scope variables?