---
title: ".Net user group review: BizTalk rules engine"
url: "https://osherove.com/blog/2004/2/22/net-user-group-review-biztalk-rules-engine.md"
canonical: "https://osherove.com/blog/2004/2/22/net-user-group-review-biztalk-rules-engine.html"
published: "2004-02-22T17:45:00"
updated: "2004-02-22T17:45:00"
tags: [".Net Original"]
author: "Roy Osherove"
description: "I met Memi today at the .Net architects user group. I knew Udi from before but Memi was news to me and he's a very nice guy. I think we're getting to that point where having a blogger dinner would not be a sad and…"
usage: "Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page)."
license: "https://creativecommons.org/licenses/by/4.0/"
---

# .Net user group review: BizTalk rules engine

By Roy Osherove February 22, 2004 In [.Net Original](https://osherove.com/blog/category/net-original)

**Historical article** · Originally published February 22, 2004; technical details may be outdated.

I met [Memi](http://weblogs.asp.net/memi/) today at the .Net architects user group. I knew Udi from before but Memi was news to me and he's a very nice guy. I think we're getting to that point where having a blogger dinner would not be a sad and pathetic affair :)

As for the meeting, it went well. It was all about using the BizTalk rules engine as a standalone API engine for rule based applications (BizTalk does not even have to be part of this). In the future we might start seeing the Rule engine come bundled in other frameworks (Project? VS.Net?) or maybe even a standalone version, but right now it's part of BizTalk so you need to install it.

The presenter showed using the Engine API to evaluate and execute some rules on XML files and object references.

Some points:

- The Engine API is not so great. It's pretty cumbersome to add "facts" to the engine via code and some of the naming guidelines are plain "could be better". For example, to add an XML file as a fact for a ruke, you create a TypedXMLDocument and sent it as a parameter to a Policy object (which takes an Object in the constructor). Why not have some global "IFact" interface or a "FactHolder object to send this in? it's less readable.
- It's hard to create the rules. As a matter of fact, I'd see more usability and business value in actually using [scripting in your .Net app](http://weblogs.asp.net/rosherove/articles/dotnetscripting.aspx) rather than use this engine. Would be easier and maybe even more maintainable. Performance and scalability problems can probably be addressed as well if though about enough. It's also more expensive with BizTalk.

## More in .Net Original

[All posts in .Net Original](https://osherove.com/blog/category/net-original)

- Feb 26, 2004

    ### [ILdotNet - Israel's .Net User Group Information Center](https://osherove.com/blog/2004/2/26/ildotnet-israels-net-user-group-information-center.html)

- Feb 23, 2004

    ### [Asp.Net slider control?](https://osherove.com/blog/2004/2/23/aspnet-slider-control.html)

- Feb 22, 2004

    ### [\[Book\] Writing Secure Code, 2nd Edition](https://osherove.com/blog/2004/2/22/book-writing-secure-code-2nd-edition.html)

- Feb 21, 2004

    ### [Iterating over collections - As simple as possible, but no simpler.](https://osherove.com/blog/2004/2/21/iterating-over-collections-as-simple-as-possible-but-no-simp.html)


---

## About the author

**Roy Osherove**: Senior Solutions Architect at AWS working on AI for production and AI-driven development; author of The Art of Unit Testing and Elastic Leadership, with about 20 years of consulting and training on unit testing, TDD, team leadership and continuous delivery.

### Sites

- [RobotPaper](https://robotpaper.ai/): This blog: AI patterns and anti-patterns, AI and coding agents, and engineering leadership.
- [osherove.com](https://osherove.com): Roy's personal site. Author of The Art of Unit Testing and Elastic Leadership; consulting and training on unit testing, TDD, team leadership and continuous delivery, plus about 20 years of blog posts.
- [The Art of Unit Testing](https://www.artofunittesting.com): The Art of Unit Testing, 3rd Edition (Manning): readable, maintainable, trustworthy unit tests, plus TDD workshops in C#, JavaScript, Java and Kotlin.
- [5whys.com](https://www.5whys.com): Roy's writing on software team leadership: self-organizing teams, surviving chaos, learning mode and the Elastic Leadership model.
- [Pipeline Driven](https://pipelinedriven.org): Continuous delivery and DevOps practices: build patterns, pipeline-friendly testing, DevOps metrics and enterprise DevOps.
- [Elastic Leadership](https://www.elasticleadership.com): Elastic Leadership, Roy's framework for software team leaders (survival, learning and self-organizing modes).

### Social

- X: https://x.com/royosherove
- LinkedIn: https://www.linkedin.com/in/osherove/

### Contact

- Contact form: https://forms.gle/jQSx5KoXvrVA1JCK7

### License

Licensed under CC BY 4.0 — reuse, quote and adapt with attribution (Roy Osherove, link to the original page). License: https://creativecommons.org/licenses/by/4.0/
