Blog blurb

This blog is the resting place of my various projects. It's a place to find out about my various commercial and personal projects. Some of them are quite geeky and some of them are more arts based. All my projects are a small subset of all my ideas for projects. There's not enought time really.

RSS Get updates by subscribing to the RSS feed.

Richard's weather

cloudy

Richard in Leeds is mainly experiencing medium cloud level.

Perfect validation?

17/09/2007

Doing validation well and being able to get it done quickly is a recurring problem in any web project. When I first started using ASP.NET I thought the built in validation controls would be the answer.

They were really easy to add to a page, but they didn't do everything I wanted them to and I found some of the code they produced a bit strange.

I set about making my own controls that would be just as easy to add to a page, but do everything I wanted them to.

My main requirements were:

  • Easy to reuse and add to new forms
  • Validate on server and client
  • Client side validation to use ajax
  • Visual feedback to user as form is being filled in
  • Easy to unit test

I've created a number of validation controls that are very easy to add to a page. You just add the controls, tell them the validation rules to use and everything else is done for you. It only takes a few minutes and this used to take hours.

The controls will always validate on the server, but if they will also validate with JavaScript (if available) and only submit to the server when the validation passes.

The visual feedback was difficult to get right and I had to test out several options on willing volunteers till I found what worked best.

I've centralised all the validation rules I use and written unit tests for them. This means that I'm much more confident that the validation validates what it is supposed to.

You can see them in action on my contact page and the register page of this blog.

However, I'm still not sure they're perfect and I'm going to keep on refining them. The great thing about creating controls to do this, is that they'll continue to get better, and all my projects past and present will benefit from it.

RichardGComments: 2