cf.Objective() 2008: From Procedural to OO - Dan Wilson

One of the keywords here is "pragmatism". I know from personal, continuing experience that it can be a daunting proposition to move an application from procedural to OO.

Things you would want to consider when refactoring are in-house skill-sets, and problem spots in your application. If you have a bunch of people that are very procedural programmers, you may be wasting your time with a re-factor. You're team still has to be able to work on the code right? But, if people in your shop have some OO experience or are game to learn, then it's a good idea. Once you get started you want to ask yourself, "Where are our problem spots?". You already need to work on those spots anyway, so it's an efficient choice to start there in your OO refactor.

Always use version control! Even if you work alone! Seriously, however long it takes you to set up your version control repo of choice, it will be time well spent. You will need that version history while re-factoring.

Dan, talked some on patterns. There was a liberal sprinkling of pragmatism when talking about patterns too. Use them where they actually solve a problem and to the extent that you need them. Don't slavishly apply a pattern verbatim! I won't go into detail on the patterns. However, I'd like to mention, the first one (MVC) doesn't even require OO. However, it would be a good first step to get you closer to OO. Once you have separated the code that deals with the data (Model) from the code that displays stuff to the user (View) and the code that wires those together (Controller), then you're ready to see what can be put in Objects.

This was a talk with a lot of practical code examples. So, I think it may lose a bit in the translation.

Update: Dan was kind enough to send me a link to the presentation material. Get it here.

cf.Objective() 2008: Friday Keynote

Jared Rypka-Hauer gave an intro with some interesting facts about cf.Objective(). This is the 3rd year for the conference. There are 30% more people here this year! 50% are new attendees from prior years.

Next up was Jason Delmore. His opinion is that cf.Objective() has become the premier "advanced" ColdFusion conference. There are 6 Adobe people in attendance. It has been a great year for ColdFusion. They have gotten tons of press coverage. CF is up 11 places in the Tiobe index (Just checked. It's in the top 20). 8.01 was a pretty good update. Lot's little gems. Like, more flexible use of AttributeCollection, nested struct and array notation, 64 bit support, etc. So, you owe it to yourself to check out the 8.01 release if you haven't.

Centaur, the next version of ColdFusion, is well under way. Jason put up a slide about being more "open" with ColdFusion. However, at this point someone fainted (from excitement?). So, we really didn't get the whole speal about this new open-ness...

cf.Objective() 2008: Here We Go Again

I'm at cf.Objective() 2008, sitting in the conference room waiting for the keynote to start. Last years cf.Objective() was a great conference! I see no reason this year will be different. :-)

In 2007, I blogged every session I went to in real-time. It was a little stressful (and fun). I think this year I'll just take notes in the sessions and write them up later.

That's it for now. Hopefully you are all here with me and not even reading this post. (Or if you're reading it after the conf, you were here.)

Thank You Adobe!

The Adobe on Air Bus Tour was in Portland last night. It was a very exciting event. The bus crew did a great job presenting the unique opportunity that AIR gives both Flash and HTML developers to build cross-platform desktop application with their current skill-set.

I managed to answer a trivia question and get a bag of seven O'Reilly books! Add the 3 beers I had, the excellent catered food, the free training, and the networking opportunities and I have only one thing to say.

Thank you Adobe!

cf.Objective() Home Again, Home Again ...

Wow! I'm home from cf.Objective() 2007.

That is one fantastic conference. If you can't get your fix of enterprise level topics and valuable networking there, then I don't know what's wrong with you.

The sessions were great. Here is a handy link to all my session posts.

And I got to meet and even hang out with some of the absolute rock-stars of the ColdFusion community. All of them are very warm, friendly people too. I got to thank Ray, in person, for BlogCFC. I got to be there when Mark Drew revealed the CF_Frameworks Plugin for Eclipse.

I won't bore you with anymore details. I'll just say this:

Go to cf.Objective() 2008 if you can!

Oh, and I'd like to say thanks to Jared and all the people that made the conference happen. You guys are rock-stars too. Jared even has the leather pants to prove it!

cf.Objective() Sunday Keynote: Ben Forta

Good news. Adobe hearing from customers that they are feeling confident with CF and happy with the direction.

Developer Productivity: CF has been, and continues to be, way ahead of anything in the space in ease of implementation. What other technology has the ease of cfquery -> cfoutput.

Integration: Again, CF has had this going for it for several versions. ColdFusion 8 just adds even more points of integration. (A lot of it!)

AJAX Support:

  • Makes consuming CFCs for AJAX clients super easy.
  • ColdFusion AJAX Wizard (Similar to FLEX wizard) in Eclipse.
  • The AJAX debug panel I talked about the other day... Turns out you can use it to debug your existing AJAX projects. {big applause]
  • New JSON functions: isJSON(), serializeJSON(), and deSerializeJSON() [Love it!]

ColdFusion Debugger: There will be an actual debugger built in Eclipse. It has breakpoints, watch expressions, ... Ben says, "It's a full debugger". It looks really nice, you can actually run the code to be debugged from within Eclipse or from any other browser. [big applause]

Flex:

With Flex and CF and Flex Data Services, you can solve the problem of two people editing the same data. He shows a demo of two browser tabs with the same edit form. He changes the data in an input without even leaving the field. Then in the other tab, he changes the value in that field and saves. Back in the other tab, there is a prompt waiting. The prompt tells the user about the conflict and gives them a choice how to resolve it.

This currently requires you to write "assemblers" (can be a CFC). These CFCs have to conform to a specific API.

Now there is a wizard in Eclipse to create the CFCs for you.

In ColdFusion 8 this will be even better

  • You will now be able tell LCDS (formerly FDS), via a gateway, about records that are altered outside of the Flex/LCDS loop.
  • The assemblers can return queries directly from the fill function without converting each row to a VO.
  • Assemblers can use structs instead of CFCs. The structs can contain type info for Flex to use to identify the AS object type.
  • And the FDS integration will also be improved. Easier installer. Better CF integration. And there should be better performance.

AND ... ColdFusion 8 will be available mid 2007.

More Entries

BlogCFC was created by Raymond Camden. This blog is running version 5.6.002.