Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What technology to use in creating DSL for rules engine?

Tags:

.net

rules

f#

dsl

boo

What technology would you recommend to create a DSL for a Business Rules and Validation Application Block for .NET? And why?

The architecture of the framework is established and proof-tested by a production. I just want to create a .NET processor to transform human-readable rules to a compiled Rule implementations.

The options that I'm aware of are:

  • Use compiler pipeline of .NET Boo
  • Use the parser builders that come with F# - FsLex and FsYacc

Unfortunately none of these approaches provides anything to build more-or-less friendly IDE for editing DSL, given the DSL syntax (which would evolve).

Any ideas or hints?

like image 946
Rinat Abdullin Avatar asked Feb 13 '09 13:02

Rinat Abdullin


1 Answers

Microsoft's next generation application development platform, codenamed Oslo (now Delve)

Makes it easier for people to write things down in ways that make sense for the problem domain they are working in

Oslo seems to consist of a visual design tool named "Quadrant", a modelling language named "M", and the "Oslo" repository (a SQL Server database) storing the rules.

So if I read things correctly, you could define a modelling language in M, use Quadrant to define and edit your validation rules using your own modelling language, and write an application that makes use of the Oslo repository, generating your Business Rules and Validation Application Block for .NET.

like image 114
Stephen Denne Avatar answered Sep 23 '22 02:09

Stephen Denne