You are viewing documentation for v1.0.x. Change

Requirements

What you need to know and have installed before you start programming in Wheels.

We can identify 3 different types of requirements that you should be aware of:

  1. Project Requirements. Is Wheels a good fit for your project?
  2. Developer Requirements. Do you have the knowledge and mindset to program effectively in Wheels?
  3. System Requirements. Is your server ready for Wheels?

1. Project Requirements

Before you start learning Wheels and making sure all the necessary software is installed on your computer you really need to take a moment and think about the project you intend to use Wheels on. Is it a ten page website that won't be updated very often? Is it a space flight simulator program for NASA? Is it something in between?

Most websites are, at their cores, simple data manipulation applications. You fetch a row, make some updates to it, stick it back in the database and so on. This is the "target market" for Wheels - simple CRUD (create, read, update, delete) website applications.

A simple ten page website won't do much data manipulation, so you don't need Wheels for that (or even ColdFusion in some cases). A flight simulator program will do so much more than simple CRUD work, so in that case, Wheels is a poor match for you (and so is ColdFusion).

If your website falls somewhere in between these two extreme examples, then read on. If not, go look for another programming language and framework. ;)

Another thing worth noting right off the bat (and one that ties in with the simple CRUD reasoning above) is that Wheels takes a very data-centric approach to the development process. What we mean by that is that it should be possible to visualize and implement the database design early on in the project's life cycle. So, if you're about to embark on a project with an extensive period of object oriented analysis and design which, as a last step almost, looks at how to persist objects, then you should probably also look for another framework.

Still reading?

Good. :)

Moving on...

2. Developer Requirements

Yes, there are actually some things you should familiarize yourself with before starting to use Wheels. Don't worry though. You don't need to be an expert on any on of them. A basic understanding is good enough.

  • CFML. You should know CFML, the ColdFusion programming language. (Surprise!)
  • Object Oriented Programming. You should grasp the concept of object oriented programming and how it applies to ColdFusion.
  • Model-View-Controller. You should know the theory behind the Model-View-Controller development pattern.

CFML

Simply the best web development language in the world! The best way to learn it, in our humble opinion, is to get the free developer edition of Adobe ColdFusion, buy Ben Forta's ColdFusion Web Application Construction Kit series, and start coding using your programming editor of choice.

Object Oriented Programming (OOP)

This is a programming methodology that uses constructs called objects to design applications. Objects model real world entities in your application. OOP is based on several techniques including inheritance, modularity, polymorphism, and encapsulation. Most of these techniques are supported in CFML, making it a fairly functional object oriented language. At the most basic level, a .cfc file in ColdFusion is a class, and you create an instance of a class by using the CreateObject function or the <cfobject> tag.

Trying to squeeze an explanation of object oriented programming and how it's used in CFML into a few sentences is impossible, and a detailed overview of it is outside the scope of this chapter. There is lots of high quality information online, so go ahead and Google it.

Model-View-Controller

Model-View-Controller, or MVC for short, is a way to structure your code so that it is broken down into 3 easy-to-manage pieces:

  • Model. Just another name for the representation of data, usually a database table.
  • View. What the user sees and interacts with (a web page in our case).
  • Controller. The behind-the-scenes guy that's coordinating everything.

MVC is how Wheels structures your code for you. As you start working with Wheels applications, you'll see that most of the code you write is very nicely separated into one of these 3 categories.

3. System Requirements

Wheels requires that you use one of these CFML engines:

Wheels makes heavy use of CFML's onMissingMethod event, which wasn't available until the release of CF 8.

Operating Systems

Your setup with ColdFusion 8 and Wheels can then can be installed on Windows, Mac OS X, UNIX, or Linux—they all work just fine.

Web Servers

You also need a web server. Wheels runs on all popular web servers, including Apache, Microsoft IIS, Jetty, and the JRun web server that ships with Adobe ColdFusion. Some web servers support URL rewriting out of the box, some support the cgi.path_info variable which is used to achieve partial rewriting, and some don't have support for either.

Don't worry though. Wheels will adopt to your setup and run just fine, but the URLs that it creates might differ a bit. You can read more about this in the URL Rewriting chapter.

Database Engines

Finally, to build any kind of meaningful website application, you will likely interact with a database. Currently supported databases are SQL Server 7 or later, Oracle 10g or later, PostgreSQL, and MySQL 5. (Please note that MySQL 4 is not supported.)

OK, hopefully this chapter didn't scare you too much. You can move on knowing that you have the basic knowledge needed, the software to run Wheels on, and a suitable project to start with.

^ Top
Table of Contents

Comments

Read and submit questions, clarifications, and corrections about this chapter.

[Add Comment]

  1. Manithan's Gravatar Manithan says:

    Hi Guys,
    just want let you guys know what is coming. i ran the framework on CF9 private beta2, it is not working because i think "component" is the key word for CF9.

  2. Ryan Stille's Gravatar Ryan Stille says:

    I am reading through the requirements and I don't see anything about Railo or Open BlueDragon.  Does CFWheels only run on a Adobe ColdFusion?

    -thanks

  3. Chris Peters's Gravatar Chris Peters says:

    Hmm, I must have forgotten to change this on production. There is support for Railo but not OpenBD at this point. Because open source Railo is still in beta, it's kind of a moving target, but I do know of a couple guys developing Wheels apps on top of it.

  4. Grant Copley's Gravatar Grant Copley says:

    FYI, I've been running Wheels on top of Railo for a good bit now and can say I'm happy with the results.

  5. Samson Quaye's Gravatar Samson Quaye says:

    hello,
    i think i still have problems with my installation. i am using CF9 on IIS and a windows 7 OS. i followed all the steps on the installation guide and still yet, I can't run the demo application as described in the get started guide. Can anyone help me with this...
    thanks

  6. Sin's Gravatar Sin says:

    some provider like 'godaddy' or 'gomummy' dun offer <cfobject> and createObject(), can Wheels work without them?

  7. Claude's Gravatar Claude says:

    You should drop any host that doesn't support createObject() or similar methods as you'll be limiting your ability to write decent/efficient OO CFML.

  8. Colin's Gravatar Colin says:

    Chris, you mention that there is no support for OpenBD but what about BlueDragon 7.1

  9. Chris Peters's Gravatar Chris Peters says:

    Colin,

    You are welcome to try the commerical BlueDragon engines, but it's very likely that it won't work.

  10. Chris's Gravatar Chris says:

    Ok..I'm feeling kinda lame here...

    I can't seem to upgrade my Railo Express for Windows to the minimum version for CFW1.1.1

    I'm relegated to using CF9.  I really want to see what all the hub-bub is about the speed of Railo.

    I'm on version 3.1.2.001...I got the patch (3.2.0.003), but can't seem to get it to upgrade.

    anyone give this clueless bat a hand? :)

    Thanks!

  11. Chris Peters's Gravatar Chris Peters says:

    Chris, you can set the update URL in the Railo Administrator to either preview.getrailo.org or dev.getrailo.org, I believe, and it'll allow you to automatically upgrade to version 3.2.

    http://groups.google.com/group/cfwheels/browse_thread/thread/277ab72b9f5a54cc/b0aad31d6a89137c

  12. Chris's Gravatar Chris says:

    Chris..big props to you!

    This is the line I was looking for in the thread:

    Railo 3.2.0.001 rc is available on dev.getrailo.org
    /railo-context/admin/server.cfm?action=services.update

    I'm updated and CFWheels 1.1.1 is running on my machine.

    Now onto delving into the world of wheels :)

    Thanks again!

  13. Arish's Gravatar Arish says:

    I am hosting at hostek and i have installed coldfusion 10 developer edition on my mac, in hostek CF10 is working fine and in my local machine it has an error of

    Adobe ColdFusion 10,0,0,282462 is not supported by Wheels.

    Is this correct? When it will ready for CF10?

    Thanks.

  14. Todd's Gravatar Todd says:

    Any chance that NuoDB become a supported database?

Add Comment