Answers:
仅当满足以下任一条件时,才需要WF:
有关更多详细信息,请参阅Paul Andrew的文章:Windows Workflow Foundation可以用于什么?
请不要将WF与任何形式的可视化程序混淆或联系起来。这是错误的,并且可能导致非常糟糕的架构/设计决策。
决不。您可能会后悔:
我唯一可以设想使用WF的时间是,如果我想为最终用户托管设计人员,甚至可能不是这样。
相信我,没有什么比您编写的代码完全能够直接,强大或灵活地完成所需的工作了。远离WF。
当然,这只是我的意见,但我认为这是该死的好意见。:)
通常,如果您不需要持久性和跟踪功能(我认为这是主要功能),则不应使用Workflow Foundation。
以下是我从经验中学到的Workflow Foundation的优缺点:
优点
缺点
我发现使用工作流基础的主要原因是,它在跟踪和持久性方面为您带来了无穷的收益。持久性服务的启动和运行非常容易,它可以在多个实例和主机之间带来可靠性和负载分配。
另一方面,就像表单应用程序一样,工作流设计人员向您推送的代码模式也很糟糕。但是,您可以通过在工作流中不编写任何代码并将所有工作委托给其他类来避免问题,这些类可以比工作流更优雅地进行组织和单元测试。然后,您将获得设计人员的出色视觉效果,而无需担心背后的意大利面条代码。
我目前正在为建立Windows Workflow Foundation(WF)而工作的公司,之所以选择使用它,是因为规则经常更改,这将迫使他们重新编译各种dll等,因此他们的解决方案将规则放在数据库中并从那里调用它们。这样,他们可以更改规则,而不必重新编译和重新分发dll等。
Windows Workflow像表弟BizTalk一样诱使非编码IT经理,BA等,但是实际上,单元测试,调试和代码覆盖只是众多陷阱中的三个。您可以克服其中的一些,但是您必须投入大量资金来实现这一目标,而使用简单的代码就可以做到。如果您确实有长期的需求,那么您可能需要更复杂的东西。我已经听说过有关能够在不重新编译dll的情况下将新的xaml文件放入生产环境的争论,但是说实话,工作流将消耗的时间可以更好地用于改进持续集成,以至于编译部署不会成为问题。