Skip to main content

January CONDG Meeting

Hit the Central Ohio .Net Developers Meeting last night. You'll find me there almost every month but last night was especially cool.

Mike Wood presented on .Net Workflow (WF) as a rules engine. This is Mike's fourth time in recent weeks delivering this presentation around the Heartland (Microspeak for Ohio, Ky, Michigan, Tenn) District and it showed. The talk communicated the ins and outs of a complicated but feature-rich product with clarity and passion. It was one of the best I can remember in recent months...although I tend to get really geeked out about WF and BPM.

I must admit an "ah, ha" moment in approaching .Net WF as a rules engine. (It seems fundamental and a no-brainer that the heart of WF is a rules engine but...) I had always just thought of it as a mostly-graphical (drag/drop) method to lay out a business process...like a mortgage application approval process. Did someone from Credit approve it? Yes, then "route" to Accounting, etc. But WF is so much more. By persisting business rules in WF (simply XML .rules files behind the scenes), we can bring significant maintenance improvements to our code.

Think about a business rule change in your code today. A scary prospect, right? Well, hopefully, you've surrounded your rules with great test coverage (in my best Judge Schmales: "hmmmm? hmmmm?") making it somewhat easier. However, you still need to recompile and re-deploy assemblies, etc. And, more importantly, you need to make sure your change to the rule doesn't cascade into other rules causing unexpected outcomes with your business logic.

With WF rules, you use the rule editor to make the change and the XML gets serialized out to the .rules file. WF handles priorities, chaining, etc. Push that file out into your prep/test environment, test like a banshee and push it to production. Very cool.

WF also provides lots of helpful features such as hierarchical or rule priority execution forcing certain, higher priority rules to execute first. Additionally, one can persist workflow state out to a relational store, interrupt workflow midstream (step 8 of 10 contains a business rule that needs to change...all objects currently before 8 must experience this change), or even host business rules outside of WF.

Overall, Mike gave a great presentation. He engaged the audience and shared some very helpful information. I'll definitely recommend this to my clients given the right situation.

Additionally, there are lots of new developments with the group:
  • CONDG is now a non-profit group
  • New board members were elected:
  • CONDG sponsorships are now being accepted:
    • Annual: $2000
    • Single meeting: $250
    • SWAG: $50
  • Sponsorships should result in dinner being catered in (Nice! No more 15 minute throw down a Chipotle burrito or starve until arriving home at 8:30!)
  • CONDG has formed a sub/sister group entitled the Mid-Ohio Connected Systems Developer Group (MOCSDG). Not sure how to pronounce that but I'm soooo there! More details to come.
  • And, finally, CONDG has begun working in closer conjunction with COSPUG, the Sharepoint/MOSS user group.
Way to kick off the year, guys. Very exciting developments. I'm looking forward to a great year of learning and contributing (my ADO.Net Entity Framework talk got pushed back to May but I'm on the hook for a February grok talk...I'm thinking about a mobile 3.5 LINQ to Amazon demo.)

Comments

Unknown said…
Sounds like a great presentation. Rules engines are incredibly powerful, not surprisingly the .rules files can be read on the fly as in...from a database? Allowing rules to be tweaked after being deployed...which can have benefits (yes, yes, I know, they changes won't be *tested*, but with some sound groundrules it can be extremely powerful. Hopefully the rules engine in this blog isn't broken, cause if I'm not mistaken it says you posted this at 5:45 AM ????? ;)
Jeff Hunsaker said…
@kevin

Actually, I do my best writing at 5AM: it's quiet, kids are asleep, I haven't endured an entire day of events. Perfect.
Shawn Domer said…
Great post Jeff...gave me a nice insight into the meeting! Sounds really cool, wish I could have been there.
Anonymous said…
Jeff, I'm glad you got some good stuff from my talk! Thanks for taking the time after the event to say hi.

Popular posts from this blog

Rollback a Ooops in TFS with TFPT Rollback

Rhut roe, Raggie. You just checked in a merge operation affecting 100's of files in TFS against the wrong branch. Ooops. Well, you can simply roll it back, right? Select the folder in Source Control Explorer and...hey, where's the Rollback? Rollback isn't supported in TFS natively. However, it is supported within the Power Tools leveraging the command-line TFPT.exe utility. It's fairly straightforward to revert back to a previous version--with one caveot. First, download and install the Team Foundation Power Tools 2008 on your workstation. Before proceeding, let's create a workspace dedicated to the rollback. To "true up" the workspace, the rollback operation will peform a Get Latest for every file in your current workspace. This can consume hours (and many GB) with a broad workspace mapping. To work around this, I create a temporary workspace targeted at just the area of source I need to roll back. So let's drill down on our scenario... I'm worki...

Switching the Parents to Ubuntu...?

I spent a half hour or so recently on the phone walking my Mom through a technical issue. Tentatively, I diagnosed her issue as a hard drive failure. She brought it over on her last visit and sure enough, the Dell XPS 450 from circa 1999 sounds like a bad coin-operated laundry at full capacity. I was aghast to discover she's running Windows 98. Ugh. Also, her recovery disk is just that--for recovery. I don't believe I'll be able to re-install Win98 on a new hard drive. That, coupled with the end of Microsoft (and Dell) support for Win98, got me thinking about Linux. (and she's not intense about her computing needs...and she doesn't want to spend much money...) I've been reading good things about switching one's parents to Ubuntu. Any thoughts out there?

VSTS Tester Demo Follow-ups

Last week, I delivered a VSTS 2008 Tester Edition demo to a prospective client. Following up on a few questions to which I didn’t know the answer: Q. Can I use Subversion with TFS? A. I get this question all the time from developers. It’s a perfectly valid question. The answer is no…but yes…sort of. The version control repository (and all data) must remain SQL Server. Yes, it’s proprietary. Further, if you plan to use TFS in your software development environment, but choose not to leverage it for version control, it severely limits the usefulness of the information elicited from TFS (because you’re not feeding in the crucial VC data). If you’re not leveraging VC in TFS, you’re probably not leveraging Team Build either. That said, while a fully-integrated TFS for ALM and SCM is the ideal, there’s a compelling argument to leverage TFS as a repository for requirements, scenarios, test cases, functional and load testing as well as defect tracking. TFS is an excellent repository to s...