Software Development, Web Design, Training

MVC With and Without a Framework

So you've looked at CF Components, and kind of understand the basics of how they work. Everyone says "frameworks are the way to go", but there's still a big knowledge gap between those 2 points. As each framework has its own terminology, how do you know where verbiage for one begins and the other one ends? Is "Controller" a Model-Glue specific thing? What about a "Service Layer" or a "View"? There's very little documentation available about the "Model-View-Controller" pattern for ColdFusion, that's not specific to a CF framework...and that's often what causes the confusion for people newer to OO development. In this talk we will go over a basic application that's built using the Model-View-Controller design pattern, but does not use any specific framework to get there. We'll also show when using the MVC pattern by itself may be enough for your app, when going to a full fledged framework may be the better way go to, and how easy it is to do so. For maximum benefit, you should have an understanding of how the CFComponent tag works, and we'll take it from there.

Description of target audience: Developers that haven't yet been able to bridge the gap from procedural code over to using MVC and discovering why frameworks are useful.

Assumed knowledge for the topic: People with an intermediate skill level of ColdFusion, and at least an initial look at the CFComponent tag. No prior OO/MVC experience required.

Objective for the topic: We'll give an introduction to the MVC design pattern, and separate out concepts and terms that are/aren't specific to a framework, showing how easy it is to go from one framework (or language) to another once you've got the basics sorted out correctly.

Main takeaways:

  • How do we go from procedural code and start writing OO code if we've never done it before?
  • What's a Model? What's a View? What's a Controller?
  • Are any of those terms specific to, say, Framework-1? Or are they generic OO terms?
  • Is it any extra work to build an OO app instead of just doing things the "old" way?
  • Let's look at an OO app both with and without a framework so we can see how similar they really are.

[Slide Deck] [Source Code]