Mastering The ColdFusion Application Framework
When most people hear the term, "Framework," they think about products like ColdBox, Model-Glue, Mach-ii, and FW/1. What most people generally don't think about is the robust and powerful framework that comes already packaged with ColdFusion. The Application.cfc component is an event-driven front-controller that affords the programmer extremely granular control over all aspects of the application lifecycle, from the macro events down to per-user-request application and session overrides. Come to this presentation to learn about what a ColdFusion application really is and how you can leverage the ColdFusion application framework to build more elegant software right out of the box.
|
|
|
|
|
|
|
|||
|
|
|
Watch the video presentation, feel free to check out the slides or download the code samples. You should be able to just drop the code samples in and run them, no configuration necessary.
NOTE: If you get odd behavior, you might have to delete your domain cookies between some of the code samples - they tend to use the same cookie names.
Reader Comments
Really nice. Thanks Ben.
Just a quick note, you have a typo on pages 7,8 and 11 with your pink 'Reqeusts'
@Alain,
Ah yeah, the magic of copy-paste :) Since they are in graphics, I may or may not get to changing them. I'll see what the week looks like. Thanks for bringing them to my attention though.
Great topic. I just find it a bit strange that the "framework" aspect of ColdFusion is the reason why it's not included on the TIOBE index.
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
They consider it more of a framework than a language.
@Jose,
What??? That's ridiculous! The ColdFusion framework is very much in the same vein as C# Global.asax and what not and they are on the list!
Very nice slides Ben. tbh, I find looking at the presentation slides without any voice over it is a little...weird :-P Looking forwards to your video!
You made a good point that many people don't realize CF is already a framework by itself. But there seems to have no clear tutorials of how to set up an application and this leads to various coding styles. Good and Bad. So framework came in to help people follow a particular standard that helps sharing codes between teams/teammates easier.
@Vinh,
Yeah, there's nothing in the ColdFusion framework that forces you to do anything in a particular way - it's not *that* kind of framework. It has more to do with the page request mechanics and association life-cycle and application events than with any kind of "standard".
I'll hopefully get the video done in the next few days.
I find "framework" kind of a buzz word where people tend to use it quite loosely. Some guys who have been coding with CF for 10 years without using any "frameworks" like Coldspring, Fusebox, (or cfTrigger :-P) etc. and slowly develop his own coding styles, then he calls it his framework :-)
If you are working on your own project, I dont think it matters what you use, maybe just the CF out-of-the-box framework, as long as it helps you finish the job. But the use of framework is more important when more people need to work together either now or in the future.
I actually got some "hard" time convincing my work mates using cfTrigger as they claim they have their own "frameworks"! :-(
@Ben
I think a good compromise for TIOBE would be to bundle all the CFML engines (ColdFusion, Railo, OpenBD) into one "CFML" label, but I highly doubt that's ever going to happen. I think the only group with the official size of the CF developer community is Adobe. The way I see it, as long as you have work and jobs are out there, who cares what everyone else says? Haters gonna hate!
Excellent write up. I've been doing a lot of work with writing API's recently. Both RESTful and SOAP. We should chat sometime about an API framework / best practices for ColdFusion developers.
Ben, I really digged your presentation in Amsterdam and it was cool meeting you!
I am applying the session technique in a CFBuilder extension now :) Will get back at you soon.
Cheers,
Deepak
@Jose, @Ben: http://apple.slashdot.org/story/10/06/02/1930209/Objective-C-Enters-Top-Ten-In-Language-Popularity (Slashdot article) says that tiobe bases its rankings on search engine results. But I got a 404 Not Found when I tried to go to the URL of the tiobe page that supposedly explained that, so who knows if it's true.
"When most people hear the term, "Framework," they think about products like ColdBox, Model-Glue, Mach-ii, and FW/1."
CFWheels gets no love once again :(
@Tony
That's too bad considering CFWheels has the best video tutorials I've seen to date.
@Tony, @Jose,
Awww, nothing meant by it. I know the CFWheels people - great guys.
Tiobe I think has it wrong, but java is on the list so not all is lost. Just not sure where Coldfusion in of itself is a really a framework ( I like classic definitions of words and ideas, I'm talking explicit frameworks - get your mind out of the gutter Ben ). Coldfusion is akin to Dbase III (oh that was fun to code in) and lots of 3&4GL languages from the '80 and '90s.
Ok I like the Presentation and surprisingly even without audio very approachable. Nice work.
Did I ramble? Do I care? its my day to be Snarky! :D
@Kevin,
Thanks my man. I still mean to make a recording of this. I actually have one already, but I don't care for it. After giving the presentation 4 times, I think the next version will be much better. Hopefully by the end of the week.
@All,
Hey guys - I finally recorded a video of this presentation and posted a video to it - there should be a link in the blog post itself.
Nothing like a "few" months to get it done :)
Great presentation, Ben! I love it! Great timing, too. My company is about to start standardizing our codebase with a framework and this helped out greatly!
Thanks!
@Ryan,
Very cool! Glad I could get this in here finally!
I have a serious problem with one of your tips, Ben. I have built quite a big project in several months on my development pc. I used the tip in demo 11 where you encrypt the url parameters. It works fine on my development pc, which is running Apache. But the production server runs IIS and it seems that IIS can't handle long unfriendly urls. If about more than 2 urls parameters are encrypted the string gets too long and IIS generates a HTTP 400 Bad Request error. Do you have any tips for me to solve this issue (replacing IIS by Apache is not an issue).
Thanks in advance.
Frank
@Frank,
Hmm, that's a tough problem. I do know that some servers have problems with the amount of data that gets passed in the URL; I have never personally run into this problem myself, however. I'm afraid I don't have any good advice for you this matter :( Perhaps try the StackOverflow site?
Hi Ben,
Thanks for the quick respons. What drives me to nerves is that actually the urls aren't that long (less than 300 chars). The edge is at about 280 chars or so. If you don't know a good solution than I have to find another way to solve this.
Thanks again.
Frank
@Frank,
Yeah, that doesn't seem all that long. Perhaps they will remove this constraint one day. Sorry I couldn't be more help.
IIRC IE truncates at less than 300 chars (might be 255). Some things to look at:
1. Can you obfuscate in a different way that results in shorter URLs?
2. Should the data be posted?
3. What can you store in session variables to be passed to the next page instead of passing on the URL?
4. Does the data really need obfuscated?
I have done a better look into my code and I noticed that the maximum number of url parameters to encrypt was 3 sometimes 2. I have done several improvements to reduce the number of parameters and it works now. The downside is a few more query calls in the controller to obtain the other needed parameters.
But it works now and that's most important.
@Frank,
Cool - glad you got it working.
Great presentation, Ben! I really like it! but i want to download it,this helped out greatly!could you provide the link for downloading!!!!!!!
Thanks!