Get EViL
No, I'm not referring to the classic quote, "I'ma get medieval on your ass", by Marsellus Wallace in Pulp Fiction. Although don't think that I didn't think about using that as the title of this post ;-)

What I'm talking about is my new .NET open-source project called EViL, which stands for Entity Validation Library. So what is EViL? It's a project that contains numerous custom attributes targeted at performing business rule validation on entity classes. EViL allows you to decorate entities and their properties with any combination of attributes that are required to satisfy a given business rule. This approach gives you an extremely simple yet elegant technique to solving many business rules commonly found in today's applications. Because the EViL attributes perform all the necessary conditional logic for developers, your codebase becomes much thinner and easier to test, while at the same time satisfying the business rule requirements.

EViL is by no means original, in fact the whole idea was "borrowed" from some work that Ben Von Handorf did a while back. James and I got a hold of it, immediately saw its potential, and applied it to the project we were working on together at the time. That project had literally hundered of business rules and we were able to handle most of them using different combinations of the validation attributes that we and our team wrote. All I've done with EViL is taken what we did on that project, cleaned it up a bit, added a couple things here and there, and put it in the public domain.

Which brings me to why EViL can work for you right out of the box: it's been heavily used and tested in a large-scale application currently in production to great effect. In other words, it's proven.

I'm hosting EViL on CodePlex, which is basically Microsoft's answer to SourceForge, except it's all based on Team Foundation Server and contains only .NET projects. CodePlex is starting to gain traction and I must say I've been very impressed with it so far. TFS is the engine and repository behind it all, but it also uses its own custom wiki so you can quickly create and edit the pages for your project. Overall, very easy to get setup and to work with.

If you want to find out more about the EViL project (I mean, seriously, how cool and funny is it to say that?), such as checking out the list of attributes (21 so far) and how to use them, visit the EViL site on CodePlex and click around. Release 1.0.0.0 was uploaded the other day and you've got full access to the source code if you fancy a look at the internals. Side note: the source code includes all the tests and I'm happy to report that for the 21 attributes in this release there are 91 tests with 100% code coverage :-)

Like any good open-source project, if you have any questions, problems, issues, etc, please use the EViL forums (hehe) so that everyone benefits and so that all those types of things are collected in a single location. I've also created a Wish List forum for people to request other validation attributes they'd like to see added to EViL.

Enjoy!

1 comment(s) so far

Jason Williams wrote on Sunday, December 10 2006

Dave,

I was in your "Power Programming with Attributes" session at the Heartland Developer's Conference. You mentioned you were releasing this soon and I just wanted to say thanks.

This project will save me a ton of time.

-Jason

Post your comment

Comment