代码之家  ›  专栏  ›  技术社区  ›  Schotime

每个客户的自定义业务规则…(asp.net mvc)

  •  3
  • Schotime  · 技术社区  · 16 年前

    在我正在处理的web应用程序中,项可以通过多个状态(例如工作流),并且在每个工作流之后,可以在每个步骤之后运行一个规则,该规则可以停止进程或显示其他消息。

    我在考虑每个规则一个dll(并将它们与MEF或事件连接起来),但是一个应用程序中可能有200-300个客户,每个客户都有一些规则,这些规则就变成了很多dll。

    更新:
    这些规则可能如下。假设您提交了一张发票,但您只想从您的批准人那里授权它,如果它超过了一定的金额,那么将调用这样的规则来返回true或false,然后进行相应的操作。

    4 回复  |  直到 16 年前
        1
  •  1
  •   W. Kevin Hazzard    16 年前

    听起来像是一个应用程序,可以从使用Ruby或Python这样的动态语言编写的业务规则中获益。IronPython与用C#或VB.NET编写的应用程序很好地集成在一起。您可以在web应用程序中创建DLR ScriptEngine和ScriptScope,根据客户机ID参数注入用动态语言编写的规则,以便与实时的纯旧.NET对象(PONO)交互。您可以将数百条规则保存在数据库中,因为它们只是文本(例如Python源代码)。退房 this blog post

        2
  •  0
  •   Tom Anderson    16 年前

    这可能是个很好的候选人 .Net Workflow Foundation

        3
  •  0
  •   Bill Yang    16 年前

    假设工作流引擎是数据库驱动的,则可以通过添加公司id字段来区分工作流定义。您必须在涉及工作流的所有地方实现这一点,检查它是什么公司id,并相应地加载工作流。您还必须分别为每个公司id创建工作流。

    这听起来很乏味,但实际上很简单,很容易搞定。

    然后,您可以进一步定义哪个用户使用哪个公司id。或者如果您确定每个用户将使用不同的工作流包,则可以使用用户id而不是中间公司id。

    推荐文章