c# - 在贷款请求场景中推荐哪种工作流技术?

标签 c# asp.net-mvc-4 workflow workflow-foundation-4 biztalk

我们将开发一个需要基于工作流的 ASP.NET MVC 4 Web 应用程序。 场景是这样的:

场景

Users make request to get loan of a bank by submitting a form, operators find the requests in a grid in their dashboard, they see the details and if it is okay they send it to boss, and send it back to users to fix or complete the request, if not. The boss decides to pay loan or not, if yes and the price is below something it goes to fund section, if it is above something the request goes to another boss and so on..

要求

  • 在每个状态中,可能会附加一些额外的相关数据,例如发送请求时计算的用户积分。
  • 流程管理员(管理员)可以取消任何请求,无论该请求位于何处,或者将请求传递给他希望的任何人。
  • 可能有多个可用的转换,状态可以沿着它们移动,状态应检查条件并选择一个转换。

同时运算符(operator)可以

  • 在彼此之间传递请求(如果允许),例如,如果他们太忙或要去度假(替代)
  • 查看请求历史记录并查看往返中更改的数据(版本控制)
  • 在将请求发送给下一位或将其返回给某人之前写下注释。

问题

在上述场景中,哪种技术更适合?为什么?

  • 工作流基础
  • BizTalk

或者类似的库:

最佳答案

我不会为此使用 BizTalk,尽管我已经担任 BizTalk 开发人员多年,并使用它实现了类似的工作流程。

原因是我得出的结论是,在 BizTalk 中对复杂的业务工作流程进行建模是对 BizTalk 真正擅长的领域(高性能消息路由和转换以及主机集成功能)的诅咒。

但是,我也不会为此使用 WF。我认为 MS 使 WF 变得不必要地难以使用。我使用的是 WF3,这是第一个版本,所以也许情况有所改善。但据我所知,MS 从 WF4 开始删除了状态机工作流程,现在只支持顺序工作流程。

所以在回答你的问题时,我认为两者都不适合这个目的。

为什么不从除了 ASP.NET MVC、JQuery 和 SQL Server 之外的任何技术堆栈开始。这似乎是目前 MS Web 开发标准。您可能已经获得了这样做的许可。

尽管您似乎已经预先提出了要求,但您可能会发现您列出的部分甚至大部分要求可能会发生更改甚至删除。

因此,从一两个核心用户故事开始,这些故事可以在小迭代中快速交付,然后继续添加类似的功能。当您需要开始考虑其他技术或框架时,就是重新评估决定的时候了。此时,我个人会考虑使用 NServiceBus sagas 作为管理长时间运行的流程的另一种选择。

我认为在规划过程中过早做出有关技术堆栈的决定可能会在很多方面对您不利。

抱歉,没有直接解决您原来的问题。

关于c# - 在贷款请求场景中推荐哪种工作流技术?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19023885/

相关文章:

c# - 准确的日期时间字符串格式

c# - 如何将变量定义为 lambda 函数

c# - 对齐列中的单词

git - 内部开发使用 git 的工作流程描述

javascript - Grunt 不加载外部任务

gitworkflows - 究竟如何毕业一个分支?

c# - 如何在没有第三方库的情况下序列化对象+压缩然后解压+反序列化?

asp.net - ASP.NET MVC 网站中的全局值是否可以由使用该网站的任何人访问,或者是否为每个 session 实例化?

c# - 提交简单表单 MVC ASP.Net 网站的堆栈溢出异常

jquery - 用于 jquery 的 MVC 4 包使用 {version} 不渲染