如何为我的应用程序添加可编程性

Sis*_*utl 7 .net c# scripting .net-3.5

我正在编写一个应用程序,它的核心是一个规则引擎.用户希望能够定义自定义规则.其中一些将是相当简单的代数表达式,许多将涉及一些if-then分支逻辑,而一些将更复杂.这样做有什么选择?

我的用户是非常聪明的,在T-SQL和Excel命令精通,一般熟悉的编程结构,但它们不是"程序员" 本身.

我考虑过使用VBA/VSTA; 以某种方式与Excel互操作; 集成某种脚本语言(Ruby?Perl?Tcl?); 或滚动我自己.

在所有可能的世界中,我将为他们提供一个带有颜色编码和类似IntelliSense的交互式帮助的编辑器,一个用于测试和试验的即时执行模式,以及一个逐步调试器.他们还需要能够保存,检索,编辑和执行他们的规则.炽热的速度并不重要.

我的环境是Windows/.Net 3.5/C#

有任何想法吗?

Nou*_*him 5

我不是一个人的窗户,所以我的答案会不会正好适合你的情况.我建议在您的应用程序中嵌入一个完整的脚本语言解释器.暴露一些原语(即你想要公开的规则引擎的部分),然后提供一个完整的解释器.我知道TCL,Python和Guile都是以这种方式嵌入的.我个人推荐Python,因为Scheme(guile)有点深奥,TCL似乎一般都会失败.

  • 另一个好的是lua.它被用作魔兽世界中的嵌入式语言以及我使用过的其他一些自定义Windows应用程序. (4认同)