如何在Workflow Foundation中实现简单的业务工作流程?

时间:2011-02-22 13:47:12

标签: .net architecture c#-4.0 workflow-foundation workflow-foundation-4

我已经开始查看WF并且无法了解它如何替换我的Domain对象功能。 这是简单的域对象场景:

class Order {
    public int Id {get;}

    public OrderStatus Status {get;private set;}

    public void Approve () {
       if (Status >= OrderStatus.Approved)
          throw new InvalidOperationException("It is impossible to approve as order
          Status:" + Status);

       privateMethodCall();
       Status = Status.Approved;
    }

    public void Complete () {
       if (Status >= OrderStatus.Completed)
          throw new InvalidOperationException("It is impossible to Complete as order
          Status:" + Status);

       privateMethodCall1();
       Status = Status.Completed;
    }
}

我已经读过WF可以做得更好,因为Approve和Complete代码将放在一个地方 并且不可能以错误的顺序调用它们。这是真的吗?如果它是真的你能告诉我它如何使用对象模型(而不是xaml)在WF中看。

提前致谢。

1 个答案:

答案 0 :(得分:1)

有两种方法可以使用工作流程:

但是,如果你已经拥有可行的代码,我就不会改变它,你只需添加额外的复杂层而不会获得任何商业价值。