Руководство по WF и параллелизму в ASP.Net - PullRequest
2 голосов
/ 02 февраля 2010

Чем больше я исследую пару тем, касающихся ASP.net, тем больше у меня возникает ощущение, что существует реальный пробел в том, как и где правильно применить несколько вещей к сфере ASP.net (как веб-форм, так и mvc).

Основа рабочего процесса

Я люблю использовать WF;однако все, что я когда-либо читал, это то, что он не рекомендуется для приложений ASP.Net из-за ограничения среды размещения 1 рабочего процесса на домен домена приложения.Сейчас я не видел, где изменились эти ограничения, но я также не могу найти никакой информации об этом ограничении со времен старых .Net 3.0 (.netfx) дней.Я видел совет, чтобы превратить рабочие процессы в сервисы, что звучит хорошо;однако, не имеют ли такие ограничения те же ограничения, когда слишком частое попадание в службу может привести к проблемам с производительностью?Есть ли место для WF в ASP.Net и если да, то где?

Параллельная обработка

То же самое для параллелизма.Совет, который я всегда видел / читал о создании многопоточных приложений ASP.Net, состоял в том, чтобы не делать этого из-за способа настройки пула потоков в пулах приложений IIS.Теперь, когда выходит .Net 4 и многоядерные процессоры повсюду, многопоточность снова становится одной из самых горячих тем.Мне нравится то, что я вижу в параллельных расширениях в 4.0;однако, совет все еще не делает это в ASP.Net или есть места, где его рекомендуют на данный момент?

Есть ли рекомендации по этим двум пунктам много лет назад?Нужно ли их избегать в мире ASP.Net?

Спасибо

1 Ответ

4 голосов
/ 05 февраля 2010

Многопоточность в ASP.Net остается довольно неактуальной - причина в том, что практически любой код, который вы пишете в ASP.Net, предназначен для обработки одного запроса. Существует две основные причины использования нескольких потоков в других типах приложений:

  • Обновление пользовательского интерфейса во время работы другого потока - в веб-приложении пользователь ничего не получит, пока вся задача не будет завершена.
  • Повышение производительности за счет использования всех доступных ядер - мало пользы, когда другие ядра заняты обработкой запросов от других пользователей.

Рабочий процесс в основном предназначен для длительных задач - не используйте его там, где подойдет какой-нибудь простой код в обработчике нажатий кнопок. Удалите требование мгновенного ответа, и простая очередь решает большинство потенциальных проблем с производительностью. Я использовал WF на страницах ASP.Net, но я бы не стал этого делать, если бы мне нужна была скорость или большое количество пользователей.

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