Thanks for the overview, Mike. I see what everyone's saying about the encapsulation. I'm just trying to make all the pieces of the puzzle fit. Your tutorial was helpful. It was a little advanced in some respects. I just needed to approach the CFC's a little more carefully, until I could figure out what was going on, before trying to really understand the DAO approach.
I'm sure to have a "eureka" moment at some point, with everyone's help..and I'm sure it'll be on a Sunday night...my "honey, don't forget to take out the garbage" night! :o) Rick Mike Kear wrote: > Rick, imagine how it would be if (as is fairly common) you have > business objects (beans) handling single items, and DAO cfcs handling > all the database interaction back and forth. This is the scenario i > drew in the tutorials I wrote ... > > So in the application scope you have a DAO - just one . sitting in > RAM waiting to be called on. And as people come and go through the > site they're causing beans to be created all over hte place to > manipulate the things they're needing as they move around. > > If (as happens frequently in one of my sites) there are 400 > concurrent users, and only one DAO for this applicatoin, imagine how > many people are likely to be simultaneously using an "Add()" method in > the DAO. In those circumstances it's absolutly essential that the > methods in teh DAO to e threadsafe. That means ALL variables inside > the methods have to be var'd unless there is a specific reason not to. > It means you have to build teh DAO carefully so data from one user > doesn't interfere with the data from the others. But that's also true > if you only have 3 simultaneous users. You still dont want their > information - maybe their shopping carts getting intermingled. > > But on the other hand if you dont have the DAO sitting in the > application scope, every time anyone uses that part of the > application, the DAO has to be instantiated again. There's an > overhead processing price to pay for doing that. > > Here's my rule of thumb. Vary away from it only once you realise > the implications ... never require a cfc to know anything about the > outside world. Anything it needs to know, you'll tell it. So > that means you tell it what the dsn is. you dont ask it to go look > in the application vars for it. You tell ilt what the different > values are for the arguments, either by passing in a struct such as > form struct or by passing in the values individually or by passing in > a bean. But the cfc doesnt have to go looking for it, and doesnt > have to know where it came from > > This is exactly how most of the built-in functions in coldfusion work. > The function replace() doesnt have to know anything - you give it > the information it needs to do its job. the replace() function > doesnt do much - it does a limited job quickly and efficiently but > its a small job. that's how to design your methods in you own cfcs > - small limited functions that dont know anything about the outside > world apart from what you tell it, and they should be threadsafe so > you dont have to use up all your ram and processing power with > bazillions of copies of the same code running at once. > > Hope this helps I rather have the feeling that at the moment > you're thinking the stuff i put in my tutorial is a lot of additional > typing - it's all too hard and too much work. That's not a problem > - it was for me too until suddenly the light went on and i had a few > of those "EUREKA!!" moments. I can disctinctly remember the day i > finally 'got it' about encapsulation. I was so excited i made the > mistake of talking about it in an agitated manner to my wife to > promptly told me to stop being so bloody stupid and put the garbage > out cos it's garbage night. <g> > > > Cheers > Mike Kear > Windsor, NSW, Australia > Adobe Certified Advanced ColdFusion Developer > AFP Webworks > http://afpwebworks.com > ColdFusion, PHP, ASP, ASP.NET hosting from AUD$15/month > > > > On Thu, Oct 23, 2008 at 3:39 AM, Rick Faircloth > <[EMAIL PROTECTED]> wrote: > >> I think I'm beginning to understand your reasoning. >> It's just taking some time for me to get to the "best practices" of CFC >> usage. >> Trying to get "anything" to work at first keeps my projects moving, while >> beginning to employ different coding techniques. I'm basically trying to >> learn by writing code for projects that are going live with these updates >> as soon as I can get them working...too busy for much practice. >> >> Also, I'm a solo developer and never plan to code while working for anyone >> else..so as far as sharing code or compensation, it doesn't matter. My >> client's >> don't care, as long as the correct data shows up on their pages. >> >> But I am trying to figure out the best way to do all of this. >> >> Thanks, >> >> Rick >> >> Dawson, Michael wrote: >> >>> Technically, they both will work. >>> >>> However, what if you have a different process of calling the same >>> function that doesn't use the form scope? >>> >>> What if you want to call the same method as a web service? >>> >>> Your current system will fail at that time. >>> >>> <realitycheck> >>> Of course, if you fully control your code and no one else will ever use >>> it, then do what you think works best for you. >>> >>> I have some code that might not pass the approval of several people, but >>> it works for me and I can understand it. >>> >>> If your code is not being compared to others, nor are you being judged >>> as part of your compensation, it really doesn't matter. >>> >>> However, at some point, you will find that following these accepted >>> principals will become beneficial. That is when it "clicks" and you see >>> the light. >>> </realitycheck> >>> >>> >>> >>> >> > > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~| Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to date Get the Free Trial http://ad.doubleclick.net/clk;207172674;29440083;f Archive: http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:314265 Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4