Remote Synthesis
Search my blog:
Viewing By Entry / Main
Jul 18, 2006

Objects and Frameworks - the Big Resource List

Before getting to the list of resources I want to make a quick point. You can easily get bogged down focusing on reading everything about object and frameworks - as in it is easy to teach yourself into inaction. As I have discussed in both my prior posts (the "No Excuses" post, Getting Started), the most dramatic step that you can take is to just get started and (at the risk of sounding like a broken record) don't be afraid to get it wrong. Remember, there is no "Rosetta Stone", so no resource on this list offers a definitive answer but each one can help in the process. That being said, there are more resources out there for ColdFusion programmers interested in learning the concepts than I am capable of listing here. This is a list of resources that I am familiar with (and thanks to Peter Farrell for some good suggestions as well)...feel free to add some of your own in the comments section.Books
Personally, I learned alot from trying to learn Java. While I am not a Java programmer yet, nearly every Java book covers OO concepts in some detail.

Java for ColdFusion Developers
This was a great book in my opinion as it does a good job of relating Java concepts to ColdFusion. Unfortunately, it seems to be a bit difficult to find nowadays and isn't even available (either new or used) at Amazon.

Object-Oriented Thought Process, The (2nd Edition)
While the examples in this book are Java based, it does a good job of covering the concepts rather than the code. I did find it a bit tough at first, because the concepts are tough. Don't be afraid to read it and miss stuff the first time around. After you are a little more comfortable with the concepts and actual implementation, I recommend revisiting this book...it makes much more sense the second time around.

Book suggestions from Peter Farrell (in order of difficulty)

Newsletters and Mailing Lists
Each framework generally has its own mailing list, which I won't cover here. The two items listed below offer general help in developing using object-oriented methods in ColdFusion.

Hal Helms' Occassional Newsletter Signup
You should absolutely sign up for Hal's newsletter. Hal has a great writing style that manages to be both fun and unique while conveying some very complicated concepts. In fact, I'd go so far as to recommend reading these items from the archives:
Domain Model v. Page-centric Design
Tiers Part I
Context is King
Living in OO-land
Beginning Abstractions
Applied Ontology
Bad OO
What's Wrong with CFCs? Parts 1 and Part II

CFCZone and CFCDev Mailing list
CFCDev is a fantastic resource for anyone beginner to advanced. It is the one place you can post your questions related to OOP in CF and have them answered by the top experts in ColdFusion all in one place.

Presentations
So, if you are interested in these topics, you should absolutely put 3 things on your calendar: CFUnited, CF.Objective() and your local CFUG meeting (or, if you aren't luck enough to have one, Steven Erat's Online Meetup Group). However, here are some presentations you may have missed.

Matt Woodward's CF.Objective() Presentations and Code
Matt's three presentations include Head First Mach-II (presented with Peter Farrell), OOP for NOObz, and Migrating Legacy Apps to OOP with ColdFusion.

Sean Corfield's CF.Objective/CFUnited Presentations (see right hand "Software" pod - there are more than are listed here)
Objects and Persistence (PDF) covers some of the basics from beans, DAOs and Gateways and quite a bit of the more advanced Object Releational Mapping (ORM). Offers a nice comparison of the ORM frameworks that are currently available in ColdFusion.

Comparing Application Frameworks
Offers a detailed comparison of Fusebox (Version 4), Model-Glue (version 1.1) and Mach II. The sample code is available here.

Peter Farrell's Design Pattern Safari Breezo
This covers much of the same material as the ColdFusion Weekly podcast of the same name, but includes slides and questions from the audience.

Blog Posts and Articles
I assume that most of my readership already follows MXNA and Full As A Goog, but if you do not, then you should start. Many of these topics are also covered on a monthly basis in The ColdFusion Developer's Journal (CFDJ) and now on a quarterly basis in the Fusion Authority Quarterly Update. However, here is a list of excellent articles that you should also check out (in alphabetical order by last name).

Scott Barnes
Tips for Learning OOP Patterns

Peter Bell
Introducing Object Oriented Design

Barney Boisvert
Impetus for an OO Backend

Raymond Camden
Ray's Model-Glue Introductory Series - keep in mind this is version 1.1 and not Unity, though Ray has started writing some Unity posts recently.

Sean Corfield
Which Framework?
DAOs, Validation and Transformation
Notes on MVC

Hal Helms
The 800-lb Gorilla

Brian Rinaldi (i.e. me)
Model-Glue Unity Presentation Notes

Joe Rinehart
Frameworks are Bad, Methodologies are Good.

Scott Stroz
Objects and contructors and init(), oh my!

Nathan Strutz
The State of Object Oriented Programming in ColdFusion

Matt Woodward
What's an Object? An Introduction to OOP (CFDJ)
CFC-101: An Introduction to OOP in CFMX
How much should objects know about themselves?
DAOs and Composition

Podcasts
For those auditory learners out there, below is a list of podcasts you should subscribe to. In addition, I list some of the items from their archive that you may want to check out.

The ColdFusion Weekly Podcast
From the archive:
Version 1.12 (organize code in OO)
Version 1.11 (MVC Questions)
Version 1.10 (Design Pattern Safari)
Version 1.9 (Frameworks)
Version 1.4 (Migrating Legacy Applications)
Version 1.2 (Kurt Wiersma on ColdSpring, Mach II and AppBooster)

Helms and Peters Out Loud Podcast
From the archive:
Design Patterns
Objects for Maintainable Code
Framework Shrink - a funny take on the differences between the major CF frameworks, though the "in-joke" kind of requires you have some background knowledge of the frameworks that they refer to.

Comments
Ouz Demirkap1
GREAT!

Thanks for your effort!!!


Peter Bell
Hi Brian,

Wondered why you'd been so quiet - this is a monster post. GREAT idea/resource.

Best Wishes,
Peter


Kurt Wiersma
I don't want to sound bad promote some of stuff I have written but I will throw it out there:

Appbooster Presentation and Download - Appbooster is a great sample app, I wish it had been around when I was learning about services/dao/gateways and bean cfcs which is why I made it.

http://jroller.com/page/kwiersma?entry=introducing_appbooster

Why you should use ColdSpring - I think this article with code sample shows how wiring your services can be wired together with CS.

http://jroller.com/page/kwiersma?entry=why_you_should_use_coldspring


charlie arehart
Another great compendium, Brian. Like your open source list, I'm sure it will become a classic reference. Thanks!

Hey, I can offer another reference, in the spirit of Peter's proposed additions: "Beginning Java Objects", by Jacquie Barker. While it's Java-specific, it still would help most CF folks who are moving to objects, as she tries to not get too "deep in the weeds" for Java newbies. It came out first from Wrox in 2001 but has been picked up by APress, including a second edition in 2005. Gets 4 stars over hundreds of reviews, and you can find it used for as little as $5 today at Amazon.


Write your comment



(it will not be displayed)