【发布时间】:2009-09-25 18:40:51
【问题描述】:
WF是用在用户界面还是业务层?如果在 UI 层,那么在业务层编码的人甚至需要使用或学习它吗?
【问题讨论】:
-
由于标题,我认为他的意思是WF
-
我刚刚注意到我还添加了 WCF 标记。我在问WF
标签: windows workflow workflow-foundation
WF是用在用户界面还是业务层?如果在 UI 层,那么在业务层编码的人甚至需要使用或学习它吗?
【问题讨论】:
标签: windows workflow workflow-foundation
克里斯提供了一个很好的答案,所以我会采取不同的策略。工作流真的不等同于逻辑。工作流程通常是逻辑的组合,这使它们成为整体的互补贡献者。业务组件很好地封装了单个业务规则或行为,而工作流则由多个业务组件、规则和行为组成,以满足更大、运行时间更长的业务流程的需求。
工作流可以适应任何地方,满足 UI、业务甚至数据层的流程需求。如果您最终使用 WF,我强烈建议您培训您的一般开发人员,以便有广泛的知识和理解。尽管有视觉方面的内容,WF 仍然需要一些低级编码来构建活动库,以便工作流创建者和维护者使用。
编辑:
是否使用由您决定。通常,大型项目使用 WF,因为 WF 提供了宝贵的投资回报。 WF 比简单地编写代码更难使用。学习曲线相当陡峭,需要以不同的方式处理业务问题,并且需要特殊的技能组合。向 WF 提供代码会增加开销,因为您必须编写可在工作流中使用的活动,以及自己构建工作流。
如果您认为将 WF 用于您的小型项目将提供宝贵的投资回报,那么就去做吧。您将需要收回培训、基础设施实施和部署的初始成本,以及提供长期、切实的成本节约,而不是简单地编写代码来解决手头的问题。我怀疑WF是否会提供这样一个投资回报率的小项目。对于较大的项目,或单个大公司的多个集成项目,实现 ROI 比较小的项目要容易得多,这就是为什么像 WF 这样的工作流平台通常只在这种规模上使用。
【讨论】:
WF是业务层的接口。
工作流是一种通过将预定义活动链接在一起来编写程序的声明性方式,而不是编写代码行的命令式编程模型。此外,您还有许多图形工具可让您编写工作流程。比如黑珍珠、K2和sharepoint设计师。
它们非常有用,非常值得学习。我开始在 sharepoint 和 ms crm 中使用 then。我现在一直在寻找工作流程来解决我的常见问题。
这里有几个链接: mirosoft msdn.microsoft.com/en-us/netframework/default.aspx 维基:http://en.wikipedia.org/wiki/Windows_Workflow_Foundation
【讨论】:
WF 的理解主要是非常必要的——一系列按时间顺序排列的事件。
但是,如果您深入研究,您可以以不同的方式组合活动。一个很好的例子是在展示 WF 时通常也会显示的基于状态的工作流。 WF 允许您将工作流置于空闲模式:它的当前状态被持久化并重新加载一次,例如发生外部事件。因此,工作流可用于跟踪系统必须等待的长时间运行的交互,例如一些外部进程结束或一些用户与系统交互。
我会说 WF 在 UI 上下文中不会非常有用。它们更适合作为后端模块来表达集成了多个具有随时间变化趋势的服务的流程。
不过,在我看来,WF 是第 1 版产品是值得注意的:有许多尴尬的事情可能会引导您编写难以维护的代码,部分基础架构非常复杂使用时,您可能会在这里和那里发现一些 API 不一致。
如果您想将工作流程移植到下一代 WF,还有一个指南是不应该做的。
【讨论】: