Kay lives here

working with the web

rollerskates

Frameworks: the new black

image.png

It’s prob­a­bly no sur­prise to those who read this blog from time to time (when I actu­ally post, ahem) that I’m a big fan of the con­cept of cod­ing frame­works (a sys­tem of com­mon code ele­ments and accepted prac­tices to speed devel­op­ment and ease main­te­nance of appli­ca­tions). I use Fuse­box myself, but there are a ton of great open source Cold­Fu­sion frame­works out there and I def­i­nitely encour­age all Cold­Fu­sion devel­op­ers to check them out and find one that suits their needs.

Con­se­quently, I was very inter­ested to read a recent arti­cle by Mark Man­del in the Adobe Devel­oper Cen­ter, on the topic of frame­works. Mark has taken the approach of divid­ing his arti­cle into three clas­si­fi­ca­tions of frameworks:

  • Model-View-Controller frame­works used to man­age appli­ca­tion struc­ture and exe­cu­tion (Fuse­box, Model-Glue, Cold­Box etc);
  • depen­dency injec­tion frame­works to man­age Cold­Fu­sion com­po­nents (Cold­Spring, Lightwire); and
  • per­sis­tence frame­works or object rela­tional map­pers (ORMs such as Mark’s own project Trans­fer, Reactor).

What’s inter­est­ing but maybe not imme­di­ately obvi­ous to some­one new to frame­works is that a sin­gle appli­ca­tion can make use of one frame­work from each of these three clas­si­fi­ca­tions. Mark’s arti­cle does a great job of explain­ing the dif­fer­ences between them as well as briefly going over the most popular/well-known frame­works from each grouping.

The large num­ber of frame­works that exist, have active com­mu­ni­ties, and are being con­stantly devel­oped and expanded says a great deal about the matu­rity and growth of the Cold­Fu­sion language.

Check it out: An Intro­duc­tion to Cold­Fu­sion Frameworks

2 Comments

  1. It really lays to rest this notion I remem­ber read­ing about a few years ago … actu­ally part of how my Galleon ports project came about … where a num­ber of peo­ple were hes­i­tant to start learn­ing a frame­work for fear of chos­ing one that might not ulti­mately “win out” (as though frame­works are all com­pet­ing in some strange tech­no­log­i­cal equiv­a­lent of “king of the hill”).

    Actu­ally that inde­ci­sive­ness about choos­ing a frame­work (and fear of it going away) is a very basic human expe­ri­ence — we pretty much all have it. But as I’ve said before, I don’t think any frame­work is likely to become a “gold stan­dard” like used to be the case with Fuse­box back when other CF frame­works were scarce. I think we’re only going to see more frame­works being cre­ated and more activ­ity in them. ;)

  2. I really want to get myself going on learn­ing at least one CF Frame­work. I had the chance to learn a cod­ing frame­work until my last project, when I sim­ply told my supe­ri­ors that learn­ing MVC was going to be part of the project (Cairn­gorm for Flex). I had pre­vi­ously writ­ten two other Flex appli­ca­tions in “freeform” (the way I’ve always coded — put any­thing any­where and make it work). In fact, my first appli­ca­tion started out as one 2000 line MXML file. Since learn­ing and using Cairn­gorm, I will never go back, and I’m even think­ing about port­ing the old apps into Cairngorm.