Odoyule Rules Engine for .NET

So I’ve been writing a rules engine for .NET for many years (on and off, but mostly off unfortunately). Lately, I picked it up again and yesterday published an early version on NuGet (OdoyuleRules). The implementation at this point is capable of pretty extensive matching, but testing is light at this point so there are probably some rough edges.

One of my favorite features is the visualization of the RETE graph once the engine has been loaded with rules. An example is shown below.



You can download the Visualizer and install it in Visual Studio 2010 (unzip the contents to your My Document/Visual Studio 2010/Visualizers folder). Then, mouse over a reference to a rules engine while debugging and you should be able to select and display the RETE graph of the engine.

Download the visualizer assemblies here: OdoyuleRulesVisualizer.zip

The project is hosted on GitHub, at http://phatboyg.github.com/OdoyuleRules



About Chris Patterson

Chris is a senior architect for RelayHealth, the connectivity business of the nation's leading healthcare services company. There he is responsible for the architecture and development of applications and services that accelerate care delivery by connecting patients, providers, pharmacies, and financial institutions. Previously, he led the development of a new content delivery platform for TV Guide, enabling the launch of a new entertainment network seen on thousands of cable television systems. In his spare time, Chris is an active open-source developer and a primary contributor to MassTransit, a distributed application framework for .NET. In 2009, he was awarded the Most Valuable Professional award by Microsoft for his technical community contributions.
This entry was posted in .net. Bookmark the permalink. Follow any comments here with the RSS feed for this post.
  • Love the Billy Madison reference ;)

  • Jesse Williamson

    Best. Library name. Ever.

    • Jason Yandell

      I came here to say that

  • Wayne Brantley

    Demo project or anything?

    • Not yet, only a few examples in the unit tests of how to write rules, etc. I should have something soon, perhaps a blog post with an example attached.

  • Jaspreetdeo

    Hi Chris a couple of questions, what is the advantage of using this over something like Nesper? Why did you go out and write one rather than use an existing rules engine, what don’t they have?

  • Jophez

    any sample codes i can use? newbie here…. :)

  • R Programmer

    I downloaded the code and when I attempt to compile it, the reference for Internals.Extentions and Internals.Reflection is missing.  I have been unable to locate the assembly.  PLease advise.