Windows Workflow Foundation被用在哪些地方?

10

工作流(WF)是用于用户界面(UI)层还是业务层?如果在UI层使用,那么即使在业务层编码的人需要使用或学习它吗?


1
我认为他指的是WF,因为标题这样写。 - Chris Jones
我刚刚注意到我还添加了WCF标签。我在询问WF相关的问题。 - rubysons
3个回答

8
Chris提供了一个很好的答案,所以我会采取不同的方法。工作流程与逻辑实际上并不相同。工作流通常是逻辑的组合,这使它们成为整个逻辑的补充贡献者。当业务组件很好地封装了单个业务规则或行为时,工作流将多个业务组件、规则和行为组合起来,以满足更大、更长时间运行的业务流程的需求。
工作流可以适用于任何地方,填补用户界面、业务甚至数据层的处理需求。如果您最终使用WF,我强烈建议您培训您的开发人员,以便有广泛的知识和理解。尽管它具有视觉方面,但WF仍需要一些低级编码来构建活动库等内容,工作流创建者和维护者将使用这些内容。
编辑:
是否使用它由您决定。通常,WF由较大的项目使用,因为WF提供了有价值的投资回报。WF比简单编写代码更难使用。学习曲线相对较陡峭,需要不同的业务问题解决方法和特殊技能集。为WF提供代码会增加开销,因为您必须编写可能在工作流中使用的活动,以及构建工作流本身。
如果您认为在小型项目中使用WF将提供有价值的投资回报,请去尝试。您需要收回培训、基础设施实施和部署的初始成本,并提供长期的、有形的成本节约,以解决手头的问题。我怀疑WF是否会为小型项目提供如此的投资回报。对于较大的项目或单个大公司的多个集成项目,比起小型项目更容易实现ROI,这也是为什么像WF这样的工作流平台通常只用于这种规模的项目。

WF通常只用于大型项目(由多个程序员编写Web应用程序),还是小型Web应用程序也经常使用它? - rubysons
@rubysons:WF被任何想使用它的人所使用。大多数小团队不使用它的原因要么是因为他们受限于框架的版本,要么是因为他们认为他们没有时间去学习新东西。 - Matthew Whited

3

WF是与业务层交互的接口。

工作流是通过连接预定义活动而非编写代码行的命令式编程模型来编写程序的声明性方式。此外,您还可以使用许多图形化工具编写工作流程,例如Black Pearl、K2和SharePoint Designer。

它们被广泛使用并值得学习。我开始在SharePoint和MS CRM中使用它们。我现在总是寻求工作流解决常见问题。

以下是一些链接: microsoft msdn.microsoft.com/en-us/netframework/default.aspx Wkik: http://en.wikipedia.org/wiki/Windows_Workflow_Foundation


  1. 那么WF并不是在业务层编写的,而只是接口业务层?那么WF是在哪个层面上编写的呢?
  2. 因此,即使WF使用声明性编程模型,业务层中的代码仍然使用命令式编程模型编写吗?
- rubysons

2

WF通常被理解为时间顺序的一系列事件。然而,如果您深入研究,可以以不同方式组合活动。状态型工作流是一个很好的例子,在介绍WF时通常也会展示这些工作流。WF允许您将工作流置于空闲模式:其当前状态被保留并重新加载,例如当外部事件发生时。因此,工作流可用于跟踪长时间运行的交互,其中系统必须等待某些外部过程结束或某些用户与系统进行交互。

我认为WF在UI上下文中不会特别有用。它们更适合作为后端模块,以表达整合几个服务的过程,这些服务具有随时间变化的倾向。

从我的角度来看,不难发现WF是一个版本1产品:有许多笨拙的事情可能会引导您编写难以维护的代码,部分基础设施使用起来相当复杂,您可能会在这里和那里发现一些API不一致的地方。

还有一条指南,告诉您如果想要将工作流迁移到下一代WF,则不应该做什么。


那么,您认为我应该等待 WF 的下一个版本发布后再尝试学习它吗?因为我已经读到了变化将是非常激烈的,因此学习当前版本然后再学新版本可能需要大量的时间。 - rubysons
好的,如果您能等待,我认为我会这样做。如果您想弄清楚如何从 WF 现在和未来中受益,您可以尝试当前版本 - 它肯定有效,但事情将会改变。 - flq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接