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
If you attended my presentation at the Dallas Day of .NET on SignalR, the source for the demo is available below.
The demo uses SignalR, ASP.NET MVC, and MassTransit to communicate between an external service (the console app), the web site, and the browser application, showing how an end-to-end solution with back-end events being published out to the browser could be accomplished.
At the end of October, we released MassTransit v2.0.1 to GitHub and NuGet. This release only included a few fixes that didn’t make it into the v2.0 release. Since I never made an official announcement of v2.0 on the blog, some links to the project, documentation, and mailing list are included below.
For those using the 1.x lineage of MassTransit, v2.0 includes several breaking changes in the API. This was necessary to reduce the complexity of getting new users up-to-speed, as well as eliminating some common areas of confusion. The API for v2.x should remain consistent from this point forward (well, until we start working on v3.x, which is a long ways off honestly).
Project Site (hosted on GitHub)
It’s worth noting that the MassTransit organization on GitHub is the ‘official’ repository. Please file any issues on that repository so that all of the MassTransit team members can help with any issues. However, you are encouraged to check the mailing list first as many first-time issues are discussed there.
This release was a long road and involved a lot of internal code cleanup, API grooming, and support for a new transport (RabbitMQ). We welcome your feedback, questions, and suggestions.
The guys at Los Techies have invited me to join their ranks and start posting on their blog. I’ve accepted the invitation and am looking forward to being part of their great community. I met several of the guys in Austin (one of which managed to snag a shot of Dru Sellers and me looking very sleepy) and they’ve got a good thing going over there.
I’ll continue to post in both locations as I figure out how to best integrate the content between the sites. I switched to FeedBurner for my feed so hopefully I can aggregate the content somehow. That, and getting MarsEdit to format the content nicely for Community Server (it seems that most Mac users don’t post on Community Server blog hosts so demand hasn’t been too high there). I think I’ve got the kinks worked out but I’m still massaging the process a bit.
So check me out here or at my blog on Los Techies, one way or another you should be able to find me!
I’ve been lazy the last few days so a quick update this morning.
We’ve been using this more (thanks to Handbrake, no help from Apple sadly) around the house for kids shows and movies. It’s a shame Apple doesn’t make it easier to leverage this product, it’s so compact and subtle, but searching for anything video related is a complete pain in the butt. And forget music without a set of defined playlists. An upgrade from Apple to support uPnP would be nice instead of only iTunes, but that’s probably not likely.
- Guitar Hero 3
I need to get some time to play this more. I certainly enjoyed the first couple of sets and the game itself is showing so much polish compared to previous versions. I really dig it.
I still love my iPhone — it’s a great device. Rumors are version 1.1.2 (minor upgrade to annoy the hackers) is due any day, along with an updated version of iTunes (7.5).
- OSX Leopard
This refresh of OSX is great and I continue to find more and more new things I like about it. There are a few minor annoyances, but I’ve figured out one of them at least. My intermittent network connection is due to the fact that my RJ45 plug isn’t locking into my MacBook Pro and keeps slipping in and out, in and out, in and… Anyway, fixed.
- Subaru WRX STI
With the updates to the ECU, I love driving this car. And the cooler weather has really brought on some new grunt that just feels so good. That, and not having to run the air conditioner!
- Dependency Injection and Inversion of Control with Castle Windsor
I gave my talk at work last week and I think it went well. I’ve gotten some good constructive feedback and will publish a blog post of the content in the near future. I hope to tune the presentation and add it my roster of talks for upcoming user group meetings.
I spent some time with the kids carving pumpkins for Halloween tonight. Check it out!
Since I’m a Mac user now, it only makes sense that I change my blog template to look like a Mac.
So I’ve started to try and use the Mac for everything possible. Of course, web surfing is an easy one, along with that comes Google mail, particularly since all of my domains e-mail is handled by Google Apps for Domains. Good stuff. Now I’m checking out how TextMate has the ability to edit blog posts offline and upload them to the blog. Seems cool enough to me, let’s see how it goes!