Documentation Updates: Pages, Sending Email, and Configurations

We have 2 new chapters and 1 updated chapter in the Documentation.

First, Per wrote a chapter about Pages, which basically sums up a variety of ways that the view layer works to make your live as a developer easier.

Raul and Per worked together on a new chapter about Sending Email using the sendEmail() function. This is a powerful way to send different types of emails using templating and layout patterns similar to what's available in Wheels's view functionality.

Lastly, I updated the Configuration and Defaults chapter. I realized that we had left out some details as well as a full listing of what built-in configuration options are available.

Enjoy. Please continue providing feedback about the framework. We can't do this without you guys!

New Chapter: Object Validation

Another quick announcement. We've released a chapter in the Documentation about object validation.

Object validation allows you to enforce business logic related to your data easily. It also allows you to persist your objects so that your application can communicate error messages back to the user or handle the errors in some other way. It's a very clean way of handling logic that can be very repetitive if you choose to write it all out by hand instead.

How OO Almost Destroyed a Business

I stumbled across an honest account by Marc Funaro about how OO almost destroyed his business. He spares no detail in the post, but I still think it is worthwhile to read in its entirety as a reality check for yourself.

Dynamic languages like PHP and CFML have been on a quest over the past few years to be more "Java-like," adding more object oriented capabilities. These features bring a lot of promise for your code to become self-documenting and organized. But there have been undercurrents by pragmatists who contest that these features add unnecessary complexity for languages that were "fine just the way they were."

As I've progressed through my career with ColdFusion, I've started agreeing more with the pragmatists. While ColdFusion experts have been arguing about "XML versus no-XML" over the past year, I've strongly desired getting my work done so I could feel some accomplishment and have a fresh breath of air away from my computer from time to time.

With my personal experience, this is where ColdFusion on Wheels has entered and really brought the fun back into ColdFusion development.

One thing that Wheels has done for me is use CFCs to organize my code and make database queries easier. But at the same time, I don't feel like I'm wasting too much time worrying about the design of my objects. It all just flows and works organically, and it all works that way simply by following conventions that we've laid out for you. I will forever be amazed at what David Heinemeier Hansson has accomplished by implementing the concepts of Ruby on Rails and what these concepts accomplish for me in my life as a CFML developer through my use of ColdFusion on Wheels.

If you at all have felt CFML lose its magic in a way that Marc Funaro described so well, give Wheels a try. The more you uncover about our framework, the more it just makes sense. Our framework considers what ColdFusion as a platform does well and sticks with that. ColdFusion returns recordsets lightning-fast, so Wheels's findAll() methods return recordsets instead of CF's notoriously slow objects. (It also uses objects to represent data when that makes sense.) Wheels also helps you easily understand where your URLs point to in your code with its controller conventions. And hell, I'll even offer up the fact that Wheels's default URL behavior doesn't even give regard to the underlying platform. Having URLs that end with .cfm, .aspx, .jsp, etc. do nothing to contribute to the overall user experience anyway.

These sentiments bring me a lot of hope for Wheels's role in the CFML community. We're pushing forward and helping you develop beautiful code using the best platform for developing web applications, period.

Methods for Tracking Change

Per gets down and dirty with a new chapter in the Documentation called Dirty Records. Really it's all about tracking change to your database records dynamically.

Give it a read and learn about the power of methods like hasChanged(), XXXHasChanged(), XXXChangedFrom(), changedProperties(), allChanges(), and more.

Wheels 0.9.2 Release

We've released ColdFusion on Wheels 0.9.2 into the wild this evening. No new features really, but quite a few bug fixes.

Download version 0.9.2 and bring your Wheels app that much closer to 1.0. (We're getting really close.)

Hello Database Tutorial

As a follow-up to the Hello World tutorial, we've just released a tutorial called Hello Database.

As its name suggests, the point of this new tutorial is to help you get a jump start on learning about Wheels's ORM functionality. This is not an exhaustive walk-through but rather a taste so you can dip your toe into the pool.

If you've been on the fence on whether you'd like to try ColdFusion on Wheels, give the tutorial a read.

Associations Chapter in Documentation

A big part of Wheels's included ORM is its use of associations to describe relationships between models. It's been a long time coming, but we released a chapter in the Docs about associations along with the 0.9.1 release of ColdFusion on Wheels.

Read More »

Wheels 0.9.1 Available

We are excited to announce the availability of ColdFusion on Wheels 0.9.1. I personally can tell you that the core team and community have really outdone themselves with this release. It is a giant step toward an impending release candidate.

Here is a brief listing of what Wheels developers gain from this release:

  • Ability to set global defaults for most functions' optional arguments
  • Upgrade-friendly configuration settings
  • Support for using multiple data sources (set on a per-model basis)
  • Ability to group view helpers by controller
  • Support for sending multi-part emails (HTML and plain text in same email)
  • New PluginManager plugin that helps you find and install plugins
  • Improved Railo support
  • Lots of bug fixes and other minor improvements

Review the Upgrading to Wheels 0.9.1 chapter to see what you would need to change in your application when upgrading.

Because of the big changes to the way that configurations are done, we figured this would be a good time to finish the chapter on Configuration and Defaults.

More reference chapters and documentation on the functions in the Wheels API are in the works, so stay tuned.

Apologies for Duplicate Entries in RSS

I switched the domain for CFWheels.com to CFWheels.org yesterday (We're not trying to make money from you, after all.)

As a result of this URL switch, FeedBurner reposted the last 10 blog entries as new posts. You may safely ignore the flood of "new" posts if you would like.

Sorry for the confusion that I may have caused. Blunder alert!

Wheels 0.9: The Final Final Beta Cycle

We're happy to announce a significant maintenance release of Wheels: version 0.9. We're also running out of decimal points on the way to 1.0. I don't think we'll do anything cheap like version 0.10. :) Consider this the final beta cycle.

I asked Per how many bugs were fixed in this release, and he answered, "Tons."

Many of these bugs were reported by the community, which is an amazing thing to see. The success of this framework is being built on top of direct feedback from you. Many thanks!

I'd also like to announce that we've added Raúl Riera to our core team of contributors. Raúl has been working on an impressive scaffolding plugin and has contributed a ton of feedback and code patches to the project. I also run across his comments all over the CFML blogosphere, championing Wheels and getting the word out.

Many thanks to Per, Peter, Tony, Raúl, and everyone else who has been contributing to the project in various ways. It looks like we'll be production-ready this year!

More Entries