Photo from Chile

ValidateThis 0.92 - Easier to Extend, More Object Support, and more

I've just released version 0.92 of ValidateThis, my validation framework for ColdFusion objects. I'm very pleased to say that I received a large code contribution from Adam Drew, most of which made it into the framework. I also finally got around to adding John Whish's changes to the bundled ColdBox plugin. Here's a summary of all of the enhancements, followed by the details for each one.

  • ServerRuleValidators can be located anywhere.
  • Business objects with an abstract getter are now supported.
  • New DependentFieldName parameter for conditional client-side validations.
  • Fix to future-proof ColdBox plugin.
  • Fixes for Groovy conditional validations.

The latest version can be downloaded from the ValidateThis RIAForge site. Details of the enhancements follow:

[More]

ValidateThis 0.91 - Now with Groovy and ColdFusion on Wheels Support

I've just released version 0.91 of ValidateThis, my validation framework for ColdFusion objects. Here's a summary of the enhancements, followed by the details for each one.

  • VT can now be used to validate Groovy objects.
  • VT can now be used to validate ColdFusion on Wheels objects.
  • getVersion() is now available.
  • VT source code is now being housed at GitHub.

The latest version can be downloaded from the ValidateThis RIAForge site. Details of the enhancements follow:

[More]

I'll Be Presenting at cf.Objective() in April

I am pleased and honoured to announce that I'll be presenting at cf.Objective(), billed as the Only Enterprise ColdFusion Conference, which runs from April 22-24 in Minneapolis, MN. It's going to be quite the experience for me. Not only am I speaking on two topics (details to follow in a separate post):

  • Easy and Flexible Validations for Objects
  • What Your Mother Never Told You About CF9 ORM

I'm also organizing a Pecha Kucha Birds of a Feather session (BoF), during which people will be giving mini-presentations in which they show 20 slides for 20 seconds each. I've written about this BoF on my blog previously, but I'll mention again that anyone interested in presenting should leave me a comment on my blog or email me directly at bob dot silverberg at gmail dot com.

As if that's not enough, Mark Mandel and I will be delivering a comprehensive hands-on two-day pre-conference workshop on Developing Applications with ColdFusion 9 Object Relational Mapping. A separate post with the details of that workshop will follow, but in a nutshell it is designed to give you all of the information you need to get up and running with ColdFusion 9's ORM features in your next project. You'll write a ton of code, learning the basics as well as best practices and things to watch out for. I think it's going to be a lot of fun (in addition to a great learning experience).

Registration is now open, both for the conference and for the CF9 ORM workshop (you can sign up for it during the conference registration). There is a discounted rate for both the conference and the training available until January 29th, so you might want to register sooner rather than later.

I hope to see many of you there in April.

Join me at CFUnited and Get a Discount, Now

I'm delighted to announce (quite late, I might add) that one of my topics has been chosen to be presented at CFUnited 2010 in July. I'll be speaking on Automagic Validations for ColdFusion Objects, which I summarized to the committee as:

Are you confused about where to put the validation logic in your object oriented application? Are you tired of writing one set of validations for the server side and another set for the client side? Are you looking for a way to encapsulate your validation logic, so your business objects do not have to change each time your validation rules change? If you answered yes to any of those questions, then this is the session for you. In this session you will learn about an open source project that delivers all of the above, and is easy to integrate into any project. You define your business rules in a simple XML file and the framework will automagically perform all of your server side validations and generate all of your client side validations. What's more, the framework is flexible and extensible enough to allow you to define an unlimited number of custom validation types and messages, all without touching any of the framework's or your own code. You'll leave the session with an understanding of what the framework can do for you, as well as how to implement it into a new or existing application. This framework is meant to be used in an application that makes use of objects. This would include ones that use Transfer, Reactor, hand-coded beans/DAOs, and, of course, ColdFusion 9's ORM.

If you're thinking about attending, you might want to register this week, as the Early Bird pricing ends this Friday.

I look forward to catching up with friends and colleagues at the conference, and hope to meet some new folks as well. Perhaps I'll see you there?

New Stuff for MXUnit, Model-Glue and ValidateThis on the Horizon

I've been extremely busy over the past couple of months on a number of projects, both for clients and open source, which has lowered my blog post output to approximately zilch.

I thought I would write a quick note about some items that I've been working on, and that should hopefully see the light of day in the ColdFusion open source world in the near future.

MXUnit Mocking Integration

Bill Shelton, of MXUnit fame, has written a mocking framework called MightyMock that has been close to being released for quite some time. I've used it and I liked it a lot. Bill and I discussed integrating it with MXUnit itself, to make mocking super easy for developers using MXUnit, and during the discussions we realized that it would be nice if MXUnit could support generating mocks via any framework, not just MightyMock. I set out to build a plugin architecture that would allow for any ColdFusion based mocking framework to be used with MXUnit. Thus far I have it working with MightyMock, ColdMock and MockBox. We're still working on the final bits and pieces, but if anyone is interested in giving it a try let me know and I can point you in the right direction.

Model-Glue ColdFusion 9 ORM Support

If you're a user of the Model-Glue MVC Framework you're probably aware of the fact that a couple of ColdFusion ORMs (namely Transfer and Reactor) can be used quite seamlessly with the framework via what's referred to as an ORM Adapter. This allows Model-Glue developers to take advantage of Generic Database Messages (GDMs), which provide for automatic CRUD (creating, reading, updating and deleting records in database tables) as well as basic listings. These GDMs also form a part of a feature called Scaffolds, which takes the automation even further by generating view and controller code for maintaining database tables. Using Scaffolds you can get a complete CRUD solution up and running in a matter of minutes.

With the release of ColdFusion 9 there's a new ORM player in the game, namely ColdFusion itself, with its new Hibernate integration. Dennis Clark and I have been developing a Model-Glue ORM adapter for ColdFusion 9's built-in ORM and it is nearly ready to be released. If you are interested in taking a look at it, or willing to help with testing it, please let me know.

The Model-Glue Documentation has more information available on both Generic Database Messages and Scaffolds.

ValidateThis CF9/ColdBox Sample Application

John Whish has been kind enough to contribute some bug fixes and enhancements to the ValidateThis core, as well as the ColdBox plugin. He's also been working on a ValidateThis/ColdBox 3/CF9 ORM sample application, which I plan to contribute to as well and should be made available in the near future.

ValidateThis CFWheels Integration

Mike Henke and I have been working on getting ValidateThis to work with the ColdFusion on Wheels framework, which just celebrated its 1.0 release. Although ValidateThis is designed to be totally framework agnostic (meaning it can be used with any framework without modification), because it is designed to validate ColdFusion objects, it relied on the fact that those objects would expose getters for each of their properties. That is standard practice throughout most of the CF world, but Wheels is a bit different. Its objects do not have getters for their properties, so the server-side validations were unable to determine the values of any properties, which rendered them useless.

Thanks to the encapsulation afforded by a decent object oriented design, I was able to enable ValidateThis to work with these new types of objects (which don't have getters) with a couple of minor code changes to the framework. Mike and I now have a version of ValidateThis that works with traditional objects as well as with "Wheels style" objects. Mike is also working on a new ValidateThis sample application, using CFWheels. Once we're done testing and have a decent sample application this new version of ValidateThis will be released, along with the new sample.

ColdFusion 9 ORM Training

Finally, I'd just like to mention that Mark Mandel and I will be delivering a comprehensive two-day, hands-on course covering Developing Applications with ColdFusion 9's new ORM features as a pre-Conference workshop at cf.Objective() this year. The course will run from April 20th to April 21st, 2010. Much more info will be available soon.

Happy Holidays everyone!

ValidateThis ColdBox Plugin Update

Thanks to John Whish, a bug in the ValidateThis ColdBox plugin has been fixed, so a new version is available at the RIAForge project site.

ValidateThis is a validation framework for ColdFusion objects that provides automatic server-side and client-side validations, plus a whole lot more. I have recently started using Git for version control for ValidateThis, and have moved the source code to GitHub. This made it extremely easy for John to create his bug fix and submit it to me for inclusion in the plugin. If anyone is interested in contributing to the project (either the plugin or the core), you can fork the corresponding Git repo from my GitHub page.

John and I are working on some sample code that will demonstrate the integration between ValidateThis and ColdBox, and which will be included in the RAIForge download in the near future.

If you are interested in learning more about ValidateThis, there are a number of resources available:

Actual Documentation Available for ValidateThis

I've been working on ValidateThis, my validation framework for ColdFusion objects, for several months now, and it has evolved to a point that I'm actually quite proud of. I understand that there are even some developers other than me using it! So I figured that the next step towards making it usable by others was to come up with some documentation that is a bit more organized than the ramblings in my blog posts.

So I'm pleased as punch to announce that the official documentation for ValidateThis is now available online! Just cruise on over to www.validatethis.org/docs/ and take a gander. There are still a number of sections that have yet to be updated, but I think that I've captured the core information that most users will need.

It was a lot more work that I anticipated, and I am grateful to Luis Majano and Mark Mandel for developing the excellent CodexWiki which is behind the content.

If anyone reading this has any comments, corrections or questions about the docs, please feel free to leave a comment here.

Whew!

More Entries