![](/img/trans.png)
[英]How to unit test that a Windows Workflow Foundation (WF) activity can be serialized?
[英]How to avoid Name-itis in Windows Workflow (WF)?
我刚开始与 WF 合作,我发现真正烦人的是你必须命名这么多东西。 IMO,程序员每天处理的最困难的事情之一就是为事物构造好名字,而 WF 似乎将这一点发挥到了极致。
以 WF IfElse 活动为例。 如果我用原始 C# 编码(不使用 WF),它看起来像这样:
if( x == 0 )
{
// ...
}
else if( x < 10 )
{
// ...
}
else if( x < 100 )
{
// ...
}
else
{
// ...
}
现在上面的C#代码简单明了。 相比之下,如果我要定义一个使用 IfElse 活动做同样事情的 Windows 工作流,首先我必须命名每个 if 块:例如
最重要的是,我必须在每个 if 语句中命名每个条件:例如
这不仅乏味,而且难以维护(例如,如果条件改变)并且容易出错(当条件改变时忘记更改名称)。
问题(据我所知)是 WF 将每个编程构造分解为工作流的属性,这需要一个名称。
现在因为我还在学习 WF,我不想听起来像一个知道这一切......我想问你们这些人。 难道我做错了什么? 在创建 WF 工作流时,有没有办法避免这种命名问题? 这是特定于 Windows WF 的东西,还是其他工作流引擎遭受同样的事情?
问题(据我所知)是 WF 将每个编程构造分解为工作流的属性,这需要一个名称。
实际上,您需要使用不同名称的原因是因为在您的工作流中表示的 if-else 语句的每个部分实际上都是一个单独的 IfElseBranchActivity,而不仅仅是工作流的一个属性,因此必须唯一命名。
就维护而言,看看使用规则集来帮助进行实际的布尔测试本身。 这可能会使以后更容易修改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.