Подтвердить что ты не робот

Зачем использовать рабочий процесс Windows?

В чем преимущество использования Windows Workflow foundation (WF) против развертывания собственной рабочей среды?

Из того, что я могу сказать, WF предоставляет только довольно простой механизм времени исполнения, кучу классов и схему (XAML-based) для определения рабочих процессов. Все тяжелые вещи, такие как настойчивость, обеспечение хост-процесса для среды выполнения и реализация распределенных рабочих процессов (через процессы), остаются за вами.

Кроме того, есть кривая обучения использованию WF... если мы создали собственную структуру рабочего процесса, мы бы просто использовали навыки, которые все разработчики уже имеют (С#, XML, SQL и т.д.).

Я видел этот блог у евангелиста MS, который пытается объяснить, почему мы должны использовать WF:

Почему Workflow?...

IMO, он не очень хорошо убежден, потому что он просто утверждает, что он помогает "производительности разработчиков", признавая, что разработчики могут катить свои собственные.

Может ли кто-нибудь из умных людей придумать лучшую причину?

АННОТАЦИЯ ОТ ОТВЕТОВ, ДАЛЕЕ НИЖЕ:


Я думаю, что самая убедительная причина заключается в том, что использование стандартизованной платформы рабочего процесса, такой как WF (по сравнению с вашей собственной), позволит вам использовать текущие и будущие инструменты, такие как Visual Designer, предоставляемые MS и третьими лицами.

Кроме того, поскольку он является частью стека MS на основе .NET-технологий, у него, вероятно, будет лучший путь интеграции/миграции с будущими технологиями MS (например, Azure).

Наконец, количество разработчиков с опытом WF будет увеличиваться (так как это принесет им пользу по карьере), превратив его в базовый товарный навык, такой как SQL или HTML, то есть станет легче найти людей, которые могут начать работать с ним с минимальным временем нарастания.

4b9b3361

Ответ 1

Выбор использования WF требует некоторой оценки, и я собираюсь попытаться предоставить довольно полный список здесь о том, что за плюсы и минусы. Имейте в виду, что если вы собираетесь использовать WF, не используйте ничего, кроме WF4 +, потому что оно было переписано и значительно проверено перед его предшественниками.

Pros

  • Стоимость
  • Гибкость
  • Прочность
  • Distributability
  • Future

Стоимость

Стоимость WF важна при сравнении с другими путями. Эти пути могут включать BizTalk, основанную на открытом исходном коде фреймворк, такую ​​как Objectflow, или даже сворачивать самостоятельно. Имейте в виду, что, если вам не понадобится что-то значительно упрощенное, каждый раз ваш самый дорогой подход будет самым дорогим. Итак, если вам нужна значительная часть функциональности, но также необходимо контролировать исходный код, я бы рекомендовал фреймворк с открытым исходным кодом.

Гибкость

WF - очень гибкая структура, в отличие от платформы, такой как BizTalk. В WF вы можете писать свои собственные действия и делать то, что вам нужно сделать вне рамки - это действительно дает вам необходимую мощность.

Прочность

WF включает в себя очень мощную структуру долговечности. Он прочен в том смысле, что состояние рабочего процесса может быть сохранено, рабочий процесс можно установить в режиме ожидания (для сохранения ресурсов), а затем вызвать его позже. Но, эта долговечность идет намного дальше, потому что она уже настроена на прочность в хост-ферме. Другими словами, рабочий процесс можно запустить на одном хосте, сохранить, а затем вызвать на другом хосте.

Предполагается, что рабочие процессы размещаются через веб-службу (то есть WorkflowService).

Distributability

WF уже настроен для распределения по ферме хостов.

Предполагается, что рабочие процессы размещаются через веб-службу (то есть WorkflowService).

Future

WF - это замещающий механизм оркестровки для BizTalk и фактически разработан теми же людьми, которые создали BizTalk. Поэтому WF имеет светлое будущее в стеке Microsoft. Фактически, сейчас Microsoft работает над созданием отдельных компонентов для замены каждой функции BizTalk компонентами. Например, Windows Server AppFabric (и, более конкретно, подключаемый модуль для IIS) - это замена служб мониторинга, существующих в BizTalk сегодня.

Почему Microsoft делает это? Поскольку BizTalk не очень хорошо подходит для облака, потому что это одна массивная установка, тогда как компоненты, которые они создают, могут быть развернуты в облачном решении.

Против

  • Гибкость
  • Мониторинг

Гибкость

Гибкость WF также может быть ее ловушкой, потому что иногда вам не нужна гибкость, которую она предоставляет, и, таким образом, тратить больше времени на создание вещей, которые в противном случае вы хотели бы просто включить. Иногда вам нужна структура, которая делает много предположений и, возможно, работает вместо соглашения (например, MVC). Однако, вообще говоря, я обнаружил, что это неверно, если связывать структуру WF4 с расширениями предоставленными Рон Якобсом.

Мониторинг

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

Ресурсы

Ваш лучший ресурс Рон Джейкобс. Я никогда не встречал кого-то, кто так хочет помочь сообществу разработчиков, которые должны использовать рамки Microsoft, чем он. Поверьте мне, он предоставил огромное количество информации, относящейся к WF по многочисленным каналам, просто зайдите в Google и проверьте его.

Ответ 2

Основными причинами, по которым я могу думать о том, чтобы использовать WF в другой структуре рабочего процесса, являются:

  • Microsoft поддерживает ее как основную часть структуры, поэтому ее легче интегрировать в другие технологии, такие как облачные приложения Sharepoint и Azure.
  • Инструментарий, скорее всего, улучшится и станет действительно гладким в нескольких версиях, что должно повысить производительность разработчика

Ответ 3

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

Одна из не очень веских причин состоит в том, что недопустимые значения/входы могут быть определены и отклонены во время разработки диаграмм рабочего процесса, и поэтому ошибок времени компиляции в принципе не существует (при условии, что весь код шаблона, который вы написали, не имеет времени компиляции ошибки).

Ответ 4

Короткий ответ: свободный, и он выполняет свою работу. Если вы можете перевернуть лучшую структуру для управления документооборотом и хотите потратить на это свое время, обязательно. Но считайте, что ваше время стоит денег, поэтому сколько денег вы готовы взять на себя, чтобы создать лучшую структуру для управления рабочим процессом? Я мог видеть, что это дорого.

Кроме того, я уверен, что постоянство (на диске или SQL) обрабатывается из коробки.

Ответ 5

В Visual Studio существует некоторая разумная поддержка дизайнера, которую я бы предпочел не использовать для себя, и это фреймворк, поддерживаемый кем-то другим, а не мной, что означает, что кто-то исправляет ошибки в архитектуре и выполняет основное тестирование, оставляя мне проверить только мой рабочий процесс. Я имею в виду, я мог бы свернуть свои собственные версии вызовов GDI +, но я бы предпочел. То же самое касается моей собственной структуры сериализации, анализатора XML или какого-либо другого элемента платформы .NET.

Когда дело доходит до этого, эти вещи представлены в виде инструментария. Независимо от того, используете ли вы инструмент или нет, полностью зависит от проблемы, которую вы решаете, пригодности инструмента и времени и ресурсов, доступных для достижения цели.

Ответ 6

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

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

Он генерирует все эти функции непосредственно в руки разработчика, которые ранее работали на обратной стороне, не имея взаимодействия между внутренними концепциями ядра и программистом.

Да, он немного сложный, но также он обеспечивает большую мощность в руках программиста.

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