我有一个系统,它将计算应用于一组数字(具体情况并不相关)。系统用户可以应用许多计算集,并且经常添加新集。目前,当需要将新的计算集添加到系统时,它们将被添加到代码库中并释放新版本的系统。我希望能够将新的计算集添加到系统中,而无需发布全新版本,也可以让系统用户自动看到这些新计算。目前,为每组计算创建一个新函数,并将包含相应函数名称的记录添加到系统表中。系统用户可以看到这些记录(函数名称当然是别名!),然后他们从列表中选择它们。系统使用Eval()函数运行适当的计算。
这是我继承的VB6 / Access应用程序,目前正在VB.NET和SQL Server中重写。
有没有人对如何做到这一点有任何建议?
答案 0 :(得分:3)
由于你在.Net中重做它,只需将计算放在插件中。使用反射在运行时加载和检查这些程序集,并向用户显示函数。
Divil有一篇关于编写基于插件的应用程序的文章很好(但现在已经很老了)。它会帮助你:http://divil.co.uk/net/articles/plugins/plugins.asp(+它在VB.Net中)
如果你这样做,你所要做的就是把一个dll放到正确的目录中,它就可以了。
答案 1 :(得分:0)
如果您正在使用一组标准数学函数,则可以使用允许用户在文本框中编写自己的数学函数。
然后使用语法解析器,例如:TinyPG on CodeProject
有了这个,你可以将表达式分解为:Reverse Polish Notation
然后,可以在varchar字段中轻松地从数据库中存储和调用它。
设置完成后,除非需要添加新的数学功能,否则无需重新发布应用程序。