Prev: NetworkInformationException in NetworkInterface.GetAllNetworkInterfaces thrown when running as windows service
Next: Bug in RegistryKey.SetValue
From: Andy O'Neill on 5 Jan 2010 04:24 "Tom Shelton" <tom_shelton(a)comcastXXXXXXX.net> wrote in message news:uSajcMVjKHA.3792(a)TK2MSFTNGP02.phx.gbl... > On 2010-01-04, Andy O'Neill <aon14nocannedmeat(a)lycos.co.uk> wrote: >> I am designing a system which will work in a totally different way to any >> I've designed before. >> Almost everything has to be configurable. <<>> > > The only advice I have is to take a look at Windows Workflows. There is a > built in rules engine and you can create and alter rules using a dialect > of > xaml. > > -- > Tom Shelton Thanks Tom, that's a great idea. I briefly considered WWF but didn't realise the rules could be xaml.
From: Andy O'Neill on 5 Jan 2010 04:59
"Gregory A. Beamer" <NoSpamMgbworld(a)comcast.netNoSpamM> wrote in message news:Xns9CF68B067912gbworld(a)207.46.248.16... > "Andy O'Neill" <aon14nocannedmeat(a)lycos.co.uk> wrote in > news:EEn0n.36533$Ic5.30388(a)newsfe16.ams2: > >> I was wondering if anyone has done anything similar and has any >> thoughts, can recommend a pattern... example or whatever. > > I like the workflow option and would advise at least looking it over. It > might not work for you, but it will greatly reduce the amount of > plumbing you need to write. > > If that is not an option, the direction you head depends on what the > items on the list are. If primarily behaviors, then I see a couple of > patterns coming to mind: > > 1. Decorator - to add "rules" into the workflow > 2. Strategy - to better switch out algorithms > > This is a very high level look and I understand too little about your > project to be more specific. > > Another possible pattern is the chain of repsonsibility, if you can > easily chain the workflow together > > If you are heading with state, decorator is likely to still be involved. > > Just some thoughts off the top of my head. > > Peace and Grace, > > -- > Gregory A. Beamer (MVP) > > Twitter: @gbworld > Blog: http://gregorybeamer.spaces.live.com > > ******************************************* > | Think outside the box! | > ******************************************* Thanks. I'm a LONG way outside the box here. My box amyhow. Usually I have a database and concrete classes with a known list of variables and just one set of business rules. I think the workflow approach is probably the best candidate. Failing that, there are open source rules engines to look at. As you say, writing all the plumbing that attaches rules could be very time consuming. I initially had in mind something based on the pipeline approach I've seen used with linq. So the selection rules would be read from xml and into a collection which is then used in the selection pipeline. I then thought about driving events from that and realised the scope of the design. I didn't explain what the package is for because it's somewhat esoteric and I thought it probably wouldn't help other than convince readers everything must be configurable. |