我刚刚开始与WF合作,我觉得非常烦人的是你必须说出名字 这么多的事情。 IMO,程序员每天处理的最困难的事情之一就是为事物建立好名字,而WF似乎将这一点发挥到了极致。
以WF IfElse活动为例。如果我用原始C#编码(不使用WF),它看起来像这样:
if( x == 0 )
{
// ...
}
else if( x < 10 )
{
// ...
}
else if( x < 100 )
{
// ...
}
else
{
// ...
}
现在上面的C#代码简单明了。相反,如果我要定义一个使用IfElse活动执行相同操作的Windows工作流程,首先关闭我必须为每个if块命名: e.g。
最重要的是,我必须在每个if语句中命名每个条件: e.g。
这不仅乏味,而且难以维护(例如,如果情况发生变化)且容易出错(当条件发生变化时,您忘记更改名称)。
问题(据我所知)是WF将每个编程构造分解为工作流的属性,这需要一个名称。
现在因为我还在学习WF,我不想听起来像是知道这一切......我想问问大家。难道我做错了什么?有没有办法在创建WF工作流程时避免使用此名称?这是Windows WF特有的,还是其他工作流引擎遭受同样的事情?
答案 0 :(得分:1)
问题(据我所知)是 WF打破了每一个节目 构造成的属性 工作流程,需要一个名字。
实际上,您需要使用不同名称的原因是因为工作流中表示的if-else语句的每个部分实际上都是单独的IfElseBranchActivity,而不仅仅是工作流的属性,因此必须具有唯一名称。< / p>
就维护而言,请查看使用规则集来帮助实际的布尔测试本身。这可能会使以后更容易修改。