工作流基础的思考和经验4

时间:2010-12-22 22:39:23

标签: .net-4.0 workflow-foundation-4

既然Microsoft已经在Windows Workflow Foundation 4中修改了他们的工作流框架,那么您对这个新框架的想法和经验是什么?

我已经和WF4合作了几个月了,我遇到了一些陷阱:

  • 无法使用Workflow Services(Xamlx)强制实施接口。
  • 当工作流中发生错误时,无论是通信,关联,持久性还是工作流中的某些未处理的异常,几乎不可能分辨出错误,因为跟踪日志告诉您没有任何相关性。例如,我有一个Entity Framework对象作为工作流变量,工作流持久性在序列化时遇到了一些麻烦。不幸的是,跟踪文件中没有错误表明这是问题所在。在我弄清楚出了什么问题之前,我经历了数小时的反复试验。
  • 部分提供的活动不足。例如,我不得不扩展Send活动以支持动态端点。不幸的是,我无法使其完全动态化,例如,界面名称不能动态。
  • 如果工作流程太大,设计师会变得非常慢。一个超过100KB的工作流程需要超过一分钟的加载时间!而忘记调试这种规模的工作流程。
  • 没有Oracle的持久性提供程序。

尽管存在缺陷,但我对数据库的持久性功能,设计器中一起捕捉活动的难易程度以及将WCF服务设置为工作流服务的难易程度印象深刻。

我很好奇使用Workflow Foundation 4的其他开发人员的经验。

修改

我能够解决大型工作流程设计极慢的问题。事实证明,有无法解决的进口,这显然会给设计师带来很大的压力。

I posted on the MSDN forums about this issue.

更新

AppFabric面临着一系列问题,现在我们正在投入生产。我很清楚,截至目前,AppFabric Workflow Services还没有准备好使用。在新版本发布之前,我会远离这个。

2 个答案:

答案 0 :(得分:4)

我认为您对WF4问题做了很好的总结。

我的主要痛点是无法更改流程工作流程的定义。这在下一个版本中已得到修复,但现在是个大问题。

答案 1 :(得分:3)

我在工作流程中也存在异常问题 - 主要是确定它们发生的原因,来源,描述或消息。随着我获得更多经验,我在这方面变得更好,如果我开始另一个工作流程项目,我将能够更有效地调试它。它只是一个不同的范例,所以不能像直接代码那样接近。

我使用WF 4.0的另一个问题是使用WorkflowInvoker进行单元测试;具体细节让我感到震惊,但嘲弄依赖关系和父/子工作流程真的很头疼。

一般来说,我非常喜欢WF 4.0,这是一项超过3.5的大幅提升。在调试模式下运行可能会非常慢,设计人员的调试比它的价值更麻烦,但框架很棒且非常实用。