首先说Biztalk可以做工作流其实并不准确,Biztalk实现的业务流程的管理,用于支撑无人值守的业务流程,并且不支持根据数据状态驱动流程的特定。工作流而是侧重人工参与,比如一个审批动作需要人工的判断,执行,这个流程才能继续往下走。对于工作流中不依赖于人工介入的部分,和Bitalk的作用也有明显区别:一件事情的发生引起了另外一件事情的发生,比如产生了一个订单,就自动产生一个预制发票,大部分场景下这也不是业务流,而是业务流中的一部分,除非订单的发生之后关联的流程非常简单,简单到只是自动产生预制凭证的话,你可以把两个工具的作用看成一致的,但是实际情况绝对没有这么简单。
其次,Biztalk开发环境中的activity不支持自定义,而WF的支持很灵活的activity。
如果你想做BPM并集成无论是内部还是外部的系统,那就用Biztalk。如果想根据数据状态驱动流程的发展,实现类似这样的场景,WF是个选择。