It’s probably no surprise to those who read this blog from time to time (when I actually post, ahem) that I’m a big fan of the concept of coding frameworks (a system of common code elements and accepted practices to speed development and ease maintenance of applications). I use Fusebox myself, but there are a ton of great open source ColdFusion frameworks out there and I definitely encourage all ColdFusion developers to check them out and find one that suits their needs.
Consequently, I was very interested to read a recent article by Mark Mandel in the Adobe Developer Center, on the topic of frameworks. Mark has taken the approach of dividing his article into three classifications of frameworks:
- Model-View-Controller frameworks used to manage application structure and execution (Fusebox, Model-Glue, ColdBox etc);
- dependency injection frameworks to manage ColdFusion components (ColdSpring, Lightwire); and
- persistence frameworks or object relational mappers (ORMs such as Mark’s own project Transfer, Reactor).
What’s interesting but maybe not immediately obvious to someone new to frameworks is that a single application can make use of one framework from each of these three classifications. Mark’s article does a great job of explaining the differences between them as well as briefly going over the most popular/well-known frameworks from each grouping.
The large number of frameworks that exist, have active communities, and are being constantly developed and expanded says a great deal about the maturity and growth of the ColdFusion language.
Check it out: An Introduction to ColdFusion Frameworks