ALite, my long-neglected C#.NET framework for creating objects that interact with databases, has had a few updates. Back in June last year I complained that I wasn’t happy with the basic validation system. I have refactored this into a much more useful and extensible system. Instead of a single object that could validate a primitive value in a handful of simplistic ways, it now uses a combination of an interface and a base class to provide a structured way for creating validation objects that can be as complex as required. Martin Fowler’s Refactoring is already paying for itself.
I’ve tidied up the delegate-based validation system, too. I’ve fixed the only bug I spotted from the last release - clearing a collection now removes the collection’s property event changed listener from the child objects. Lastly, I’ve tidied up some obvious places that would cause problems with multithreaded code and made a few optimisations.
There’s still a few changes I want to make before I create a new release. Note that these changes are breaking changes. Not that anyone uses the library. Perhaps I’ll write some real documentation for the new release.