Vb.net 易于更新应用程序的体系结构

Vb.net 易于更新应用程序的体系结构,vb.net,architecture,vb6,Vb.net,Architecture,Vb6,我有一个将计算应用于一组数字的系统(具体细节并不相关)。系统用户可以应用许多计算集,并且经常添加新的计算集。当前,当需要将一组新的计算添加到系统中时,它们将添加到代码库中,并发布系统的新版本。我希望能够将新的计算集添加到系统中,而不必发布全新的版本,并且让这些新的计算对系统用户自动可见。目前,将为每组计算创建一个新函数,并将包含适当函数名称的记录添加到系统表中。系统用户可以看到这些记录(当然函数名有别名!),然后从列表中选择它们。系统使用Eval()函数运行适当的计算 这是我继承的VB6/Acc

我有一个将计算应用于一组数字的系统(具体细节并不相关)。系统用户可以应用许多计算集,并且经常添加新的计算集。当前,当需要将一组新的计算添加到系统中时,它们将添加到代码库中,并发布系统的新版本。我希望能够将新的计算集添加到系统中,而不必发布全新的版本,并且让这些新的计算对系统用户自动可见。目前,将为每组计算创建一个新函数,并将包含适当函数名称的记录添加到系统表中。系统用户可以看到这些记录(当然函数名有别名!),然后从列表中选择它们。系统使用Eval()函数运行适当的计算

这是我继承的VB6/Access应用程序,目前正在用VB.NET和SQL Server重新编写


有人对如何最好地做到这一点有什么建议吗?

既然您是在.Net中重做的,只需将计算结果放入插件中即可。使用反射在运行时加载和检查这些程序集,并向用户提供函数

Divil有一篇关于编写基于插件的应用程序的好文章(但现在已经相当老了)。它将帮助您:(+它在VB.Net中)


如果你这样做,你所要做的就是将一个dll放到正确的目录中,它就可以正常工作。

如果你使用的是一组标准的数学函数,你可以使用它来允许用户在文本框中编写自己的数学函数。 然后使用语法分析器,如: 使用此选项,您可以将表达式分解为:
然后可以在varchar字段中轻松地从数据库中存储和调用。 设置完成后,除非需要添加新的数学功能,否则无需重新发布应用程序