views:

26

answers:

1

The first part of the problem is that I don't know if there's a specific name for a system like this :)

In my app I need a system to give the user the ability to interconnect object-properties; objects can have inputs and outputs, and inputs of one object can be connected to outputs of other objects. Optionally type-converters can be used f.e. to connect an output of type int to an input of type float.

A nice example is Quartz Composer : http://www.pedjanikolic.co.uk/3D_Blog/wp-content/First%20patch%20big%20image.jpg

I think it won't be a problem creating a system like this, but I was wondering

  • if there's a specific name for a system like this
  • if there might be known implementations in C# (Maybe with WPF databinding)
  • if anyone has any tips for writing a system like this.
A: 

There are two things here - a) UI for user to connect components to each other and b) interpret/evaluate that to run component together. (There will also be supporting pieces such as metadata dictionary (to show what components are available and their i/p, o/p), object model to represent user defined graph etc.) IMO, part b would be simpler to get - probably, any business rule engine should suffice. Part a (UI) would be a difficult to get. Ther can be commercial BRE tools that may provide pluggable UI surface. As such, you may want to look at Workflow Foundation for simple rule engine run time. UI for it is as such available in Visual Studio only and may not be hosted in your application.

VinayC