Fusebox MX

Fusebox MX.

Fusebox MX (more detail) – Hal talked about the general shift in the programming world from procedural to OO and noted that ColdFusion had shifted in that direction too with CFMX. He made a comment about persistence and someone (Michael Dinowitz I think) asked Hal to define 'persistence': he said it's when “objects stick around after you turn the computer off” – I was pleased to hear that since I seem to be a bit of a lone voice at times saying that shared scopes in CF are not a form of 'persistence' and now I know that at least Hal agrees with me! Hal defined procedural programming as using algorithms to act on data, and OO programming as constructing “scale models that respond to messages”. He explained that his background was in Smalltalk (one of the grandaddies of OO) and then gave a gentle introduction to the fundamentals of polymorphism, inheritance and encapsulation in OO. At that point he introduced what he is calling “Fusebox MX” and said it was his vision rather than any official statement from the Fusebox community at this point. In Hal's vision, the central core file is replaced by a relatively simple ColdFusion Component and the settings file is replaced by an easy-to-read XML file. Each circuit is implemented as a CFC as well, replacing the switch statement with method calls, but fuses remain the pretty much the same (simple .cfm pages). Instead of the traditional Fusebox idiom of accessing a specific set of global variables, you would 'send messages' to retrieve that data by calling methods like getSelf(), getCircuit(“Products”), applySkin(“Skins.redLayout”). The other major new feature is the plugin base component that can be extended (by writing components that inherit from it) to enhance pretty much any aspect of the core file by overriding one or more of the six plugin point methods: preprocess(), prefuseaction(), preskin(), postskin(), postfuseaction() and postprocess(). This is a very flexible architecture and leverages the new functionality in ColdFusion MX really well. Some good examples for plugins are security, debugging, logging… all without changes the core files! When Hal has his new website up and running, I'll have more to say about this. I plan to download his new code and try it out, alongside FB3 (which I have running locally for both CFMX and PHP!).  [An Architect's View]

Leave a comment