ColdFusion Weekly Version 1.10 - May 29, 2006

Version 1.10 - May 29, 2006

Safari Edition

Introduction & Comments

  • What Matt has been up to - move to high-availability environment, MachBlog, and getting water in his iRiver H10 20GB
  • What Peter has been up to - discussion with Chris Scott about the factory bean functionality in ColdSpring

CFReport - at 9:14

Design Pattern Safari - at 21:50

  • Beginning Our Journey -- What we want to accomplish...
  • Code examples avaiable on our website so you can see what we're talking about
  • Our Journey Down the Objectazon River: What's a design pattern?
    • A design pattern is a general and repeatable solution to a commonly occurring problem
    • A design pattern is not code, but a structure or blueprint to implement your code by
    • A design pattern is not an alogrithm since alogrithms solve computational problems
  • Why Patterns Are Important...
    • Patterns provide a "standardized" vocabulary for developers to communicate using well-known, well understood names for software interactions
    • Design patterns can easily be improved over time, making them more robust than ad-hoc designs
    • Patterns are about extensibility and reusability
  • Comon Indentifications In the Jungle: Design Patterns You''ll Use Daily in ColdFusion
    • Beans (Also known as Business Objects or Value Objects)
    • DAOs (Stands for Data Access Objects)
    • Gateways (Stands for Data Gateway Objects)
    • Services (Also known as Manager Objects)
  • Our first animal: The Bean
  • Typically represents a specific entity in your model
    • Carries "encapsulated" data between the different layers of your application
      • Sorta like a glorified structure, however instead of directly accessing data with a key you call a method
      • Helps you organize your data structures instead passing structures around ad-hoc
    • Has a consistent and simple interface (Controllable API)
    • Has methods called getters/setters (aka accessors) to access data [getFirstName() / setFirstName()]
    • Might be composed of other beans
    • Easily created with a code generator
  • Next Stop: DAO (data access object)
    • DAOs only interact with one row of data via the primary key
    • Used to save/load objects from data storage
    • A DAO could interface with: Database / Legacy persistent data storage (XML / Text File)
    • Peter's' DAOs usually have ScRuD method that take a bean (ScRuD - Save | (create) | Read | (update) | Delete)
  • Another beast: Gateways (Your Access to All Things Aggregated)
    • Contains method that sql (select) queries that return one or more rows of data
    • Typically returns a cfquery object
    • Rarely it can return a bean (Querying by User/Pwd)
    • Performs functionality that may affect one or more rows
  • Services: Kings of the Jungles
    • Contains your business logic:
      • Bean Validation / Creation
      • Application specific business logic
      • Save / Load / Delete from DAO (via the facade pattern)
      • Gateway Interaction (via the facade pattern)
    • Usually depends on a DAO and Gateway
    • Services can comsume other services
  • Diagram of how it all works together - Thank you for Kurt Wiersma
  • Others Notable Stops in the Wild
    • Facade: Provides a simplified interface to a larger body of code
    • Controllers: These are very framework specific. Recommend looking at Fusebox, Mach-II or Model-Glue
    • Singletons: An object that only has one instance during the lifetime of the application
  • Surviving: Obey Your Suvival Instincts
    • Do...
      • use them as you go and understand more of the problem
      • focus on your needs
      • learn that when they have a particular kind of problem or smell - go to your pattern toolbox to find a solution
      • understand that some patterns have tradeoffs
      • understand that you can only appreciate a pattern once it has solved a painful problem for you
    • Do not...
      • start immediately throwing patterns into a design
      • have to use all the patterns we've discussed
  • Studying to Become a Safari Guide

    CF_HotSeat

    No Hotseat in lieu of the safari discussion...

    CF_Quiz - at 1:01:57

    Wrap Up - at 1:05:37

    CFExit - at 1:06:18

    "I'll Find Mine" by J.R. Byrd

(download)

ColdFusion Weekly Version 1.9 - May 22, 2006

Version 1.9 - May 22, 2006

Two Frameworks Are Better Than One

Introduction & Comments

  • What Matt has been up to - MachBlog, MachBlog and more MachBlog
  • What Peter has been up to - Received Adobe Exam Certificate

CFReport - at 10:25

Frameworks discussion

CFQuery - at 51:48

  • David Whiterod asking about the benefits, pitfalls and general the best practice for wrapping Java APIs witin CFCs

CF_HotSeat

No Hotseat in lieu of the frameworks discussion...

CF_Quiz - at 46:00

Wrap Up - at 59:50

CFExit

"Staying Power" cover by Ed Slack and The Slackestra

(download)

ColdFusion Weekly Version 1.8 Beta - May 15, 2006

Version 1.8 beta - May 15, 2006

Did We Say We Have The News?

Introduction & Comments

CFReport - at 9:30

CFQuery - at 42:45

CF_HotSeat

No Hotseat in lieu of the News...

CF_Quiz - at 46:00

  • Tell us three cool things that are included in ColdFusion Mystic Updater Beta 3. Funniest or most creative Skype answer wins!

Wrap Up - at 52:38

CFExit - at 53:45

"Piece of Mind" by J.R. Byrd

(download)

ColdFusion Weekly Version 1.7 beta - May 8, 2006

Version 1.7 beta - May 8, 2006

The State of the ColdFusion Union

Introduction and Comments

CFReport - at 8:50

General News

R.I.P. macromedia.com - at 11:50

CFQuery - at 13:54

  • Ben Edwards asks, "Why not the CF_ColdSeat?"

CF_HotSeat with Michael Dinowitz, Head of House Of Fusion - at 15:30

CF_Quiz - at 37:04

  • This week marked the official end of the macromedia.com web site. What year did macromedia.com first go live? And for bonus points, what was the code name for the macromedia.com + adobe.com merger project?

Wrap Up - at 40:50

CFExit - at 41:45

"Ascend" by J.R. Byrd

(download)