ASP.NET MVC События - PullRequest
       2

ASP.NET MVC События

5 голосов
/ 12 июня 2011

В последнее время у меня возникла мысль об использовании событий в приложении ASP.NET MVC.Например, когда пользователь создал комментарий, будет ли это на стороне сервера вызывать событие, к которому, например, может быть подключен контроллер учетной записи, и, таким образом, инициировать указанный пользователем код для события.Кто-нибудь пробовал это или вообще возможно использовать события как таковые в веб-приложении?

Вот пример.enter image description here A использует созданный комментарий на моем сайте, хотя контроллер комментариев, это заставит контроллер комментариев вызвать событие в моем статическом диспетчере событий.Это выполнит все методы, которые были связаны с этим событием.В этом примере «OnCommentCreate ()» в прикрепленном AccountController.Теперь все это должно происходить в другом потоке, чем у пользователей, поэтому страница для пользователя будет продолжена, поскольку событий не было, а события обрабатываются позади.Я подумал, где использовать это с постоянным соединением на временной шкале, или это можно использовать для децентрализации кода.Я мог бы, например, иметь событие, которое будет вызываться при изменении имени пользователя, будет проходить через файлы журнала и изменять имя пользователя на новое имя пользователя.

Надеюсь, это прояснит лучше

Ответы [ 2 ]

4 голосов
/ 12 июня 2011

Вы можете сделать это, если хотите, DoomStone. ASP.NET MVC сам по себе не создает события, используя модель событий .NET, но то, что вы описываете, на самом деле тоже не. это скорее шина публикации и подписки в вашем приложении.

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

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

** Обновление ** У меня была еще одна мысль после вашего комментария. Итак, короткий ответ: «да» - это хорошо известный шаблон, особенно для развязки сервисов, которые могут существовать на других серверах и, возможно, (в некоторых случаях) даже не принадлежат вам. Есть доступные рамки, но то, что вы описываете, может быть полностью доморощенным. Вы можете создать метод в своей WKO для каждого события (как показывает ваш пример), или, если вы хотите большей гибкости, вы можете определить общее действие (.eg Publish или Send), которое принимает пользовательский класс Message, и затем люди, вызывающие WKO может отправить сообщение, которое набрано для события (другими словами, вместо того, чтобы вызывать OnCommentCreated(), они могли бы позвонить Publish(new CommentCreatedMessage({data}));. Делая это таким образом, можно сделать решение более способным к росту.

1 голос
/ 12 июня 2011

ASP.NET MVC Framework не управляется событиями, поэтому (насколько я знаю) ваш единственный вариант - проверять и обрабатывать события вручную через код на стороне клиента, например, вызовы AJAX для методов действия контроллера.

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

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