Советы по разработке рабочего процесса для веб-приложения ASP.Net? - PullRequest
2 голосов
/ 27 марта 2011

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

Рабочие процессы должны быть динамическими.Это означает, что пользователи могут определять рабочие процессы через некоторый интерфейс и применять эти рабочие процессы к заданному сценарию (определения будут находиться в базе данных SQL 2008).Сценарии определяются бизнесом и никогда не изменятся.Таким образом, может быть только 2 типа сценариев, для которых может быть определен рабочий процесс.Рабочие процессы не обязательно являются линейными.Какое-то состояние будет управлять рабочим процессом.Состояния также будут динамическими, но существуют только в рабочем процессе.

Я смотрел на примеры рабочих процессов и конечных автоматов, и моя голова кружилась.Я не уверен, что хочу использовать Workflow Foundation или что-то, что мы разрабатываем.Я видел это и думаю, что это может сработать, но я не уверен, что полная реализация состояния будет работать для нас.

1 Ответ

3 голосов
/ 28 марта 2011

Вы можете сделать это с помощью WF4.Я никогда не использовал Objectflow, поэтому я не могу прокомментировать это, но, похоже, это решение в памяти и с веб-сайтом ASP.NET, размещенным в IIS, что означает, что вы время от времени теряете состояние при перезапуске IIS и AppDomain.Обычно это не большая проблема, так как это случается не часто, но об этом позаботится WF4 InstanceStore.Это также позволит вам работать в веб-ферме без липких сеансов и переносить рабочий процесс с компьютера на компьютер.

Еще одна приятная вещь - это дизайнер рабочих процессов.Свой элемент управления WPF вы можете перенести в свое собственное приложение.Не в приложениях ASP.NET или Silverlight, но вы можете предоставить интеллектуальный клиент, чтобы пользователи могли обновлять определение рабочего процесса с помощью вменяемого конструктора, как вы используете в VS2010.

Самая большая проблема с WF4 - это асинхронный характер выполнения.Вам нужно будет использовать SynchronizationContext для выполнения действий и дождаться, пока рабочий процесс перейдет в свободное состояние в новом состоянии, прежде чем вернуть полученный HTML-код в браузер.

...