Как избежать использования Name-it в Windows Workflow (WF)? - PullRequest
1 голос
/ 11 февраля 2009

Я только начал работать с WF, и что меня действительно раздражает, так это то, что вы должны назвать так много вещей. IMO, одна из самых сложных вещей, с которыми программист сталкивается каждый день, - это создание хороших имен для вещей, и WF, похоже, доводит это до крайности.

Возьмем WF IfElse Activity, например. Если бы я кодировал это в сыром C # (не используя WF), это выглядело бы примерно так:

if( x == 0 )
{
    // ...
}
else if( x < 10 )
{
    // ...
}
else if( x < 100 )
{
    // ...
}
else
{
    // ...
}

Теперь приведенный выше код C # прост и лаконичен. Напротив, если бы я определял рабочий процесс Windows, который делает то же самое, используя действие IfElse, сначала я бы назвал каждый блок if : например, * +1008 *

  • ifXEquals0
  • ifXLessThan10
  • ifXLessThan100

Кроме того, мне нужно назвать каждое условие в каждом операторе if: например, * 1 020 *

  • xEquals0
  • xLessThan10
  • xLessThan100

Мало того, что это утомительно, но трудно поддерживать (например, если условия меняются) и подвержено ошибкам (вы забыли изменить имя при изменении условия).

Проблема (из того, что я могу сказать) состоит в том, что WF разбивает каждую программную конструкцию на свойства рабочего процесса, которому необходимо имя.

Теперь, так как я все еще изучаю WF, и я не хочу звучать так, как будто знаю все ... Я хочу спросить вас, ребята. Я делаю что-то неправильно? Есть ли способ избежать этого имени при создании рабочих процессов WF? Это что-то особенное для Windows WF, или другие движки рабочих процессов страдают тем же?

1 Ответ

1 голос
/ 11 февраля 2009

Проблема (насколько я могу судить) что WF ломает каждую программу построить в свойствах рабочий процесс, которому нужно имя.

На самом деле причина, по которой вам нужно иметь разные имена, заключается в том, что каждая часть этого оператора if-else, представленная в вашем рабочем процессе, на самом деле является отдельным IfElseBranchActivity, а не просто свойством рабочего процесса и поэтому должна иметь уникальное имя.

Что касается обслуживания, взгляните на использование набора правил, чтобы помочь с самими булевыми тестами. Это может упростить изменение в более поздний момент времени.

...