【问题标题】:Architecture for easy update of application易于更新应用程序的架构
【发布时间】:2012-05-04 15:59:06
【问题描述】:

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

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

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

【问题讨论】:

    标签: vb.net architecture vb6


    【解决方案1】:

    由于您要在 .Net 中重做,只需将计算放入插件中即可。使用反射在运行时加载和检查这些程序集并向用户呈现函数。

    Divil 有一篇关于编写基于插件的应用程序的好文章(但现在相当老了)。它将帮助您:http://divil.co.uk/net/articles/plugins/plugins.asp(+ 在 VB.Net 中)

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

    【讨论】:

      【解决方案2】:

      如果您使用的是一组标准的数学函数,则可以使用允许用户在文本框中编写自己的数学函数。

      然后使用语法解析器,例如:TinyPG on CodeProject

      有了这个,您可以将表达式分解为 :Reverse Polish Notation
      然后可以在 varchar 字段中轻松地从数据库中存储和调用它。

      设置完成后,您无需重新发布应用程序,除非您需要添加新的数学功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-21
        • 2015-04-27
        • 2011-09-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多