.Net Workflow Foundation design: несколько рабочих процессов или один большой рабочий процесс с действиями IfElse?

89
7

Я немного читал о конструкциях рабочих процессов, и я смущен тем, как моделировать мое приложение. Любая помощь очень ценится!


Здесь требование:


    Последовательный рабочий процесс с 5 действиями верхнего уровня
    Каждая деятельность на верхнем уровне может содержать 1-5 дочерних действий.
    В будущем могут быть введены новые дочерние действия.
    Ввод рабочего процесса - это документ и его тип. Основываясь на типе документа, он должен пройти 1 или более дочерних действий в каждом действии верхнего уровня.
    Все действия верхнего уровня и несколько дочерних действий применяются ко всем типам документов.
    В настоящее время известно около 5 различных типов документов. Теоретический максимум 10 типов документов может быть добавлен в будущем.
    XAML будет использоваться для конфигурации рабочего процесса.
    Рамка: 3.5 SP1

По вышеуказанному требованию, пожалуйста, советую, какая из лучших стратегий в плане первоначального проектирования и обслуживания:


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

ИЛИ


    Разработайте отдельные рабочие процессы - по одному для каждого типа документа.

ИЛИ


    Любая другая лучшая альтернатива?

спасибо!

спросил(а) 2010-08-03T18:04:00+04:00 10 лет, 1 месяц назад
1
Решение
70

Я работал в WF 3.5 SP1 в течение разумного срока и предлагаю следующее:


    Отдельные рабочие процессы - по одному для каждого типа документа: прямой НЕТ, так как вы должны быть достаточно прочными, чтобы включать новые документы. Вы просто не можете (не должны) ставить типы документов как постоянные. Требование к бизнесу изменится, и вас попросят включить более 10-15 документов (это происходит постоянно во всех программах реального мира).


    Поскольку новые дочерние действия могут быть внедрены в будущем, вы можете изучить отдельные рабочие процессы для 5 действий верхнего уровня. Это может помочь вам поддерживать индивидуальную деятельность на высшем уровне.


    Один большой рабочий процесс с большим количеством If-Else может звучать и хорошо выглядеть в начале, но поверьте мне, он выглядит ужасно, когда добавляется разумное количество условий. Это действительно требует гораздо больших усилий для управления 1 гигантским рабочим процессом.


Итак, чтобы подвести итог, вы можете разделить свои действия на 5 рабочих процессов только для действий верхнего уровня, а затем управлять дочерними действиями внутри них, независимо от типа документа, который все еще передается как аргумент.


Надеюсь, что это поможет.

ответил(а) 2010-08-03T18:41:00+04:00 10 лет, 1 месяц назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема