> Is there a best practice for using CFCs and CF?

Yes, there are best practices for using CFCs, and most of them are largely
drawn from best practices in any other class-based OO programming language,
such as Java. Your best bet for understanding these best practices is to
learn general OO programming concepts, which can then be applied pretty
easily to CF in many cases.

> I read the documentation on CFCs and there are lots of ways 
> to use them.
> 
> You can use CFinvoke, CFScript you can make a mapping to your 
> CFCs or you can keep them local to the CFM pages.  You can 
> use CFInvokeArgurments or just place arguments in CFInvoke.

There's nothing wrong with any of these approaches, actually. There are
places where it may make more sense to use one than another, but the
differences are pretty minor. In general, it's pretty common to use CFINVOKE
when using a CFC as a static class, and to use CFSET or CFSCRIPT along with
CreateObject when using a CFC as a class template from which you want to
create instances. But the differences between one and the other are more a
matter of personal preference than "best practice".

> Inheritance and persistence confuses me some.. when should 
> you use them?

Persistence doesn't really have anything to do with CFCs. You persist CFC
instances just like you'd persist any other variable in CF. If, for example,
it makes sense to store something in the user's session, it doesn't matter
whether it's an object instance or an array or structure or whatever.

Inheritance (and composition, and a bunch of other things) are part of OO,
and you should use them when it makes sense to use them. That's pretty much
a non-answer, but an actual answer would require a lot more explanation, and
you're going to have to learn OO programming anyway. But, for a quick
example, let's say you have people in general that you want to represent in
your program, and they all share common characteristics. So, you might write
a Person CFC that you will use to create Person objects. You might also have
different types of people, who have their own characteristics in addition to
those common characteristics, say Customers and Employees. It would make
sense in this case to have Customer and Employee CFCs that extend Person, to
add those type-specific characteristics. That's inheritance. A customer "is
a" person; inheritance is an "is a" relationship. The other common
relationship, composition, is a "has a" relationship. For example, people
might have addresses, or roles, or whatever, that might be represented by
their own CFCs.

> I found the book 'Discovering CFCs: ColdFusion MX Components' 
> but it got rough reviews on amazon.com.

I think it's actually a pretty good book, it was just written at a very bad
time. When CFMX first came out, CFCs had lots of problems and limitations,
and this book spends a significant amount of time covering workarounds for
those limitations. Since then, newer versions of CF have removed many of
those limitations, making the workarounds unnecessary.

Dave Watts, CTO, Fig Leaf Software
http://www.figleaf.com/

Fig Leaf Software provides the highest caliber vendor-authorized
instruction at our training centers in Washington DC, Atlanta,
Chicago, Baltimore, Northern Virginia, or on-site at your location.
Visit http://training.figleaf.com/ for more information!

This email has been processed by SmoothZap - www.smoothwall.net


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Upgrade to Adobe ColdFusion MX7
Experience Flex 2 & MX7 integration & create powerful cross-platform RIAs
http://www.adobe.com/products/coldfusion/flex2/?sdid=RVJQ 

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:272950
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to