David,
Sorry it's taken so long to get back to you. Life's been a bit topsy-turvy lately. Things are settling down now and I've gotten a chance to catch up on things.
It's funny that you mention fluent interfaces. The API for NValidate was originally modeled after NUnit; having the validator methods return the instance of the class was a suggestion from a poster on the Dot Net forums on Google, so that the implementation of fluent interfaces was quite accidental and only intended as a way to prevent the thing from creating an inordinate number of objects. I turned to that particular implementation as a performance improvement. (Go figure.)
In the end, however, I've really taken a shine to the way it's turned out. I recently pinged the forumites again and they put in some really good suggestions. We had to change the name of the class factory from Validate to Demand. Testing with ASP.NET revealed the nasty truth that the Page class has a Validate method on it; the naming conflict was really peculiar. I felt that the onus was on *me* to provide a better solution, not to ask any of my potential users to mangle their code with an extra namespace alias. (Tacky, tacky.)
It turned out really well, though. I think that Demand is a much better name, as it conveys a stronger message. My only regret is that it doesn't wholly jive with the product name now. Still, you have to admit that a statement like this sends a very clear message:
Demand.That(value, "value").IsInRange(byte.Min,byte.Max);
Finally, I took your advice. I got the code base into "alpha-ready" state, and finalized the documentation. I finally posted it to the web site. It's ready for review. So, in short, THANK YOU. Your advice was just the kick in the pants that I needed.
It's in the hands of the community now. We'll see what they think of its Alpha Release now. I'm treading wholly unexplored waters here; having never been involved in an open-source project, I'm not quite sure what to do next. I suppose, I'll just ask the community.
Again, thank you!